mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-09-09 20:57:21 +08:00
refactor: 取消用户默认密码,改为表单填写密码
1.修复 Sonar 扫描问题 2.优化部分代码
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright (c) 2022-present Charles7c Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package top.charles7c.continew.admin.system.model.req;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 用户密码重置信息
|
||||
*
|
||||
* @author Charles7c
|
||||
* @since 2024/2/2 22:50
|
||||
*/
|
||||
@Data
|
||||
@Schema(description = "用户密码重置信息")
|
||||
public class UserPasswordResetReq implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 新密码(加密)
|
||||
*/
|
||||
@Schema(description = "新密码(加密)", example = "Gzc78825P5baH190lRuZFb9KJxRt/psN2jiyOMPoc5WRcCvneCwqDm3Q33BZY56EzyyVy7vQu7jQwYTK4j1+5w==")
|
||||
@NotBlank(message = "新密码不能为空")
|
||||
private String newPassword;
|
||||
}
|
@@ -28,6 +28,7 @@ import top.charles7c.continew.admin.common.constant.RegexConstants;
|
||||
import top.charles7c.continew.admin.common.enums.DisEnableStatusEnum;
|
||||
import top.charles7c.continew.admin.common.enums.GenderEnum;
|
||||
import top.charles7c.continew.starter.extension.crud.model.req.BaseReq;
|
||||
import top.charles7c.continew.starter.extension.crud.util.ValidateGroup;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.List;
|
||||
@@ -61,6 +62,13 @@ public class UserReq extends BaseReq {
|
||||
@Pattern(regexp = RegexConstants.GENERAL_NAME, message = "昵称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线")
|
||||
private String nickname;
|
||||
|
||||
/**
|
||||
* 密码(加密)
|
||||
*/
|
||||
@Schema(description = "密码(加密)", example = "E7c72TH+LDxKTwavjM99W1MdI9Lljh79aPKiv3XB9MXcplhm7qJ1BJCj28yaflbdVbfc366klMtjLIWQGqb0qw==")
|
||||
@NotBlank(message = "密码不能为空", groups = ValidateGroup.Crud.Add.class)
|
||||
private String password;
|
||||
|
||||
/**
|
||||
* 邮箱
|
||||
*/
|
||||
|
@@ -20,6 +20,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import top.charles7c.continew.admin.system.model.entity.UserDO;
|
||||
import top.charles7c.continew.admin.system.model.query.UserQuery;
|
||||
import top.charles7c.continew.admin.system.model.req.UserBasicInfoUpdateReq;
|
||||
import top.charles7c.continew.admin.system.model.req.UserPasswordResetReq;
|
||||
import top.charles7c.continew.admin.system.model.req.UserReq;
|
||||
import top.charles7c.continew.admin.system.model.req.UserRoleUpdateReq;
|
||||
import top.charles7c.continew.admin.system.model.resp.UserDetailResp;
|
||||
@@ -92,9 +93,10 @@ public interface UserService extends BaseService<UserResp, UserDetailResp, UserQ
|
||||
/**
|
||||
* 重置密码
|
||||
*
|
||||
* @param id ID
|
||||
* @param req 重置信息
|
||||
* @param id ID
|
||||
*/
|
||||
void resetPassword(Long id);
|
||||
void resetPassword(UserPasswordResetReq req, Long id);
|
||||
|
||||
/**
|
||||
* 修改角色
|
||||
|
@@ -33,13 +33,13 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import top.charles7c.continew.admin.common.constant.CacheConstants;
|
||||
import top.charles7c.continew.admin.common.constant.SysConstants;
|
||||
import top.charles7c.continew.admin.common.enums.DisEnableStatusEnum;
|
||||
import top.charles7c.continew.admin.common.util.helper.LoginHelper;
|
||||
import top.charles7c.continew.admin.system.mapper.UserMapper;
|
||||
import top.charles7c.continew.admin.system.model.entity.UserDO;
|
||||
import top.charles7c.continew.admin.system.model.query.UserQuery;
|
||||
import top.charles7c.continew.admin.system.model.req.UserBasicInfoUpdateReq;
|
||||
import top.charles7c.continew.admin.system.model.req.UserPasswordResetReq;
|
||||
import top.charles7c.continew.admin.system.model.req.UserReq;
|
||||
import top.charles7c.continew.admin.system.model.req.UserRoleUpdateReq;
|
||||
import top.charles7c.continew.admin.system.model.resp.UserDetailResp;
|
||||
@@ -50,8 +50,8 @@ import top.charles7c.continew.admin.system.service.UserRoleService;
|
||||
import top.charles7c.continew.admin.system.service.UserService;
|
||||
import top.charles7c.continew.starter.core.constant.StringConstants;
|
||||
import top.charles7c.continew.starter.core.util.validate.CheckUtils;
|
||||
import top.charles7c.continew.starter.extension.crud.service.impl.BaseServiceImpl;
|
||||
import top.charles7c.continew.starter.extension.crud.service.CommonUserService;
|
||||
import top.charles7c.continew.starter.extension.crud.service.impl.BaseServiceImpl;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Collection;
|
||||
@@ -92,16 +92,13 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes
|
||||
String phone = req.getPhone();
|
||||
CheckUtils.throwIf(StrUtil.isNotBlank(phone) && this.isPhoneExists(phone, null), "新增失败,[{}] 已存在", phone);
|
||||
req.setStatus(DisEnableStatusEnum.ENABLE);
|
||||
req.setPassword(passwordEncoder.encode(req.getPassword()));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void afterAdd(UserReq req, UserDO user) {
|
||||
Long userId = user.getId();
|
||||
baseMapper.lambdaUpdate()
|
||||
.set(UserDO::getPassword, passwordEncoder.encode(SysConstants.DEFAULT_PASSWORD))
|
||||
.set(UserDO::getPwdResetTime, LocalDateTime.now())
|
||||
.eq(UserDO::getId, userId)
|
||||
.update();
|
||||
baseMapper.lambdaUpdate().set(UserDO::getPwdResetTime, LocalDateTime.now()).eq(UserDO::getId, userId).update();
|
||||
// 保存用户和角色关联
|
||||
userRoleService.add(req.getRoleIds(), userId);
|
||||
}
|
||||
@@ -166,9 +163,8 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String uploadAvatar(MultipartFile avatarFile, Long id) {
|
||||
String avatarImageType = FileNameUtil.extName(avatarFile.getOriginalFilename());
|
||||
CheckUtils.throwIf(!StrUtil
|
||||
.equalsAnyIgnoreCase(avatarImageType, avatarSupportSuffix), "头像仅支持 {} 格式的图片", String
|
||||
.join(StringConstants.CHINESE_COMMA, avatarSupportSuffix));
|
||||
CheckUtils.throwIf(!StrUtil.equalsAnyIgnoreCase(avatarImageType, avatarSupportSuffix), "头像仅支持 {} 格式的图片", String
|
||||
.join(StringConstants.CHINESE_COMMA, avatarSupportSuffix));
|
||||
// 上传新头像
|
||||
UserDO user = super.getById(id);
|
||||
FileInfo fileInfo = fileService.upload(avatarFile);
|
||||
@@ -234,9 +230,9 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetPassword(Long id) {
|
||||
public void resetPassword(UserPasswordResetReq req, Long id) {
|
||||
UserDO user = super.getById(id);
|
||||
user.setPassword(passwordEncoder.encode(SysConstants.DEFAULT_PASSWORD));
|
||||
user.setPassword(passwordEncoder.encode(req.getNewPassword()));
|
||||
user.setPwdResetTime(LocalDateTime.now());
|
||||
baseMapper.updateById(user);
|
||||
}
|
||||
|
Reference in New Issue
Block a user