浏览代码

用户相关修改,用户已关联次要部门时向前端报错

chenjun 1 年之前
父节点
当前提交
d9f399d0fc

+ 1 - 0
zjugis-module-system/zjugis-module-system-api/src/main/java/com/zjugis/module/system/enums/ErrorCodeConstants.java

@@ -42,6 +42,7 @@ public interface ErrorCodeConstants {
     ErrorCode USER_PASSWORD_FAILED = new ErrorCode(1_002_003_005, "用户密码校验失败");
     ErrorCode USER_IS_DISABLE = new ErrorCode(1_002_003_006, "名字为【{}】的用户已被禁用");
     ErrorCode USER_COUNT_MAX = new ErrorCode(1_002_003_008, "创建用户失败,原因:超过租户最大租户配额({})!");
+    ErrorCode USER_MINOR_DEPT_IS_EXISTS = new ErrorCode(1_002_003_009, "用户已关联该部门");
 
     // ========== 部门模块 1-002-004-000 ==========
     ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "已经存在该名字的部门");

+ 4 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/controller/admin/user/vo/user/UserBaseVO.java

@@ -8,6 +8,7 @@ import javax.validation.constraints.Email;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.Pattern;
 import javax.validation.constraints.Size;
+import java.util.List;
 import java.util.Set;
 
 /**
@@ -33,6 +34,9 @@ public class UserBaseVO {
     @Schema(description = "部门ID", example = "我是一个用户")
     private String deptId;
 
+    @Schema(description = "次要部门", example = "我是一个用户")
+    private List<String> deptIds;
+
     @Schema(description = "岗位编号数组", example = "1")
     private Set<Long> postIds;
 

+ 3 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/controller/admin/user/vo/user/UserPageReqVO.java

@@ -22,6 +22,9 @@ public class UserPageReqVO extends PageParam {
     @Schema(description = "用户账号,模糊匹配", example = "zjugis")
     private String username;
 
+    @Schema(description = "用户昵称,模糊匹配", example = "zjugis")
+    private String nickname;
+
     @Schema(description = "手机号码,模糊匹配", example = "zjugis")
     private String mobile;
 

+ 6 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/dal/mysql/dept/UserDeptMapper.java

@@ -27,6 +27,12 @@ public interface UserDeptMapper extends BaseMapperX<UserDeptDO> {
                 .eq(UserDeptDO::getDeptId, deptId));
     }
 
+    default UserDeptDO getByUserIdAndDeptId(String userId, String deptId) {
+        return selectOne(new LambdaQueryWrapperX<UserDeptDO>()
+                .eq(UserDeptDO::getUserId, userId)
+                .eq(UserDeptDO::getDeptId, deptId));
+    }
+
     default List<UserDeptDO> selectListByDeptIds(Collection<String> deptIds) {
         return selectList(UserDeptDO::getDeptId, deptIds);
     }

+ 1 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/dal/mysql/user/AdminUserMapper.java

@@ -32,6 +32,7 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
     default PageResult<AdminUserDO> selectPage(UserPageReqVO reqVO, Collection<String> deptIds) {
         LambdaQueryWrapper<AdminUserDO> adminUserDOLambdaQueryWrapper = new LambdaQueryWrapperX<AdminUserDO>()
                 .likeIfPresent(AdminUserDO::getUsername, reqVO.getUsername())
+                .likeIfPresent(AdminUserDO::getNickname, reqVO.getNickname())
                 .likeIfPresent(AdminUserDO::getMobile, reqVO.getMobile())
                 .eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus())
                 .betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getCreateTime())

+ 4 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/service/user/AdminUserServiceImpl.java

@@ -490,6 +490,10 @@ public class AdminUserServiceImpl implements AdminUserService {
     @Override
     public void addUserDeptIds(UserUpdateDeptIdsReqVO reqVO) {
         AdminUserDO adminUserDO = validateUserExists(reqVO.getId());
+        UserDeptDO userDeptDO = userDeptMapper.getByUserIdAndDeptId(adminUserDO.getId(), reqVO.getMinorDeptId());
+        if (userDeptDO != null) {
+            throw exception(USER_MINOR_DEPT_IS_EXISTS);
+        }
         UserDeptDO userDept = new UserDeptDO();
         userDept.setUserId(adminUserDO.getId());
         userDept.setDeptId(reqVO.getMinorDeptId());