mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2024-11-29 18:51:53 +08:00
!1017 bugfix-导入系统用户时,增加注解校验过程,与界面添加和修改用户保持一致
Merge pull request !1017 from 尹先生/master-jdk17
This commit is contained in:
commit
36765d53a1
@ -103,6 +103,10 @@ public class RandomUtils {
|
|||||||
return randomString() + "@qq.com";
|
return randomString() + "@qq.com";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String randomMobile() {
|
||||||
|
return "13800138" + RandomUtil.randomNumbers(3);
|
||||||
|
}
|
||||||
|
|
||||||
public static String randomURL() {
|
public static String randomURL() {
|
||||||
return "https://www.iocoder.cn/" + randomString();
|
return "https://www.iocoder.cn/" + randomString();
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import cn.iocoder.yudao.framework.common.exception.ServiceException;
|
|||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
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.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.datapermission.core.util.DataPermissionUtils;
|
||||||
import cn.iocoder.yudao.module.infra.api.config.ConfigApi;
|
import cn.iocoder.yudao.module.infra.api.config.ConfigApi;
|
||||||
import cn.iocoder.yudao.module.infra.api.file.FileApi;
|
import cn.iocoder.yudao.module.infra.api.file.FileApi;
|
||||||
@ -32,6 +33,7 @@ import com.mzt.logapi.context.LogRecordContext;
|
|||||||
import com.mzt.logapi.service.impl.DiffParseFunction;
|
import com.mzt.logapi.service.impl.DiffParseFunction;
|
||||||
import com.mzt.logapi.starter.annotation.LogRecord;
|
import com.mzt.logapi.starter.annotation.LogRecord;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.validation.ConstraintViolationException;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||||
@ -40,13 +42,36 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
||||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
|
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
|
||||||
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*;
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_COUNT_MAX;
|
||||||
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.*;
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_EMAIL_EXISTS;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_IMPORT_INIT_PASSWORD;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_IMPORT_LIST_IS_EMPTY;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_IS_DISABLE;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_MOBILE_EXISTS;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_NOT_EXISTS;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_PASSWORD_FAILED;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.USER_USERNAME_EXISTS;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_CREATE_SUB_TYPE;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_CREATE_SUCCESS;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_DELETE_SUB_TYPE;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_DELETE_SUCCESS;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_TYPE;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_UPDATE_PASSWORD_SUB_TYPE;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_UPDATE_PASSWORD_SUCCESS;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_UPDATE_SUB_TYPE;
|
||||||
|
import static cn.iocoder.yudao.module.system.enums.LogRecordConstants.SYSTEM_USER_UPDATE_SUCCESS;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 后台用户 Service 实现类
|
* 后台用户 Service 实现类
|
||||||
@ -451,6 +476,13 @@ public class AdminUserServiceImpl implements AdminUserService {
|
|||||||
respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
|
respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// 校验字段是否符合要求
|
||||||
|
try {
|
||||||
|
ValidationUtils.validate(BeanUtils.toBean(importUser, UserSaveReqVO.class).setPassword(initPassword));
|
||||||
|
}catch (ConstraintViolationException ex){
|
||||||
|
respVO.getFailureUsernames().put(importUser.getUsername(), ex.getMessage());
|
||||||
|
return;
|
||||||
|
}
|
||||||
// 判断如果不存在,在进行插入
|
// 判断如果不存在,在进行插入
|
||||||
AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername());
|
AdminUserDO existUser = userMapper.selectByUsername(importUser.getUsername());
|
||||||
if (existUser == null) {
|
if (existUser == null) {
|
||||||
|
@ -452,6 +452,8 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
|||||||
UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> {
|
UserImportExcelVO importUser = randomPojo(UserImportExcelVO.class, o -> {
|
||||||
o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
|
o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
|
||||||
o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围
|
o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围
|
||||||
|
o.setEmail(randomEmail());
|
||||||
|
o.setMobile(randomMobile());
|
||||||
});
|
});
|
||||||
// mock deptService 的方法
|
// mock deptService 的方法
|
||||||
DeptDO dept = randomPojo(DeptDO.class, o -> {
|
DeptDO dept = randomPojo(DeptDO.class, o -> {
|
||||||
@ -486,6 +488,8 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
|||||||
o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
|
o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
|
||||||
o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围
|
o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围
|
||||||
o.setUsername(dbUser.getUsername());
|
o.setUsername(dbUser.getUsername());
|
||||||
|
o.setEmail(randomEmail());
|
||||||
|
o.setMobile(randomMobile());
|
||||||
});
|
});
|
||||||
// mock deptService 的方法
|
// mock deptService 的方法
|
||||||
DeptDO dept = randomPojo(DeptDO.class, o -> {
|
DeptDO dept = randomPojo(DeptDO.class, o -> {
|
||||||
@ -516,6 +520,8 @@ public class AdminUserServiceImplTest extends BaseDbUnitTest {
|
|||||||
o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
|
o.setStatus(randomEle(CommonStatusEnum.values()).getStatus()); // 保证 status 的范围
|
||||||
o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围
|
o.setSex(randomEle(SexEnum.values()).getSex()); // 保证 sex 的范围
|
||||||
o.setUsername(dbUser.getUsername());
|
o.setUsername(dbUser.getUsername());
|
||||||
|
o.setEmail(randomEmail());
|
||||||
|
o.setMobile(randomMobile());
|
||||||
});
|
});
|
||||||
// mock deptService 的方法
|
// mock deptService 的方法
|
||||||
DeptDO dept = randomPojo(DeptDO.class, o -> {
|
DeptDO dept = randomPojo(DeptDO.class, o -> {
|
||||||
|
Loading…
Reference in New Issue
Block a user