|
@@ -98,7 +98,7 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|
|
|
|
|
// 1.2 校验正确性
|
|
|
validateUserForCreateOrUpdate(null, createReqVO.getUsername(),
|
|
|
- createReqVO.getMobile(), createReqVO.getEmail(), createReqVO.getDeptId(), createReqVO.getPostIds(),createReqVO.getSupervisor());
|
|
|
+ createReqVO.getMobile(), createReqVO.getEmail(), createReqVO.getDeptId(), createReqVO.getPostIds(),createReqVO.getSupervisor(),createReqVO.getUserNumber());
|
|
|
//
|
|
|
// 2.1 插入用户
|
|
|
AdminUserDO user = BeanUtils.toBean(createReqVO, AdminUserDO.class);
|
|
@@ -135,19 +135,23 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|
|
updateReqVO.setPassword(null); // 特殊:此处不更新密码
|
|
|
// 1. 校验正确性
|
|
|
AdminUserDO oldUser = validateUserForCreateOrUpdate(updateReqVO.getId(), updateReqVO.getUsername(),
|
|
|
- updateReqVO.getMobile(), updateReqVO.getEmail(), updateReqVO.getDeptId(), updateReqVO.getPostIds(),updateReqVO.getSupervisor());
|
|
|
+ updateReqVO.getMobile(), updateReqVO.getEmail(), updateReqVO.getDeptId(), updateReqVO.getPostIds(),updateReqVO.getSupervisor(),updateReqVO.getUserNumber());
|
|
|
|
|
|
// 2.1 更新用户
|
|
|
AdminUserDO updateObj = BeanUtils.toBean(updateReqVO, AdminUserDO.class);
|
|
|
if ("3".equals(updateReqVO.getUserType())){//是导师直接添加为负责人
|
|
|
- // TODO 删除原部门负责人
|
|
|
+ // TODO 删除原部门负责人,,,有问题,多个里面删不了,单独的可以
|
|
|
//获取原来的工作间删除负责人
|
|
|
AdminUserDO user =getUser(updateObj.getId());
|
|
|
DeptDO originDept = deptService.getDept(user.getDeptId());
|
|
|
DeptSaveReqVO originNewDept =BeanUtils.toBean(originDept,DeptSaveReqVO.class);
|
|
|
List<Long> originLeaderIdList = originNewDept.getLeaderUserId();
|
|
|
- originLeaderIdList.remove(user.getId());
|
|
|
+ List<Long> newLeaderIdList = new ArrayList<>(originLeaderIdList); // 创建新列表
|
|
|
+ newLeaderIdList.remove(user.getId()); // 删除指定的 ID
|
|
|
+ originNewDept.setLeaderUserId(newLeaderIdList);
|
|
|
+ System.out.println(newLeaderIdList);
|
|
|
deptService.updateDept(originNewDept);
|
|
|
+
|
|
|
//添加部门
|
|
|
DeptDO dept = deptService.getDept(updateReqVO.getDeptId());
|
|
|
DeptSaveReqVO newDept =BeanUtils.toBean(dept,DeptSaveReqVO.class);
|
|
@@ -488,7 +492,7 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|
|
}
|
|
|
|
|
|
private AdminUserDO validateUserForCreateOrUpdate(Long id, String username, String email,String mobile,
|
|
|
- Long deptId, Set<Long> postIds,String supervisor ) {
|
|
|
+ Long deptId, Set<Long> postIds,String supervisor,String userNumber ) {
|
|
|
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
|
|
|
return DataPermissionUtils.executeIgnore(() -> {
|
|
|
// 校验用户存在
|
|
@@ -505,6 +509,9 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|
|
postService.validatePostList(postIds);
|
|
|
//检验是导师否存在
|
|
|
validateSupervisorExist(id,supervisor );
|
|
|
+ //
|
|
|
+ validateUserNumberUnique(id, userNumber);
|
|
|
+
|
|
|
return user;
|
|
|
});
|
|
|
}
|
|
@@ -539,6 +546,24 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @VisibleForTesting
|
|
|
+ void validateUserNumberUnique(Long id, String userNumber) {
|
|
|
+ if (StrUtil.isBlank(userNumber)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ AdminUserDO user = userMapper.selectByUsername(userNumber);
|
|
|
+ if (user == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 如果 id 为空,说明不用比较是否为相同 id 的用户
|
|
|
+ if (id == null) {
|
|
|
+ throw exception(USER_USERNUMBER_EXISTS);
|
|
|
+ }
|
|
|
+ if (!user.getId().equals(id)) {
|
|
|
+ throw exception(USER_USERNUMBER_EXISTS);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@VisibleForTesting
|
|
|
void validateEmailUnique(Long id, String email) {
|
|
|
if (StrUtil.isBlank(email)) {
|
|
@@ -664,7 +689,7 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|
|
}
|
|
|
try {
|
|
|
validateUserForCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(),
|
|
|
- deptId , null, importUser.getSupervisor());
|
|
|
+ deptId , null, importUser.getSupervisor(),importUser.getUserNumber());
|
|
|
} catch (ServiceException ex) {
|
|
|
respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
|
|
|
return;
|
|
@@ -743,7 +768,7 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|
|
deptId = TransformDept(importUser.getDeptName());
|
|
|
}
|
|
|
validateUserForCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(),
|
|
|
- deptId , null,null);
|
|
|
+ deptId , null,null,importUser.getUserNumber());
|
|
|
} catch (ServiceException ex) {
|
|
|
respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
|
|
|
return;
|
|
@@ -801,7 +826,7 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|
|
importUsers.forEach(importUser -> {
|
|
|
try {
|
|
|
validateUserForCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(),
|
|
|
- null , null,null);
|
|
|
+ null , null,importUser.getSupervisor(),importUser.getUserNumber());
|
|
|
} catch (ServiceException ex) {
|
|
|
respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
|
|
|
return;
|
|
@@ -873,7 +898,7 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|
|
deptId = TransformDept(importUser.getDeptName());
|
|
|
}
|
|
|
validateUserForCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(),
|
|
|
- deptId , null, importUser.getSupervisor());
|
|
|
+ deptId , null, importUser.getSupervisor(),importUser.getUserNumber());
|
|
|
} catch (ServiceException ex) {
|
|
|
respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
|
|
|
return;
|