|
@@ -2,6 +2,8 @@ package cn.cslg.permission.service;
|
|
|
|
|
|
import cn.cslg.permission.common.core.base.RedisConf;
|
|
|
import cn.cslg.permission.common.core.business.LoginCacheKeyUtil;
|
|
|
+import cn.cslg.permission.common.model.Records;
|
|
|
+import cn.cslg.permission.common.model.dto.PersonnelDTO;
|
|
|
import cn.cslg.permission.common.model.dto.PhoneLoginDTO;
|
|
|
import cn.cslg.permission.common.model.personnel.UploadPersonnelConfigDTO;
|
|
|
import cn.cslg.permission.common.model.qiaobi.GetQiaoBiPersonDTO;
|
|
@@ -11,6 +13,7 @@ import cn.cslg.permission.common.utils.*;
|
|
|
import cn.cslg.permission.common.utils.SecurityUtils.SecurityUtils;
|
|
|
import cn.cslg.permission.common.utils.message.MessageUtils;
|
|
|
import cn.cslg.permission.domain.Personnel;
|
|
|
+import cn.cslg.permission.domain.Role;
|
|
|
import cn.cslg.permission.domain.Tenant;
|
|
|
import cn.cslg.permission.domain.TenantVipType;
|
|
|
import cn.cslg.permission.domain.associate.AssoDepartPos;
|
|
@@ -37,6 +40,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import io.swagger.v3.oas.models.security.SecurityScheme;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -69,6 +73,10 @@ public class PersonnelService extends ServiceImpl<PersonnelMapper, Personnel> {
|
|
|
private final SystemService systemService;
|
|
|
private final AssoPersonVipTypeService assoPersonVipTypeService;
|
|
|
private final TenantVipTypeService tenantVipTypeService;
|
|
|
+ private final LoginUtils loginUtils;
|
|
|
+ private final RoleService roleService;
|
|
|
+ @Value("${ApplicationCode}")
|
|
|
+ private String ApplicationCode;
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Personnel addPersonnel(PersonnelVO personnelVO) {
|
|
@@ -577,6 +585,7 @@ public class PersonnelService extends ServiceImpl<PersonnelMapper, Personnel> {
|
|
|
String name = qiaoBiPersonSignUpDTO.getName();
|
|
|
String userName = qiaoBiPersonSignUpDTO.getUsername();
|
|
|
String passWord = qiaoBiPersonSignUpDTO.getPassword();
|
|
|
+ Integer tenantId = qiaoBiPersonSignUpDTO.getTenantId();
|
|
|
if (passWord == null || passWord.trim().equals("")) {
|
|
|
passWord = RandomUtil.generateRandomString(8);
|
|
|
}
|
|
@@ -589,6 +598,9 @@ public class PersonnelService extends ServiceImpl<PersonnelMapper, Personnel> {
|
|
|
personnel.setPersonnelName(name);
|
|
|
personnel.setPersonnelUserName(userName);
|
|
|
personnel.setPersonnelPassword(passWord);
|
|
|
+ if (tenantId != null) {
|
|
|
+ personnel.setTenantId(tenantId);
|
|
|
+ }
|
|
|
personnel.insert();
|
|
|
qiaoBiPersonSignUpDTO.setId(personnel.getId());
|
|
|
return qiaoBiPersonSignUpDTO;
|
|
@@ -645,7 +657,7 @@ public class PersonnelService extends ServiceImpl<PersonnelMapper, Personnel> {
|
|
|
//登录日志记录登录是否成功
|
|
|
loginRecordVO.setLoginResult("登录人账号本身未启用");
|
|
|
loginRecordService.addLoginRecord(loginRecordVO);
|
|
|
- throw new XiaoShiException(ExceptionEnum.LOGIN_PASSWORD_MISTAKE);
|
|
|
+ throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "登录人账号本身未启用");
|
|
|
}
|
|
|
return personnel;
|
|
|
}
|
|
@@ -828,85 +840,46 @@ public class PersonnelService extends ServiceImpl<PersonnelMapper, Personnel> {
|
|
|
}
|
|
|
|
|
|
|
|
|
- public String queryPageList2(PersonnelVO personnelVO) {
|
|
|
+ public String queryPageList2(PersonnelDTO personnelDTO) {
|
|
|
+ this.loadExpireTime(personnelDTO);
|
|
|
+ Long current = personnelDTO.getCurrent();
|
|
|
+ Long size = personnelDTO.getSize();
|
|
|
//获取登陆人信息
|
|
|
PersonnelVO personnelVO1 = cacheUtils.getLoginUser(StpUtil.getLoginIdAsInt());
|
|
|
- LambdaQueryWrapper<Personnel> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- //TODO 代码控制若不是超级管理员则只能查看本租户的人员列表
|
|
|
+ // 代码控制若不是超级管理员则只能查看本租户的人员列表
|
|
|
if (personnelVO1.getRoleType() == null || personnelVO1.getRoleType() != 1) {
|
|
|
- queryWrapper.eq(Personnel::getTenantId, personnelVO1.getTenantId());
|
|
|
+ personnelDTO.setTenant(personnelVO1.getTenantId());
|
|
|
}
|
|
|
- //根据人员名称或是人员描述模糊查询人员列表
|
|
|
- if (personnelVO.getName() == null) {
|
|
|
- personnelVO.setName("");
|
|
|
- }
|
|
|
- queryWrapper.and((wrapper) -> wrapper.like(Personnel::getPersonnelName, personnelVO.getName())
|
|
|
- .or()
|
|
|
- .like(Personnel::getPersonnelDescription, personnelVO.getName())
|
|
|
- );
|
|
|
- //根据人员id查询
|
|
|
- if (personnelVO.getId() != null) {
|
|
|
- queryWrapper.in(Personnel::getId, Integer.parseInt(personnelVO.getId()));
|
|
|
+ if (current != null && size != null) {
|
|
|
+ personnelDTO.setCurrent(((current - 1) * size));
|
|
|
}
|
|
|
- //若前台有传部门ids,则根据部门ids查询人员列表
|
|
|
- if (personnelVO.getDepartmentIds() != null && personnelVO.getDepartmentIds().size() != 0) {
|
|
|
- LambdaQueryWrapper<AssoDepartPos> qw = new LambdaQueryWrapper<>();
|
|
|
- qw.in(AssoDepartPos::getDepartmentId, personnelVO.getDepartmentIds());
|
|
|
- List<Integer> dpIds = departPosiService.list(qw).stream().map(AssoDepartPos::getId).collect(Collectors.toList());
|
|
|
- LambdaQueryWrapper<AssoPerDp> qw2 = new LambdaQueryWrapper<>();
|
|
|
- qw2.in(AssoPerDp::getDepartPosiId, dpIds);
|
|
|
- List<Integer> perIds = perDpService.list(qw2).stream().map(AssoPerDp::getPersonnelId).collect(Collectors.toList());
|
|
|
- queryWrapper.in(Personnel::getId, perIds);
|
|
|
- }
|
|
|
- if (personnelVO.getTenant() != null) {
|
|
|
- queryWrapper.eq(Personnel::getTenantId, personnelVO.getTenant());
|
|
|
- }
|
|
|
- //若前台有传职位ids,则根据职位ids查询人员列表
|
|
|
- if (personnelVO.getPositionIds() != null && personnelVO.getPositionIds().size() != 0) {
|
|
|
- LambdaQueryWrapper<AssoDepartPos> qw = new LambdaQueryWrapper<>();
|
|
|
- qw.in(AssoDepartPos::getPositionId, personnelVO.getPositionIds());
|
|
|
- List<Integer> dpIds = departPosiService.list(qw).stream().map(AssoDepartPos::getId).collect(Collectors.toList());
|
|
|
- LambdaQueryWrapper<AssoPerDp> qw2 = new LambdaQueryWrapper<>();
|
|
|
- qw2.in(AssoPerDp::getDepartPosiId, dpIds);
|
|
|
- List<Integer> perIds = perDpService.list(qw2).stream().map(AssoPerDp::getPersonnelId).collect(Collectors.toList());
|
|
|
- queryWrapper.in(Personnel::getId, perIds);
|
|
|
- }
|
|
|
- SecurityUtils.startDataScope("/admin/user/check");
|
|
|
- List<Personnel> personnelList = this.page(new Page<>(personnelVO.getCurrent(), personnelVO.getSize()), queryWrapper).getRecords();
|
|
|
- SecurityUtils.startDataScope("/admin/user/check");
|
|
|
- long count = this.count(queryWrapper);
|
|
|
- return Response.success(setPersonnelToVO2(personnelList), DataUtils.setPageColumn(personnelVO.getSize(), personnelVO.getCurrent(), Math.toIntExact(count)));
|
|
|
+ List<PersonnelVO> personnelVOS = this.getBaseMapper().getQiaoBiPersonsList(personnelDTO);
|
|
|
+ long count = this.getBaseMapper().getQiaoBiPersonsListTotal(personnelDTO);
|
|
|
+ return Response.success(setPersonnelToVO2(personnelVOS), DataUtils.setPageColumn(Integer.parseInt(size.toString()), Integer.parseInt(current.toString()), Math.toIntExact(count)));
|
|
|
}
|
|
|
|
|
|
- public Object setPersonnelToVO2(List<Personnel> personnelList) {
|
|
|
- List<PersonnelVO> personnelVOS = new ArrayList<>();
|
|
|
- for (Personnel personnel : personnelList) {
|
|
|
- PersonnelVO personnelVO1 = new PersonnelVO();
|
|
|
- personnelVO1
|
|
|
- .setUsername(personnel.getPersonnelUserName())
|
|
|
- .setId(personnel.getId().toString())
|
|
|
- .setGender(personnel.getPersonnelUserSex())
|
|
|
- .setName(personnel.getPersonnelName())
|
|
|
- .setEmail(personnel.getPersonnelEmail())
|
|
|
- .setMobile(personnel.getPersonnelPhone())
|
|
|
- .setState(personnel.getPersonnelStatus())
|
|
|
- .setRemark(personnel.getPersonnelDescription())
|
|
|
- .setPassword(personnel.getPersonnelPassword())
|
|
|
- .setQqNumber(personnel.getPersonnelQQ())
|
|
|
- .setPositions(departPosiService.queryAssociate(personnel.getId()))
|
|
|
- .setGroup(personGroupService.queryAssociatePerGroup(personnel.getId()))
|
|
|
- .setRole(personRoleService.queryAssociatePerRole(personnel.getId()))
|
|
|
- .setRoleList(personRoleService.getRoleListByPersonnelId(personnel.getId()))
|
|
|
- .setGroupList(personGroupService.getUserGroupListByPersonnelId(personnel.getId()))
|
|
|
- .setNail(personnel.getPersonnelDing())
|
|
|
- .setTenant(personnel.getTenantId())
|
|
|
- .setTenantName(tenantService.getById(personnel.getTenantId()).getTenantName());
|
|
|
- personnelVOS.add(personnelVO1);
|
|
|
+
|
|
|
+ public Object setPersonnelToVO2(List<PersonnelVO> personnelList) {
|
|
|
+ for (PersonnelVO personnelVO : personnelList) {
|
|
|
+ personnelVO
|
|
|
+ .setPositions(departPosiService.queryAssociate(Integer.parseInt(personnelVO.getId())))
|
|
|
+ .setGroup(personGroupService.queryAssociatePerGroup(Integer.parseInt(personnelVO.getId())))
|
|
|
+ .setRole(personRoleService.queryAssociatePerRole(Integer.parseInt(personnelVO.getId())))
|
|
|
+ .setRoleList(personRoleService.getRoleListByPersonnelId(Integer.parseInt(personnelVO.getId())))
|
|
|
+ .setGroupList(personGroupService.getUserGroupListByPersonnelId(Integer.parseInt(personnelVO.getId())));
|
|
|
+ if (personnelVO.getTenant() != null) {
|
|
|
+ Tenant tenant = tenantService.getById(personnelVO.getTenant());
|
|
|
+ if (tenant != null) {
|
|
|
+ personnelVO.setTenantName(tenant.getTenantName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
- if (personnelVOS != null && !personnelVOS.isEmpty()) {
|
|
|
- this.loadPersonnelVOS(personnelVOS);
|
|
|
+ if (personnelList != null && !personnelList.isEmpty()) {
|
|
|
+ this.loadPersonnelVOS(personnelList);
|
|
|
}
|
|
|
- return personnelVOS;
|
|
|
+ return personnelList;
|
|
|
}
|
|
|
|
|
|
public void loadPersonnelVOS(List<PersonnelVO> personnelVOS) {
|
|
@@ -966,12 +939,39 @@ public class PersonnelService extends ServiceImpl<PersonnelMapper, Personnel> {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public List<PersonnelVO> getExpirePersons(GetQiaoBiPersonDTO getQiaoBiPersonDTO) {
|
|
|
+ public Records getExpirePersons(GetQiaoBiPersonDTO getQiaoBiPersonDTO) {
|
|
|
+ roleService.checkCompanyRootRole();
|
|
|
Date date = new Date();
|
|
|
Date expireTime = DateUtils.getPlusMonthDate(date, 1);
|
|
|
getQiaoBiPersonDTO.setExpitrTime(expireTime);
|
|
|
- List<PersonnelVO> personnelList = this.getBaseMapper().getQiaoBiPersons(getQiaoBiPersonDTO);
|
|
|
+ PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
+ getQiaoBiPersonDTO.setTenantId(personnelVO.getTenantId());
|
|
|
+ getQiaoBiPersonDTO.setStartTime(date);
|
|
|
+ Long total = this.getBaseMapper().getQiaoBiPersons(getQiaoBiPersonDTO);
|
|
|
+ Records records = new Records();
|
|
|
+ records.setTotal(total);
|
|
|
+ return records;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void loadExpireTime(PersonnelDTO personnelDTO) {
|
|
|
+ Integer expitrDays = personnelDTO.getExpitrDays();
|
|
|
+ if (expitrDays == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Date date = new Date();
|
|
|
+ if (expitrDays.equals(0)) {
|
|
|
+ Date endDate = DateUtils.getPlusMonthDate(date, 1);
|
|
|
+ personnelDTO.setStartExpitrTime(date);
|
|
|
+ personnelDTO.setEndExpitrTime(endDate);
|
|
|
+ } else if (expitrDays.equals(-1)) {
|
|
|
+ personnelDTO.setEndExpitrTime(date);
|
|
|
+ } else {
|
|
|
+ Date endDate = DateUtils.getPlusDayDate(date, expitrDays);
|
|
|
+ personnelDTO.setStartExpitrTime(date);
|
|
|
+ personnelDTO.setEndExpitrTime(endDate);
|
|
|
+ }
|
|
|
|
|
|
- return personnelList;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|