MrShi
2025-08-19 30e858fa504b268b9b436afca0a1259cf6e8c488
server/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
@@ -3,6 +3,7 @@
import com.doumee.biz.system.SystemUserBiz;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.utils.PwdCheckUtil;
import com.doumee.core.utils.Utils;
import com.doumee.dao.system.dto.CreateSystemUserDTO;
import com.doumee.dao.system.dto.CreateUserRoleDTO;
@@ -56,6 +57,12 @@
    @Override
    public void updatePwd(UpdatePwdDto dto) {
        if(StringUtils.isBlank(dto.getNewPwd())
                ||dto.getNewPwd().length()>20
                ||dto.getNewPwd().length()<6
                ||!PwdCheckUtil.checkPassword(dto.getNewPwd())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,密码复杂度不满足要求:6-20个字符,至少包含字母、数字及特殊字符2种");
        }
        SystemUser user = systemUserService.findById(dto.getUserId());
        if (user.getDeleted()) {
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "用户不存在或已被删除");
@@ -73,6 +80,12 @@
    @Override
    public void resetPwd(ResetSystemUserPwdDTO dto) {
        if(StringUtils.isBlank(dto.getPassword())
                ||dto.getPassword().length()>20
                ||dto.getPassword().length()<6
                ||!PwdCheckUtil.checkPassword(dto.getPassword())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,密码复杂度不满足要求:6-20个字符,至少包含字母、数字及特殊字符2种");
        }
        // 查询用户
        SystemUser systemUser = systemUserService.findById(dto.getId());
        if (systemUser == null || systemUser.getDeleted()) {
@@ -88,6 +101,12 @@
    @Override
    @Transactional
    public void create(CreateSystemUserDTO systemUser) {
        if(StringUtils.isBlank(systemUser.getPassword())
                ||systemUser.getPassword().length()>20
                ||systemUser.getPassword().length()<6
                ||!PwdCheckUtil.checkPassword(systemUser.getPassword())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,密码复杂度不满足要求:6-20个字符,至少包含字母、数字及特殊字符2种");
        }
        // 验证用户名
        SystemUser queryUserDto = new SystemUser();
        queryUserDto.setUsername(systemUser.getUsername());
@@ -106,6 +125,7 @@
                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "工号已存在");
            }
        }
        // 生成密码盐
        String salt = RandomStringUtils.randomAlphabetic(6);
        // 生成密码