【7.6.0】【sys】【user】调整代码

pull/57/head
fengshuonan 2023-06-25 09:49:51 +08:00
parent 1b51e659b8
commit a82ad02cf2
6 changed files with 70 additions and 98 deletions

View File

@ -8,7 +8,6 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.ApiResource;
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserRequest;
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@ -34,7 +33,7 @@ public class PersonalInfoController {
* @author luojie
* @date 2020/11/6 13:50
*/
@PostResource(name = "个人信息_更新个人信息", path = "/sysUser/updateInfo", requiredPermission = false)
@PostResource(name = "个人信息_更新个人信息", path = "/sysUser/updateInfo")
@BusinessLog
public ResponseData<?> updateInfo(@RequestBody @Validated(SysUserRequest.updateInfo.class) SysUserRequest sysUserRequest) {
sysUserService.editInfo(sysUserRequest);
@ -47,7 +46,7 @@ public class PersonalInfoController {
* @author luojie
* @date 2020/11/6 13:50
*/
@PostResource(name = "个人信息_修改密码", path = "/sysUser/updatePassword", requiredPermission = false)
@PostResource(name = "个人信息_修改密码", path = "/sysUser/updatePassword")
@BusinessLog
public ResponseData<?> updatePwd(@RequestBody @Validated(SysUserRequest.updatePwd.class) SysUserRequest sysUserRequest) {
sysUserService.editPassword(sysUserRequest);
@ -60,7 +59,7 @@ public class PersonalInfoController {
* @author luojie
* @date 2020/11/6 13:48
*/
@PostResource(name = "个人信息_修改头像", path = "/sysUser/updateAvatar", requiredPermission = false)
@PostResource(name = "个人信息_修改头像", path = "/sysUser/updateAvatar")
@BusinessLog
public ResponseData<?> updateAvatar(@RequestBody @Validated(SysUserRequest.updateAvatar.class) SysUserRequest sysUserRequest) {
sysUserService.editAvatar(sysUserRequest);

View File

@ -29,7 +29,7 @@ public enum SysUserExceptionEnum implements AbstractExceptionEnum {
*
*/
ACCOUNT_NOT_EXIST(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10003", "用户账号或密码错误,请重新输入"),
/**
*
*/

View File

@ -1,12 +1,6 @@
package cn.stylefeng.roses.kernel.sys.modular.user.factory;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.extra.spring.SpringUtil;
import cn.stylefeng.roses.kernel.auth.api.password.PasswordStoredEncryptApi;
import cn.stylefeng.roses.kernel.rule.enums.SexEnum;
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUser;
import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserRequest;
@ -18,7 +12,6 @@ import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserRequest;
*/
public class SysUserCreateFactory {
/**
*
*
@ -43,5 +36,4 @@ public class SysUserCreateFactory {
sysUser.setPhone(sysUserRequest.getPhone());
}
}

View File

@ -61,7 +61,7 @@ public class SysUserRequest extends BaseRequest {
/**
* BCrypt
*/
@NotBlank(message = "密码加密方式为BCrypt不能为空", groups = {add.class,updatePwd.class})
@NotBlank(message = "密码加密方式为BCrypt不能为空", groups = {add.class, updatePwd.class})
@ChineseDescription("密码加密方式为BCrypt")
private String password;
@ -71,7 +71,7 @@ public class SysUserRequest extends BaseRequest {
@NotBlank(message = "新密码不能为空", groups = {updatePwd.class})
@ChineseDescription("新密码")
private String newPassword;
/**
* id
*/
@ -88,7 +88,7 @@ public class SysUserRequest extends BaseRequest {
/**
* M-F-
*/
@NotBlank(message = "性别M-男F-女不能为空", groups = {add.class, edit.class,updateInfo.class})
@NotBlank(message = "性别M-男F-女不能为空", groups = {add.class, edit.class, updateInfo.class})
@ChineseDescription("性别M-男F-女")
private String sex;
@ -173,13 +173,13 @@ public class SysUserRequest extends BaseRequest {
*/
public @interface updateInfo {
}
/**
*
*/
public @interface updatePwd {
}
/**
*
*/

View File

@ -94,7 +94,7 @@ public interface SysUserService extends IService<SysUser> {
* @since 2023/6/12 14:55
*/
void resetPassword(SysUserRequest sysUserRequest);
/**
*
*
@ -103,7 +103,7 @@ public interface SysUserService extends IService<SysUser> {
* @date 2020/11/21 12:32
*/
void editInfo(SysUserRequest sysUserRequest);
/**
*
*
@ -112,7 +112,7 @@ public interface SysUserService extends IService<SysUser> {
* @date 2020/11/21 14:26
*/
void editPassword(SysUserRequest sysUserRequest);
/**
*
*

View File

@ -145,6 +145,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return sysUser;
}
@Override
public List<SysUser> findList(SysUserRequest sysUserRequest) {
LambdaQueryWrapper<SysUser> wrapper = this.createWrapper(sysUserRequest);
return this.list(wrapper);
}
@Override
public PageResult<SysUser> findPage(SysUserRequest sysUserRequest) {
LambdaQueryWrapper<SysUser> wrapper = createWrapper(sysUserRequest);
@ -195,9 +201,58 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
}
@Override
public List<SysUser> findList(SysUserRequest sysUserRequest) {
LambdaQueryWrapper<SysUser> wrapper = this.createWrapper(sysUserRequest);
return this.list(wrapper);
public void editInfo(SysUserRequest sysUserRequest) {
// 获取当前登录用户的id
sysUserRequest.setUserId(LoginContext.me().getLoginUser().getUserId());
SysUser sysUser = this.querySysUser(sysUserRequest);
// 填充更新用户的信息
SysUserCreateFactory.fillUpdateInfo(sysUserRequest, sysUser);
this.updateById(sysUser);
}
@Override
public void editPassword(SysUserRequest sysUserRequest) {
// 新密码与原密码相同
if (sysUserRequest.getNewPassword().equals(sysUserRequest.getPassword())) {
throw new ServiceException(SysUserExceptionEnum.USER_PWD_REPEAT);
}
// 获取当前用户的userId
LoginUser loginUser = LoginContext.me().getLoginUser();
sysUserRequest.setUserId(loginUser.getUserId());
SysUser sysUser = this.querySysUser(sysUserRequest);
// 原密码错误
if (!passwordStoredEncryptApi.checkPasswordWithSalt(sysUserRequest.getPassword(), sysUser.getPasswordSalt(),
sysUser.getPassword())) {
throw new ServiceException(SysUserExceptionEnum.USER_PWD_ERROR);
}
// 设置新的加密后密码和盐
SaltedEncryptResult saltedEncryptResult = passwordStoredEncryptApi.encryptWithSalt(sysUserRequest.getNewPassword());
sysUser.setPassword(saltedEncryptResult.getEncryptPassword());
sysUser.setPasswordSalt(saltedEncryptResult.getPasswordSalt());
this.updateById(sysUser);
}
@Override
public void editAvatar(SysUserRequest sysUserRequest) {
// 新头像文件id
Long fileId = sysUserRequest.getAvatar();
// 从当前用户获取用户id
LoginUser loginUser = LoginContext.me().getLoginUser();
// 更新用户头像
LambdaUpdateWrapper<SysUser> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(SysUser::getUserId, loginUser.getUserId());
wrapper.set(SysUser::getAvatar, fileId);
this.update(wrapper);
}
/**
@ -270,78 +325,4 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
}
}
@Override
public void editInfo(SysUserRequest sysUserRequest) {
// 获取当前登录用户的id
sysUserRequest.setUserId(LoginContext.me().getLoginUser().getUserId());
SysUser sysUser = this.querySysUser(sysUserRequest);
// 填充更新用户的信息
SysUserCreateFactory.fillUpdateInfo(sysUserRequest, sysUser);
this.updateById(sysUser);
// 清除缓存中的用户信息
//sysUserCacheOperatorApi.remove(String.valueOf(sysUser.getUserId()));
}
@Override
public void editPassword(SysUserRequest sysUserRequest) {
// 获取当前用户的userId
LoginUser loginUser = LoginContext.me().getLoginUser();
sysUserRequest.setUserId(loginUser.getUserId());
SysUser sysUser = this.querySysUser(sysUserRequest);
// 新密码与原密码相同
if (sysUserRequest.getNewPassword().equals(sysUserRequest.getPassword())) {
throw new ServiceException(SysUserExceptionEnum.USER_PWD_REPEAT);
}
// 原密码错误
if (!passwordStoredEncryptApi.checkPassword(sysUserRequest.getPassword(), sysUser.getPassword())) {
throw new ServiceException(SysUserExceptionEnum.USER_PWD_ERROR);
}
sysUser.setPassword(passwordStoredEncryptApi.encrypt(sysUserRequest.getNewPassword()));
this.updateById(sysUser);
// 清除缓存中的用户信息
//sysUserCacheOperatorApi.remove(String.valueOf(sysUser.getUserId()));
}
@Override
public void editAvatar(SysUserRequest sysUserRequest) {
// 新头像文件id
Long fileId = sysUserRequest.getAvatar();
// 从当前用户获取用户id
LoginUser loginUser = LoginContext.me().getLoginUser();
sysUserRequest.setUserId(loginUser.getUserId());
// 更新用户头像
SysUser sysUser = this.querySysUser(sysUserRequest);
sysUser.setAvatar(fileId);
this.updateById(sysUser);
// 更新当前用户的session信息
//SimpleUserInfo simpleUserInfo = loginUser.getSimpleUserInfo();
//simpleUserInfo.setAvatar(fileId);
//sessionManagerApi.updateSession(LoginContext.me().getToken(), loginUser);
// 清除缓存中的用户信息
//sysUserCacheOperatorApi.remove(String.valueOf(sysUser.getUserId()));
}
}