【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.scanner.api.annotation.PostResource;
import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserRequest; import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserRequest;
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserService; import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserService;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -34,7 +33,7 @@ public class PersonalInfoController {
* @author luojie * @author luojie
* @date 2020/11/6 13:50 * @date 2020/11/6 13:50
*/ */
@PostResource(name = "个人信息_更新个人信息", path = "/sysUser/updateInfo", requiredPermission = false) @PostResource(name = "个人信息_更新个人信息", path = "/sysUser/updateInfo")
@BusinessLog @BusinessLog
public ResponseData<?> updateInfo(@RequestBody @Validated(SysUserRequest.updateInfo.class) SysUserRequest sysUserRequest) { public ResponseData<?> updateInfo(@RequestBody @Validated(SysUserRequest.updateInfo.class) SysUserRequest sysUserRequest) {
sysUserService.editInfo(sysUserRequest); sysUserService.editInfo(sysUserRequest);
@ -47,7 +46,7 @@ public class PersonalInfoController {
* @author luojie * @author luojie
* @date 2020/11/6 13:50 * @date 2020/11/6 13:50
*/ */
@PostResource(name = "个人信息_修改密码", path = "/sysUser/updatePassword", requiredPermission = false) @PostResource(name = "个人信息_修改密码", path = "/sysUser/updatePassword")
@BusinessLog @BusinessLog
public ResponseData<?> updatePwd(@RequestBody @Validated(SysUserRequest.updatePwd.class) SysUserRequest sysUserRequest) { public ResponseData<?> updatePwd(@RequestBody @Validated(SysUserRequest.updatePwd.class) SysUserRequest sysUserRequest) {
sysUserService.editPassword(sysUserRequest); sysUserService.editPassword(sysUserRequest);
@ -60,7 +59,7 @@ public class PersonalInfoController {
* @author luojie * @author luojie
* @date 2020/11/6 13:48 * @date 2020/11/6 13:48
*/ */
@PostResource(name = "个人信息_修改头像", path = "/sysUser/updateAvatar", requiredPermission = false) @PostResource(name = "个人信息_修改头像", path = "/sysUser/updateAvatar")
@BusinessLog @BusinessLog
public ResponseData<?> updateAvatar(@RequestBody @Validated(SysUserRequest.updateAvatar.class) SysUserRequest sysUserRequest) { public ResponseData<?> updateAvatar(@RequestBody @Validated(SysUserRequest.updateAvatar.class) SysUserRequest sysUserRequest) {
sysUserService.editAvatar(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", "用户账号或密码错误,请重新输入"), 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; package cn.stylefeng.roses.kernel.sys.modular.user.factory;
import cn.hutool.core.date.DateUtil; 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.entity.SysUser;
import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserRequest; 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 { public class SysUserCreateFactory {
/** /**
* *
* *
@ -43,5 +36,4 @@ public class SysUserCreateFactory {
sysUser.setPhone(sysUserRequest.getPhone()); sysUser.setPhone(sysUserRequest.getPhone());
} }
} }

View File

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

View File

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

View File

@ -145,6 +145,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return sysUser; return sysUser;
} }
@Override
public List<SysUser> findList(SysUserRequest sysUserRequest) {
LambdaQueryWrapper<SysUser> wrapper = this.createWrapper(sysUserRequest);
return this.list(wrapper);
}
@Override @Override
public PageResult<SysUser> findPage(SysUserRequest sysUserRequest) { public PageResult<SysUser> findPage(SysUserRequest sysUserRequest) {
LambdaQueryWrapper<SysUser> wrapper = createWrapper(sysUserRequest); LambdaQueryWrapper<SysUser> wrapper = createWrapper(sysUserRequest);
@ -195,9 +201,58 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
} }
@Override @Override
public List<SysUser> findList(SysUserRequest sysUserRequest) { public void editInfo(SysUserRequest sysUserRequest) {
LambdaQueryWrapper<SysUser> wrapper = this.createWrapper(sysUserRequest);
return this.list(wrapper); // 获取当前登录用户的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()));
}
} }