|
@@ -8,16 +8,17 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.dromara.common.core.config.BoManConfig;
|
|
|
-import org.dromara.common.core.enums.UserType;
|
|
|
import org.dromara.common.core.exception.user.UserException;
|
|
|
import org.dromara.common.core.utils.MapstructUtils;
|
|
|
import org.dromara.common.core.utils.StringUtils;
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
import org.dromara.common.tenant.helper.TenantHelper;
|
|
|
+import org.dromara.domain.residentInfo.vo.ResidentInfoVo;
|
|
|
import org.dromara.domain.staffManage.StaffManage;
|
|
|
import org.dromara.domain.staffManage.bo.StaffManageBo;
|
|
|
import org.dromara.domain.staffManage.vo.StaffManageVo;
|
|
|
+import org.dromara.mapper.ResidentInfoMapper;
|
|
|
import org.dromara.mapper.StaffManageMapper;
|
|
|
import org.dromara.service.IStaffManageService;
|
|
|
import org.dromara.system.domain.SysRole;
|
|
@@ -40,6 +41,8 @@ import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
import static org.dromara.common.core.constant.Constants.*;
|
|
|
+import static org.dromara.common.core.enums.UserType.APP_STAFF;
|
|
|
+import static org.dromara.common.core.enums.UserType.PC_USER;
|
|
|
|
|
|
/**
|
|
|
* 员工管理Service业务层处理
|
|
@@ -57,6 +60,7 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
private final ISysUserService userService;
|
|
|
private final SysUserMapper userMapper;
|
|
|
private final SysUserRoleMapper userRoleMapper;
|
|
|
+ private final ResidentInfoMapper residentInfoMapper;
|
|
|
|
|
|
/**
|
|
|
* 查询员工管理
|
|
@@ -90,8 +94,8 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public List<StaffManageVo> getInfoByUserId(Long userId) {
|
|
|
- return baseMapper.getInfoByUserId(userId);
|
|
|
+ public StaffManageVo getInfoByUserId(Long userId,String tenantId) {
|
|
|
+ return baseMapper.getInfoByUserId(userId,tenantId);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -204,22 +208,21 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
throw new UserException("staff.manage.error");
|
|
|
} else if (flag) {
|
|
|
SysUserBo user = new SysUserBo();
|
|
|
- String tenantId = staffManage.getTenantId();;
|
|
|
+ String tenantId = staffManage.getTenantId();
|
|
|
//手机号、手机验证码注册
|
|
|
String username = staffManage.getPhoneNumber();
|
|
|
String password = BoManConfig.getPasswordDeft();
|
|
|
// 校验用户类型是否存在
|
|
|
- String userType = UserType.getUserType(staffManage.getUserType()).getUserType();
|
|
|
+ //String userType = UserType.getUserType(staffManage.getUserType()).getUserType();
|
|
|
|
|
|
user.setUserName(username);
|
|
|
user.setNickName(username);
|
|
|
user.setPassword(BCrypt.hashpw(password));
|
|
|
- user.setUserType(userType);
|
|
|
user.setPhonenumber(username);
|
|
|
- user.setIsAuthentication(Y);
|
|
|
+ user.setIsAuthentication(THR);
|
|
|
+ user.setUserType(APP_STAFF.getUserType() + "," + PC_USER.getUserType());
|
|
|
boolean exist = TenantHelper.ignore(() -> {
|
|
|
- return
|
|
|
- userMapper.exists(new LambdaQueryWrapper<SysUser>()
|
|
|
+ return userMapper.exists(new LambdaQueryWrapper<SysUser>()
|
|
|
.eq(SysUser::getUserName, user.getUserName()));
|
|
|
});
|
|
|
SysUser sysUser = MapstructUtils.convert(user, SysUser.class);
|
|
@@ -239,6 +242,17 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
return userMapper.selectVoOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber, username));
|
|
|
});
|
|
|
userId = sysUserVo.getUserId();
|
|
|
+ String userType = sysUserVo.getUserType();
|
|
|
+ sysUser.setUserType(userType + "," + APP_STAFF.getUserType() + "," + PC_USER.getUserType());
|
|
|
+ //去查询居住人员里面是否有认证通过的
|
|
|
+ List<ResidentInfoVo> infoByUserId = residentInfoMapper.getInfoByUserId(userId);
|
|
|
+ if (infoByUserId != null && !infoByUserId.isEmpty()) {
|
|
|
+ List<ResidentInfoVo> list = infoByUserId.stream().filter(e -> e.getExamine().equals(TWO)).toList();
|
|
|
+ if (!list.isEmpty()) {
|
|
|
+ sysUser.setIsAuthentication(FOR);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ userMapper.updateById(sysUser);
|
|
|
}
|
|
|
staffManage.setExamine(TWO);
|
|
|
staffManage.setUserId(userId);
|
|
@@ -371,14 +385,26 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean examineStaff(StaffManageBo bo) {
|
|
|
StaffManage examineStaffManage = MapstructUtils.convert(bo, StaffManage.class);
|
|
|
+ Long userId = bo.getUserId();
|
|
|
//判断是否审核通过
|
|
|
if (TWO.equals(examineStaffManage.getExamine())) {
|
|
|
SysUserBo sysUser = new SysUserBo();
|
|
|
- sysUser.setUserId(bo.getUserId());
|
|
|
+ sysUser.setUserId(userId);
|
|
|
if (TenantHelper.isEnable()) {
|
|
|
+ SysUserVo sysUserVo = userService.selectUserById(bo.getUserId());
|
|
|
//把租户id更新到sys_user表/sys_user_tenant表中
|
|
|
sysUser.setTenantId(examineStaffManage.getTenantId());
|
|
|
- sysUser.setIsAuthentication(Y);
|
|
|
+ sysUser.setIsAuthentication(THR);
|
|
|
+ //先去查询居住人员里面是否有认证通过的
|
|
|
+ List<ResidentInfoVo> infoByUserId = residentInfoMapper.getInfoByUserId(userId);
|
|
|
+ if (infoByUserId != null && !infoByUserId.isEmpty()) {
|
|
|
+ List<ResidentInfoVo> list = infoByUserId.stream().filter(e -> e.getExamine().equals(TWO)).toList();
|
|
|
+ if (!list.isEmpty()) {
|
|
|
+ sysUser.setIsAuthentication(FOR);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String userType = sysUserVo.getUserType();
|
|
|
+ sysUser.setUserType(userType + "," + APP_STAFF.getUserType() + "," + PC_USER.getUserType());
|
|
|
userService.updateUserByIdNoTenantId(sysUser);
|
|
|
SysUserTenant sysUserTenant = new SysUserTenant();
|
|
|
sysUserTenant.setUserId(examineStaffManage.getUserId());
|
|
@@ -414,7 +440,7 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 删除员工信息和用户信息和权限
|
|
|
+ * 删除员工信息和权限
|
|
|
*
|
|
|
* @param bo
|
|
|
* @return
|
|
@@ -432,15 +458,10 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
return baseMapper.selectList(new LambdaQueryWrapper<StaffManage>().eq(StaffManage::getUserId, userId));
|
|
|
});
|
|
|
//查询该用户是否一个认证信息 通过的 都没有则需要把用户租户重置为000000,认证状态改为未认证
|
|
|
+ //还需要检查是否有认证的业主信息
|
|
|
SysUser sysUser = new SysUser();
|
|
|
sysUser.setUserId(userId);
|
|
|
- if (staffManageList == null) {
|
|
|
- sysUser.setTenantId(TENANT_ID);
|
|
|
- sysUser.setIsAuthentication(N);
|
|
|
- TenantHelper.ignore(() -> {
|
|
|
- userMapper.updateById(sysUser);
|
|
|
- });
|
|
|
- }
|
|
|
+ sysUser.setTenantId(TENANT_ID);
|
|
|
// 删除用户与角色关联
|
|
|
TenantHelper.ignore(() -> {
|
|
|
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId).eq(SysUserRole::getTenantId, tenantId));
|
|
@@ -449,7 +470,7 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
TenantHelper.ignore(() -> {
|
|
|
sysUserTenantMapper.delete(new LambdaQueryWrapper<SysUserTenant>().eq(SysUserTenant::getUserId, userId).eq(SysUserTenant::getTenantId, tenantId));
|
|
|
});
|
|
|
- if (staffManageList != null && staffManageList.size() > 0) {
|
|
|
+/* if (staffManageList != null && !staffManageList.isEmpty()) {
|
|
|
//判断用户的默认租户是否是被删除的那个租户,是的情况下换一个租户id给sysUser表中
|
|
|
SysUserVo sysUserVo = TenantHelper.ignore(() -> {
|
|
|
return
|
|
@@ -458,22 +479,53 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
String tenantIdOld = sysUserVo.getTenantId();
|
|
|
if (tenantId.equals(tenantIdOld)) {
|
|
|
SysUserTenant sysUserTenant = sysUserTenantMapper.selectVoOne(new LambdaQueryWrapper<SysUserTenant>().eq(SysUserTenant::getUserId, userId));
|
|
|
- sysUser.setTenantId(TENANT_ID);
|
|
|
if (sysUserTenant != null) {
|
|
|
sysUser.setTenantId(sysUserTenant.getTenantId());
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
- long count = staffManageList.stream().filter(e -> e.getExamine().equals(TWO)).count();
|
|
|
- if (count == 0) {
|
|
|
- sysUser.setTenantId(TENANT_ID);
|
|
|
- sysUser.setIsAuthentication(N);
|
|
|
- TenantHelper.ignore(() -> {
|
|
|
- userMapper.updateById(sysUser);
|
|
|
- });
|
|
|
+ //判断是否还有认证通过的员工信息,不分租户
|
|
|
+ count = staffManageList.stream().filter(e -> e.getExamine().equals(TWO)).count();
|
|
|
+ }*/
|
|
|
+ /**
|
|
|
+ * 认证通过的才算认证
|
|
|
+ */
|
|
|
+ if (staffManageList == null) {
|
|
|
+ //如果一个员工都没有,去查询是否有居住人员认证通过的
|
|
|
+ List<ResidentInfoVo> infoByUserId = residentInfoMapper.getInfoByUserId(userId);
|
|
|
+ if (infoByUserId != null && !infoByUserId.isEmpty()) {
|
|
|
+ List<ResidentInfoVo> list = infoByUserId.stream().filter(e -> e.getExamine().equals(TWO)).toList();
|
|
|
+ if (!list.isEmpty()) {
|
|
|
+ sysUser.setIsAuthentication(TWO);
|
|
|
+ sysUser.setTenantId(list.get(0).getTenantId());
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //一个居住人员都没有,说明该用户一个认证信息都没有提交
|
|
|
+ sysUser.setIsAuthentication(ONE);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //说明还有认证过的员工信息
|
|
|
+ List<StaffManage> list = staffManageList.stream().filter(e -> e.getExamine().equals(TWO)).toList();
|
|
|
+ if (!list.isEmpty()) {
|
|
|
+ sysUser.setTenantId(list.get(0).getTenantId());
|
|
|
+ }else {
|
|
|
+ //如果一个员工通过的都没有,去查询是否有居住人员认证通过的
|
|
|
+ List<ResidentInfoVo> infoByUserId = residentInfoMapper.getInfoByUserId(userId);
|
|
|
+ if (infoByUserId != null && !infoByUserId.isEmpty()) {
|
|
|
+ List<ResidentInfoVo> residentInfoVoList = infoByUserId.stream().filter(e -> e.getExamine().equals(TWO)).toList();
|
|
|
+ if (!residentInfoVoList.isEmpty()) {
|
|
|
+ sysUser.setIsAuthentication(TWO);
|
|
|
+ sysUser.setTenantId(residentInfoVoList.get(0).getTenantId());
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ //一个居住人员都没有,说明该用户一个认证信息都没有提交
|
|
|
+ sysUser.setIsAuthentication(ONE);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ //更新用户的TENANT_ID和认证状态
|
|
|
+ TenantHelper.ignore(() -> {
|
|
|
+ userMapper.updateById(sysUser);
|
|
|
+ });
|
|
|
} else {
|
|
|
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
|
|
|
}
|