mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
处理新增用户的异常
This commit is contained in:
+5
-2
@@ -199,9 +199,12 @@ public class UserController {
|
|||||||
})
|
})
|
||||||
@PreAuthorize("@ss.hasPermission('system:user:import')")
|
@PreAuthorize("@ss.hasPermission('system:user:import')")
|
||||||
public CommonResult<UserImportRespVO> importExcel(@RequestParam("file") MultipartFile file,
|
public CommonResult<UserImportRespVO> importExcel(@RequestParam("file") MultipartFile file,
|
||||||
@RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport) throws Exception {
|
@RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport,
|
||||||
|
@RequestParam(value = "organId", required = false) Long organId
|
||||||
|
) throws Exception {
|
||||||
List<UserImportExcelVO> list = ExcelUtils.read(file, UserImportExcelVO.class);
|
List<UserImportExcelVO> list = ExcelUtils.read(file, UserImportExcelVO.class);
|
||||||
return success(userService.importUserList(list, updateSupport));
|
organId = organId==null? OrganContextHolder.getOrganId() : organId;
|
||||||
|
return success(userService.importUserList(list, updateSupport, organId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/list-terms-simple")
|
@GetMapping("/list-terms-simple")
|
||||||
|
|||||||
+1
-1
@@ -198,7 +198,7 @@ public interface AdminUserService {
|
|||||||
* @param isUpdateSupport 是否支持更新
|
* @param isUpdateSupport 是否支持更新
|
||||||
* @return 导入结果
|
* @return 导入结果
|
||||||
*/
|
*/
|
||||||
UserImportRespVO importUserList(List<UserImportExcelVO> importUsers, boolean isUpdateSupport);
|
UserImportRespVO importUserList(List<UserImportExcelVO> importUsers, boolean isUpdateSupport, Long organId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得指定状态的用户们
|
* 获得指定状态的用户们
|
||||||
|
|||||||
+13
-12
@@ -128,10 +128,11 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateUser(UserSaveReqVO updateReqVO) {
|
public void updateUser(UserSaveReqVO updateReqVO) {
|
||||||
|
Long organId = updateReqVO.getOrganId() == null ? OrganContextHolder.getOrganId(): updateReqVO.getOrganId();
|
||||||
updateReqVO.setPassword(null); // 特殊:此处不更新密码
|
updateReqVO.setPassword(null); // 特殊:此处不更新密码
|
||||||
// 校验正确性
|
// 校验正确性
|
||||||
validateUserForCreateOrUpdate(updateReqVO.getId(), updateReqVO.getUsername(),
|
validateUserForCreateOrUpdate(updateReqVO.getId(), updateReqVO.getUsername(),
|
||||||
updateReqVO.getMobile(), updateReqVO.getEmail(), updateReqVO.getDeptId(), updateReqVO.getPostIds(), updateReqVO.getOrganId());
|
updateReqVO.getMobile(), updateReqVO.getEmail(), updateReqVO.getDeptId(), updateReqVO.getPostIds(), organId);
|
||||||
// 更新用户
|
// 更新用户
|
||||||
AdminUserDO updateObj = BeanUtils.toBean(updateReqVO, AdminUserDO.class);
|
AdminUserDO updateObj = BeanUtils.toBean(updateReqVO, AdminUserDO.class);
|
||||||
|
|
||||||
@@ -174,10 +175,11 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateUserProfile(Long id, UserProfileUpdateReqVO reqVO) {
|
public void updateUserProfile(Long id, UserProfileUpdateReqVO reqVO) {
|
||||||
|
Long organId = reqVO.getOrganId() == null ? OrganContextHolder.getOrganId() : reqVO.getOrganId();
|
||||||
// 校验正确性
|
// 校验正确性
|
||||||
validateUserExists(id);
|
validateUserExists(id);
|
||||||
validateEmailUnique(id, reqVO.getEmail());
|
validateEmailUnique(id, reqVO.getEmail(), organId);
|
||||||
validateMobileUnique(id, reqVO.getMobile());
|
validateMobileUnique(id, reqVO.getMobile(), organId);
|
||||||
// 执行更新
|
// 执行更新
|
||||||
userMapper.updateById(BeanUtils.toBean(reqVO, AdminUserDO.class).setId(id));
|
userMapper.updateById(BeanUtils.toBean(reqVO, AdminUserDO.class).setId(id));
|
||||||
}
|
}
|
||||||
@@ -356,9 +358,9 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|||||||
// 校验用户名唯一
|
// 校验用户名唯一
|
||||||
validateUsernameUnique(id, username, organId);
|
validateUsernameUnique(id, username, organId);
|
||||||
// 校验手机号唯一
|
// 校验手机号唯一
|
||||||
validateMobileUnique(id, mobile);
|
validateMobileUnique(id, mobile, organId);
|
||||||
// 校验邮箱唯一
|
// 校验邮箱唯一
|
||||||
validateEmailUnique(id, email);
|
validateEmailUnique(id, email, organId);
|
||||||
// 校验部门处于开启状态
|
// 校验部门处于开启状态
|
||||||
deptService.validateDeptList(CollectionUtils.singleton(deptId));
|
deptService.validateDeptList(CollectionUtils.singleton(deptId));
|
||||||
// 校验岗位处于开启状态
|
// 校验岗位处于开启状态
|
||||||
@@ -397,11 +399,11 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void validateEmailUnique(Long id, String email) {
|
void validateEmailUnique(Long id, String email, Long organId) {
|
||||||
if (StrUtil.isBlank(email)) {
|
if (StrUtil.isBlank(email)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
AdminUserDO user = userMapper.selectByEmail(email);
|
AdminUserDO user = userMapper.selectOne(AdminUserDO::getOrganId, organId, AdminUserDO::getEmail, email);
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -415,11 +417,11 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void validateMobileUnique(Long id, String mobile) {
|
void validateMobileUnique(Long id, String mobile, Long organId) {
|
||||||
if (StrUtil.isBlank(mobile)) {
|
if (StrUtil.isBlank(mobile)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
AdminUserDO user = userMapper.selectByMobile(mobile);
|
AdminUserDO user = userMapper.selectOne(AdminUserDO::getOrganId, organId, AdminUserDO::getMobile, mobile);
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -451,7 +453,7 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入
|
@Transactional(rollbackFor = Exception.class) // 添加事务,异常则回滚所有导入
|
||||||
public UserImportRespVO importUserList(List<UserImportExcelVO> importUsers, boolean isUpdateSupport) {
|
public UserImportRespVO importUserList(List<UserImportExcelVO> importUsers, boolean isUpdateSupport, Long organId) {
|
||||||
if (CollUtil.isEmpty(importUsers)) {
|
if (CollUtil.isEmpty(importUsers)) {
|
||||||
throw ServiceExceptionUtil.exception(ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY);
|
throw ServiceExceptionUtil.exception(ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY);
|
||||||
}
|
}
|
||||||
@@ -461,12 +463,11 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|||||||
// 校验,判断是否有不符合的原因
|
// 校验,判断是否有不符合的原因
|
||||||
try {
|
try {
|
||||||
validateUserForCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(),
|
validateUserForCreateOrUpdate(null, null, importUser.getMobile(), importUser.getEmail(),
|
||||||
importUser.getDeptId(), null, null);
|
importUser.getDeptId(), null, organId);
|
||||||
} catch (ServiceException ex) {
|
} catch (ServiceException ex) {
|
||||||
respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
|
respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Long organId = SecurityFrameworkUtils.getLoginUser().getOrganId();
|
|
||||||
// 判断如果不存在,在进行插入
|
// 判断如果不存在,在进行插入
|
||||||
AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername(), organId);
|
AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername(), organId);
|
||||||
if (existUser == null) {
|
if (existUser == null) {
|
||||||
|
|||||||
+11
-11
@@ -105,7 +105,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
|||||||
o.setId(postId);
|
o.setId(postId);
|
||||||
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||||
}));
|
}));
|
||||||
when(postService.getPostList(eq(reqVO.getPostIds()), isNull())).thenReturn(posts);
|
//when(postService.getPostList(eq(reqVO.getPostIds()), isNull())).thenReturn(posts);
|
||||||
// mock passwordEncoder 的方法
|
// mock passwordEncoder 的方法
|
||||||
when(passwordEncoder.encode(eq(reqVO.getPassword()))).thenReturn("chenfengyuanma");
|
when(passwordEncoder.encode(eq(reqVO.getPassword()))).thenReturn("chenfengyuanma");
|
||||||
|
|
||||||
@@ -163,7 +163,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
|||||||
o.setId(postId);
|
o.setId(postId);
|
||||||
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
|
||||||
}));
|
}));
|
||||||
when(postService.getPostList(eq(reqVO.getPostIds()), isNull())).thenReturn(posts);
|
//when(postService.getPostList(eq(reqVO.getPostIds()), isNull())).thenReturn(posts);
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
userService.updateUser(reqVO);
|
userService.updateUser(reqVO);
|
||||||
@@ -426,7 +426,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
|||||||
doThrow(new ServiceException(DEPT_NOT_FOUND)).when(deptService).validateDeptList(any());
|
doThrow(new ServiceException(DEPT_NOT_FOUND)).when(deptService).validateDeptList(any());
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true);
|
UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true, 1L);
|
||||||
// 断言
|
// 断言
|
||||||
assertEquals(0, respVO.getCreateUsernames().size());
|
assertEquals(0, respVO.getCreateUsernames().size());
|
||||||
assertEquals(0, respVO.getUpdateUsernames().size());
|
assertEquals(0, respVO.getUpdateUsernames().size());
|
||||||
@@ -454,7 +454,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
|||||||
when(passwordEncoder.encode(eq("chenfengyuanma"))).thenReturn("java");
|
when(passwordEncoder.encode(eq("chenfengyuanma"))).thenReturn("java");
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true);
|
UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true, 1L);
|
||||||
// 断言
|
// 断言
|
||||||
assertEquals(1, respVO.getCreateUsernames().size());
|
assertEquals(1, respVO.getCreateUsernames().size());
|
||||||
AdminUserDO user = userMapper.selectByUsername(respVO.getCreateUsernames().get(0), null);
|
AdminUserDO user = userMapper.selectByUsername(respVO.getCreateUsernames().get(0), null);
|
||||||
@@ -486,7 +486,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
|||||||
when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
|
when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), false);
|
UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), false, 1L);
|
||||||
// 断言
|
// 断言
|
||||||
assertEquals(0, respVO.getCreateUsernames().size());
|
assertEquals(0, respVO.getCreateUsernames().size());
|
||||||
assertEquals(0, respVO.getUpdateUsernames().size());
|
assertEquals(0, respVO.getUpdateUsernames().size());
|
||||||
@@ -516,7 +516,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
|||||||
when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
|
when(deptService.getDept(eq(dept.getId()))).thenReturn(dept);
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true);
|
UserImportRespVO respVO = userService.importUserList(newArrayList(importUser), true, 1L);
|
||||||
// 断言
|
// 断言
|
||||||
assertEquals(0, respVO.getCreateUsernames().size());
|
assertEquals(0, respVO.getCreateUsernames().size());
|
||||||
assertEquals(1, respVO.getUpdateUsernames().size());
|
assertEquals(1, respVO.getUpdateUsernames().size());
|
||||||
@@ -563,7 +563,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
|||||||
userMapper.insert(randomAdminUserDO(o -> o.setEmail(email)));
|
userMapper.insert(randomAdminUserDO(o -> o.setEmail(email)));
|
||||||
|
|
||||||
// 调用,校验异常
|
// 调用,校验异常
|
||||||
assertServiceException(() -> userService.validateEmailUnique(null, email),
|
assertServiceException(() -> userService.validateEmailUnique(null, email, 1L),
|
||||||
USER_EMAIL_EXISTS);
|
USER_EMAIL_EXISTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -576,7 +576,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
|||||||
userMapper.insert(randomAdminUserDO(o -> o.setEmail(email)));
|
userMapper.insert(randomAdminUserDO(o -> o.setEmail(email)));
|
||||||
|
|
||||||
// 调用,校验异常
|
// 调用,校验异常
|
||||||
assertServiceException(() -> userService.validateEmailUnique(id, email),
|
assertServiceException(() -> userService.validateEmailUnique(id, email, 1L),
|
||||||
USER_EMAIL_EXISTS);
|
USER_EMAIL_EXISTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -588,7 +588,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
|||||||
userMapper.insert(randomAdminUserDO(o -> o.setMobile(mobile)));
|
userMapper.insert(randomAdminUserDO(o -> o.setMobile(mobile)));
|
||||||
|
|
||||||
// 调用,校验异常
|
// 调用,校验异常
|
||||||
assertServiceException(() -> userService.validateMobileUnique(null, mobile),
|
assertServiceException(() -> userService.validateMobileUnique(null, mobile, 1L),
|
||||||
USER_MOBILE_EXISTS);
|
USER_MOBILE_EXISTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -601,7 +601,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
|||||||
userMapper.insert(randomAdminUserDO(o -> o.setMobile(mobile)));
|
userMapper.insert(randomAdminUserDO(o -> o.setMobile(mobile)));
|
||||||
|
|
||||||
// 调用,校验异常
|
// 调用,校验异常
|
||||||
assertServiceException(() -> userService.validateMobileUnique(id, mobile),
|
assertServiceException(() -> userService.validateMobileUnique(id, mobile, 1L),
|
||||||
USER_MOBILE_EXISTS);
|
USER_MOBILE_EXISTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -710,7 +710,7 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
|||||||
Integer status = CommonStatusEnum.DISABLE.getStatus();
|
Integer status = CommonStatusEnum.DISABLE.getStatus();
|
||||||
|
|
||||||
// 调用
|
// 调用
|
||||||
List<AdminUserDO> result = userService.getUserListByStatus(status, 1L);
|
List<AdminUserDO> result = userService.getUserListByStatus(status, 1L, 1L);
|
||||||
// 断言
|
// 断言
|
||||||
assertEquals(1, result.size());
|
assertEquals(1, result.size());
|
||||||
assertEquals(user, result.get(0));
|
assertEquals(user, result.get(0));
|
||||||
|
|||||||
Reference in New Issue
Block a user