|
|
|
|
@ -12,6 +12,7 @@ import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
|
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
|
|
import cn.iocoder.yudao.framework.common.util.validation.ValidationUtils;
|
|
|
|
|
import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils;
|
|
|
|
|
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
|
|
|
|
|
import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;
|
|
|
|
|
import cn.iocoder.yudao.module.infra.api.config.ConfigApi;
|
|
|
|
|
import cn.iocoder.yudao.module.system.controller.admin.auth.vo.AuthRegisterReqVO;
|
|
|
|
|
@ -23,9 +24,12 @@ import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqV
|
|
|
|
|
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserSaveReqVO;
|
|
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
|
|
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.dept.UserPostDO;
|
|
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.tenant.TenantDO;
|
|
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
|
|
|
|
import cn.iocoder.yudao.module.system.dal.mysql.dept.UserPostMapper;
|
|
|
|
|
import cn.iocoder.yudao.module.system.dal.mysql.tenant.TenantMapper;
|
|
|
|
|
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper;
|
|
|
|
|
import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum;
|
|
|
|
|
import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
|
|
|
|
import cn.iocoder.yudao.module.system.service.dept.PostService;
|
|
|
|
|
import cn.iocoder.yudao.module.system.service.oauth2.OAuth2TokenService;
|
|
|
|
|
@ -79,6 +83,8 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|
|
|
|
@Lazy // 延迟,避免循环依赖报错
|
|
|
|
|
private TenantService tenantService;
|
|
|
|
|
@Resource
|
|
|
|
|
private TenantMapper tenantMapper;
|
|
|
|
|
@Resource
|
|
|
|
|
@Lazy // 懒加载,避免循环依赖
|
|
|
|
|
private OAuth2TokenService oauth2TokenService;
|
|
|
|
|
|
|
|
|
|
@ -152,7 +158,13 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|
|
|
|
// 1. 校验正确性
|
|
|
|
|
AdminUserDO oldUser = validateUserForCreateOrUpdate(updateReqVO.getId(), updateReqVO.getUsername(),
|
|
|
|
|
updateReqVO.getEmail(), updateReqVO.getDeptId(), updateReqVO.getPostIds());
|
|
|
|
|
|
|
|
|
|
if (permissionService.hasAnyRoles(updateReqVO.getId(), RoleCodeEnum.TENANT_ADMIN.getCode())) {
|
|
|
|
|
TenantDO tenantDO = new TenantDO();
|
|
|
|
|
tenantDO.setId(TenantContextHolder.getTenantId());
|
|
|
|
|
tenantDO.setContactMobile(updateReqVO.getUsername());
|
|
|
|
|
tenantDO.setContactName(updateReqVO.getNickname());
|
|
|
|
|
tenantMapper.updateById(tenantDO);
|
|
|
|
|
}
|
|
|
|
|
// 2.1 更新用户
|
|
|
|
|
AdminUserDO updateObj = BeanUtils.toBean(updateReqVO, AdminUserDO.class);
|
|
|
|
|
userMapper.updateById(updateObj);
|
|
|
|
|
@ -192,6 +204,13 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|
|
|
|
validateUserExists(id);
|
|
|
|
|
validateEmailUnique(id, reqVO.getEmail());
|
|
|
|
|
validateUsernameUnique(id, reqVO.getUsername());
|
|
|
|
|
if (permissionService.hasAnyRoles(id, RoleCodeEnum.TENANT_ADMIN.getCode())) {
|
|
|
|
|
TenantDO tenantDO = new TenantDO();
|
|
|
|
|
tenantDO.setId(TenantContextHolder.getTenantId());
|
|
|
|
|
tenantDO.setContactMobile(reqVO.getUsername());
|
|
|
|
|
tenantDO.setContactName(reqVO.getNickname());
|
|
|
|
|
tenantMapper.updateById(tenantDO);
|
|
|
|
|
}
|
|
|
|
|
// 执行更新
|
|
|
|
|
userMapper.updateById(BeanUtils.toBean(reqVO, AdminUserDO.class).setId(id));
|
|
|
|
|
}
|
|
|
|
|
|