fix: 租户管理员修改信息时,更新租户联系方式和联系人

master
wangrunpu 4 weeks ago
parent 0077a944bc
commit 127138669c

@ -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));
}

Loading…
Cancel
Save