|
@@ -14,7 +14,6 @@ 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.redis.utils.RedisUtils;
|
|
|
import org.dromara.common.tenant.helper.TenantHelper;
|
|
|
import org.dromara.domain.staffManage.StaffManage;
|
|
|
import org.dromara.domain.staffManage.bo.StaffManageBo;
|
|
@@ -27,6 +26,7 @@ import org.dromara.system.domain.SysUserRole;
|
|
|
import org.dromara.system.domain.SysUserTenant;
|
|
|
import org.dromara.system.domain.bo.SysUserBo;
|
|
|
import org.dromara.system.domain.vo.SysRoleVo;
|
|
|
+import org.dromara.system.domain.vo.SysUserVo;
|
|
|
import org.dromara.system.mapper.SysRoleMapper;
|
|
|
import org.dromara.system.mapper.SysUserMapper;
|
|
|
import org.dromara.system.mapper.SysUserRoleMapper;
|
|
@@ -152,14 +152,20 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
boolean flag = checkPhoneNumberUnique(add);
|
|
|
if (!flag) {
|
|
|
throw new UserException("staff.manage.error");
|
|
|
- }else if (flag) {
|
|
|
+ } else if (flag) {
|
|
|
validEntityBeforeSave(add);
|
|
|
flag = baseMapper.insert(add) > 0;
|
|
|
+
|
|
|
+ SysUserBo sysUser = new SysUserBo();
|
|
|
+ sysUser.setUserId(bo.getUserId());
|
|
|
+ //把租户id更新到sys_user表/sys_user_tenant表中
|
|
|
+ sysUser.setIsAuthentication(Y);
|
|
|
+ userService.updateUserByIdNoTenantId(sysUser);
|
|
|
if (flag) {
|
|
|
bo.setStaffId(add.getStaffId());
|
|
|
}
|
|
|
}
|
|
|
- //往redis中插入需要认证的记录数据,给getUserInfo接口判断是否需要认证使用
|
|
|
+/* //往redis中插入需要认证的记录数据,给getUserInfo接口判断是否需要认证使用
|
|
|
String key = STAFF_MANAGE_AUTHENTICATION + bo.getUserId();
|
|
|
Object cacheObject = RedisUtils.getCacheObject(key);
|
|
|
int count = 0;
|
|
@@ -168,7 +174,7 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
RedisUtils.setCacheObject(key, count);
|
|
|
} else {
|
|
|
RedisUtils.setCacheObject(key, 1);
|
|
|
- }
|
|
|
+ }*/
|
|
|
return flag;
|
|
|
}
|
|
|
|
|
@@ -356,12 +362,13 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
Long[] roles;
|
|
|
SysRoleVo sysRoleVo = sysRoleMapper.selectVoOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleKey, examineStaffManage.getStaffCategory()));
|
|
|
if (sysRoleVo != null) {
|
|
|
- roles = new Long[]{sysRoleVo.getRoleId()};
|
|
|
- sysUser.setRoleIds(roles);
|
|
|
+ Long[] longArray = new Long[1];
|
|
|
+ longArray[0] = sysRoleVo.getRoleId();
|
|
|
+ sysUser.setRoleIds(longArray);
|
|
|
}
|
|
|
userService.insertUserRole(sysUser, false);
|
|
|
|
|
|
- //往redis中插入需要认证的记录数据,给getUserInfo接口判断是否需要认证使用
|
|
|
+/* //往redis中插入需要认证的记录数据,给getUserInfo接口判断是否需要认证使用
|
|
|
String key = STAFF_MANAGE_AUTHENTICATION + bo.getUserId();
|
|
|
Object cacheObject = RedisUtils.getCacheObject(key);
|
|
|
int count = 0;
|
|
@@ -372,11 +379,9 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
}else {
|
|
|
RedisUtils.deleteObject(key);
|
|
|
}
|
|
|
- }
|
|
|
- } else {
|
|
|
- return baseMapper.updateById(examineStaffManage) > 0;
|
|
|
+ }*/
|
|
|
}
|
|
|
- return true;
|
|
|
+ return baseMapper.updateById(examineStaffManage) > 0;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -394,13 +399,43 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
boolean flag = baseMapper.deleteById(staffId) > 0;
|
|
|
// userMapper.deleteById(userId);
|
|
|
if (TenantHelper.isEnable()) {
|
|
|
+ Long count = TenantHelper.ignore(() -> {
|
|
|
+ return baseMapper.selectCount(new LambdaQueryWrapper<StaffManage>().eq(StaffManage::getUserId, userId));
|
|
|
+ });
|
|
|
+ //查询该用户是否一个认证信息都没有则需要把用户租户重置为000000,认证状态改为未认证
|
|
|
+ SysUser sysUser = new SysUser();
|
|
|
+ sysUser.setUserId(userId);
|
|
|
+ if (count == 0) {
|
|
|
+ sysUser.setTenantId(TENANT_ID);
|
|
|
+ sysUser.setIsAuthentication(N);
|
|
|
+ TenantHelper.ignore(() -> {
|
|
|
+ userMapper.updateById(sysUser);
|
|
|
+ });
|
|
|
+ }
|
|
|
// 删除用户与角色关联
|
|
|
- userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId).eq(SysUserRole::getTenantId, tenantId));
|
|
|
- sysUserTenantMapper.delete(new LambdaQueryWrapper<SysUserTenant>().eq(SysUserTenant::getUserId, userId).eq(SysUserTenant::getTenantId, tenantId));
|
|
|
+ TenantHelper.ignore(() -> {
|
|
|
+ userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId).eq(SysUserRole::getTenantId, tenantId));
|
|
|
+ });
|
|
|
+ // 删除用户与租户关联
|
|
|
+ TenantHelper.ignore(() -> {
|
|
|
+ sysUserTenantMapper.delete(new LambdaQueryWrapper<SysUserTenant>().eq(SysUserTenant::getUserId, userId).eq(SysUserTenant::getTenantId, tenantId));
|
|
|
+ });
|
|
|
+ if (count > 0) {
|
|
|
+ //判断用户的默认租户是否是被删除的那个租户,是的情况下换一个租户id给sysUser表中
|
|
|
+ SysUserVo sysUserVo = userMapper.selectVoById(userId);
|
|
|
+ String tenantIdOld = sysUserVo.getTenantId();
|
|
|
+ if (tenantId.equals(tenantIdOld)) {
|
|
|
+ SysUserTenant sysUserTenant = sysUserTenantMapper.selectVoOne(new LambdaQueryWrapper<SysUserTenant>().eq(SysUserTenant::getUserId, userId));
|
|
|
+ sysUser.setTenantId(sysUserTenant.getTenantId());
|
|
|
+ TenantHelper.ignore(() -> {
|
|
|
+ userMapper.updateById(sysUser);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
|
|
|
}
|
|
|
- //往redis中插入需要认证的记录数据,给getUserInfo接口判断是否需要认证使用
|
|
|
+/* //往redis中插入需要认证的记录数据,给getUserInfo接口判断是否需要认证使用
|
|
|
String key = STAFF_MANAGE_AUTHENTICATION + userId;
|
|
|
Object cacheObject = RedisUtils.getCacheObject(key);
|
|
|
int count = 0;
|
|
@@ -411,7 +446,7 @@ public class StaffManageServiceImpl implements IStaffManageService {
|
|
|
}else {
|
|
|
RedisUtils.deleteObject(key);
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
return flag;
|
|
|
}
|
|
|
|