Commit 7d45cfa33ab53e227c4ae891508a1cacff78382a
Committed by
Gitee
!22 个人信息 修改信息、修改密码
Merge pull request !22 from niu_dehua/feat_userprofile
Showing
9 changed files
with
121 additions
and
44 deletions
src/main/java/cn/iocoder/dashboard/modules/system/controller/user/SysUserProfileController.java
| @@ -3,8 +3,9 @@ package cn.iocoder.dashboard.modules.system.controller.user; | @@ -3,8 +3,9 @@ package cn.iocoder.dashboard.modules.system.controller.user; | ||
| 3 | import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil; | 3 | import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil; |
| 4 | import cn.iocoder.dashboard.common.pojo.CommonResult; | 4 | import cn.iocoder.dashboard.common.pojo.CommonResult; |
| 5 | import cn.iocoder.dashboard.framework.security.core.util.SecurityFrameworkUtils; | 5 | import cn.iocoder.dashboard.framework.security.core.util.SecurityFrameworkUtils; |
| 6 | -import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserProfileRespVO; | ||
| 7 | -import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserProfileUpdateReqVO; | 6 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.profile.SysUserProfileRespVO; |
| 7 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVo; | ||
| 8 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO; | ||
| 8 | import cn.iocoder.dashboard.modules.system.convert.auth.SysAuthConvert; | 9 | import cn.iocoder.dashboard.modules.system.convert.auth.SysAuthConvert; |
| 9 | import cn.iocoder.dashboard.modules.system.convert.user.SysUserConvert; | 10 | import cn.iocoder.dashboard.modules.system.convert.user.SysUserConvert; |
| 10 | import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysRoleDO; | 11 | import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysRoleDO; |
| @@ -16,11 +17,17 @@ import cn.iocoder.dashboard.util.collection.CollectionUtils; | @@ -16,11 +17,17 @@ import cn.iocoder.dashboard.util.collection.CollectionUtils; | ||
| 16 | import io.swagger.annotations.Api; | 17 | import io.swagger.annotations.Api; |
| 17 | import io.swagger.annotations.ApiOperation; | 18 | import io.swagger.annotations.ApiOperation; |
| 18 | import lombok.extern.slf4j.Slf4j; | 19 | import lombok.extern.slf4j.Slf4j; |
| 19 | -import org.springframework.web.bind.annotation.*; | 20 | +import org.springframework.web.bind.annotation.GetMapping; |
| 21 | +import org.springframework.web.bind.annotation.PutMapping; | ||
| 22 | +import org.springframework.web.bind.annotation.RequestBody; | ||
| 23 | +import org.springframework.web.bind.annotation.RequestMapping; | ||
| 24 | +import org.springframework.web.bind.annotation.RequestParam; | ||
| 25 | +import org.springframework.web.bind.annotation.RestController; | ||
| 20 | import org.springframework.web.multipart.MultipartFile; | 26 | import org.springframework.web.multipart.MultipartFile; |
| 21 | 27 | ||
| 22 | import javax.annotation.Resource; | 28 | import javax.annotation.Resource; |
| 23 | import javax.servlet.http.HttpServletRequest; | 29 | import javax.servlet.http.HttpServletRequest; |
| 30 | +import javax.validation.Valid; | ||
| 24 | import java.io.IOException; | 31 | import java.io.IOException; |
| 25 | import java.util.List; | 32 | import java.util.List; |
| 26 | 33 | ||
| @@ -57,12 +64,20 @@ public class SysUserProfileController { | @@ -57,12 +64,20 @@ public class SysUserProfileController { | ||
| 57 | 64 | ||
| 58 | @PutMapping("/update") | 65 | @PutMapping("/update") |
| 59 | @ApiOperation("修改用户个人信息") | 66 | @ApiOperation("修改用户个人信息") |
| 60 | - public CommonResult<Boolean> updateUserProfile(@RequestBody SysUserProfileUpdateReqVO reqVO, HttpServletRequest request) { | 67 | + public CommonResult<Boolean> updateUserProfile(@Valid @RequestBody SysUserProfileUpdateReqVO reqVO, HttpServletRequest request) { |
| 61 | userService.updateUserProfile(reqVO); | 68 | userService.updateUserProfile(reqVO); |
| 62 | SecurityFrameworkUtils.setLoginUser(SysAuthConvert.INSTANCE.convert(reqVO), request); | 69 | SecurityFrameworkUtils.setLoginUser(SysAuthConvert.INSTANCE.convert(reqVO), request); |
| 63 | return success(true); | 70 | return success(true); |
| 64 | } | 71 | } |
| 65 | 72 | ||
| 73 | + @PutMapping("/update-password") | ||
| 74 | + @ApiOperation("修改用户个人密码") | ||
| 75 | + public CommonResult<Boolean> updateUserProfilePassword(@Valid @RequestBody SysUserProfileUpdatePasswordReqVo reqVO, HttpServletRequest request) { | ||
| 76 | + userService.updateUserPassword(reqVO); | ||
| 77 | + SecurityFrameworkUtils.setLoginUser(SysAuthConvert.INSTANCE.convert(reqVO), request); | ||
| 78 | + return success(true); | ||
| 79 | + } | ||
| 80 | + | ||
| 66 | @PutMapping("/upload-avatar") | 81 | @PutMapping("/upload-avatar") |
| 67 | @ApiOperation("上传用户个人头像") | 82 | @ApiOperation("上传用户个人头像") |
| 68 | public CommonResult<Boolean> updateUserAvatar(@RequestParam("avatarFile") MultipartFile file) throws IOException { | 83 | public CommonResult<Boolean> updateUserAvatar(@RequestParam("avatarFile") MultipartFile file) throws IOException { |
src/main/java/cn/iocoder/dashboard/modules/system/controller/user/vo/user/SysUserProfileRespVO.java renamed to src/main/java/cn/iocoder/dashboard/modules/system/controller/user/vo/profile/SysUserProfileRespVO.java
| 1 | -package cn.iocoder.dashboard.modules.system.controller.user.vo.user; | 1 | +package cn.iocoder.dashboard.modules.system.controller.user.vo.profile; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserBaseVO; | ||
| 3 | import io.swagger.annotations.ApiModel; | 4 | import io.swagger.annotations.ApiModel; |
| 4 | import io.swagger.annotations.ApiModelProperty; | 5 | import io.swagger.annotations.ApiModelProperty; |
| 5 | import lombok.AllArgsConstructor; | 6 | import lombok.AllArgsConstructor; |
| @@ -7,15 +8,30 @@ import lombok.Data; | @@ -7,15 +8,30 @@ import lombok.Data; | ||
| 7 | import lombok.EqualsAndHashCode; | 8 | import lombok.EqualsAndHashCode; |
| 8 | import lombok.NoArgsConstructor; | 9 | import lombok.NoArgsConstructor; |
| 9 | 10 | ||
| 11 | +import java.util.Date; | ||
| 10 | import java.util.Set; | 12 | import java.util.Set; |
| 11 | 13 | ||
| 12 | 14 | ||
| 13 | -@ApiModel("用户个人中心信息 Response VO") | ||
| 14 | @Data | 15 | @Data |
| 16 | +@EqualsAndHashCode(callSuper = true) | ||
| 15 | @NoArgsConstructor | 17 | @NoArgsConstructor |
| 16 | @AllArgsConstructor | 18 | @AllArgsConstructor |
| 17 | -@EqualsAndHashCode(callSuper = true) | ||
| 18 | -public class SysUserProfileRespVO extends SysUserRespVO { | 19 | +@ApiModel("用户个人中心信息 Response VO") |
| 20 | +public class SysUserProfileRespVO extends SysUserBaseVO { | ||
| 21 | + @ApiModelProperty(value = "用户编号", required = true, example = "1") | ||
| 22 | + private Long id; | ||
| 23 | + | ||
| 24 | + @ApiModelProperty(value = "状态", required = true, example = "1", notes = "参见 SysCommonStatusEnum 枚举类") | ||
| 25 | + private Integer status; | ||
| 26 | + | ||
| 27 | + @ApiModelProperty(value = "最后登陆 IP", required = true, example = "192.168.1.1") | ||
| 28 | + private String loginIp; | ||
| 29 | + | ||
| 30 | + @ApiModelProperty(value = "最后登录时间", required = true, example = "时间戳格式") | ||
| 31 | + private Date loginDate; | ||
| 32 | + | ||
| 33 | + @ApiModelProperty(value = "创建时间", required = true, example = "时间戳格式") | ||
| 34 | + private Date createTime; | ||
| 19 | 35 | ||
| 20 | /** | 36 | /** |
| 21 | * 所属角色 | 37 | * 所属角色 |
src/main/java/cn/iocoder/dashboard/modules/system/controller/user/vo/profile/SysUserProfileUpdatePasswordReqVo.java
0 → 100644
| 1 | +package cn.iocoder.dashboard.modules.system.controller.user.vo.profile; | ||
| 2 | + | ||
| 3 | +import io.swagger.annotations.ApiModel; | ||
| 4 | +import io.swagger.annotations.ApiModelProperty; | ||
| 5 | +import lombok.Data; | ||
| 6 | +import org.hibernate.validator.constraints.Length; | ||
| 7 | + | ||
| 8 | +import javax.validation.constraints.NotEmpty; | ||
| 9 | +import javax.validation.constraints.NotNull; | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * 类名称:SysUserUpdatePersonalPasswordReqVo | ||
| 13 | + * *********************** | ||
| 14 | + * <p> | ||
| 15 | + * 类描述:更新用户个人密码 | ||
| 16 | + * | ||
| 17 | + * @author deng on 2021/3/15 22:04 | ||
| 18 | + */ | ||
| 19 | +@ApiModel("用户个人中心更新密码 Response VO") | ||
| 20 | +@Data | ||
| 21 | +public class SysUserProfileUpdatePasswordReqVo { | ||
| 22 | + | ||
| 23 | + @ApiModelProperty(value = "用户编号", required = true, example = "1024") | ||
| 24 | + @NotNull(message = "用户编号不能为空") | ||
| 25 | + private Long id; | ||
| 26 | + | ||
| 27 | + @ApiModelProperty(value = "旧密码", required = true, example = "123456") | ||
| 28 | + @NotEmpty(message = "旧密码不能为空") | ||
| 29 | + @Length(min = 4, max = 16, message = "密码长度为 4-16 位") | ||
| 30 | + private String oldPassword; | ||
| 31 | + | ||
| 32 | + @ApiModelProperty(value = "新密码", required = true, example = "654321") | ||
| 33 | + @NotEmpty(message = "新密码不能为空") | ||
| 34 | + @Length(min = 4, max = 16, message = "密码长度为 4-16 位") | ||
| 35 | + private String newPassword; | ||
| 36 | +} | ||
| 0 | \ No newline at end of file | 37 | \ No newline at end of file |
src/main/java/cn/iocoder/dashboard/modules/system/controller/user/vo/user/SysUserProfileUpdateReqVO.java renamed to src/main/java/cn/iocoder/dashboard/modules/system/controller/user/vo/profile/SysUserProfileUpdateReqVO.java
| 1 | -package cn.iocoder.dashboard.modules.system.controller.user.vo.user; | 1 | +package cn.iocoder.dashboard.modules.system.controller.user.vo.profile; |
| 2 | 2 | ||
| 3 | import io.swagger.annotations.ApiModel; | 3 | import io.swagger.annotations.ApiModel; |
| 4 | import io.swagger.annotations.ApiModelProperty; | 4 | import io.swagger.annotations.ApiModelProperty; |
| @@ -6,6 +6,7 @@ import lombok.Data; | @@ -6,6 +6,7 @@ import lombok.Data; | ||
| 6 | 6 | ||
| 7 | import javax.validation.constraints.Email; | 7 | import javax.validation.constraints.Email; |
| 8 | import javax.validation.constraints.NotNull; | 8 | import javax.validation.constraints.NotNull; |
| 9 | +import javax.validation.constraints.Pattern; | ||
| 9 | import javax.validation.constraints.Size; | 10 | import javax.validation.constraints.Size; |
| 10 | 11 | ||
| 11 | @ApiModel("用户个人信息更新 Request VO") | 12 | @ApiModel("用户个人信息更新 Request VO") |
| @@ -26,7 +27,7 @@ public class SysUserProfileUpdateReqVO { | @@ -26,7 +27,7 @@ public class SysUserProfileUpdateReqVO { | ||
| 26 | private String email; | 27 | private String email; |
| 27 | 28 | ||
| 28 | @ApiModelProperty(value = "手机号码", example = "15601691300") | 29 | @ApiModelProperty(value = "手机号码", example = "15601691300") |
| 29 | - @Size(max = 11, message = "手机号码长度不能超过11个字符") | 30 | + @Pattern(regexp = "^1(3|4|5|7|8)\\d{9}$",message = "手机号码格式错误") |
| 30 | private String mobile; | 31 | private String mobile; |
| 31 | 32 | ||
| 32 | @ApiModelProperty(value = "用户性别", example = "1", notes = "参见 SysSexEnum 枚举类") | 33 | @ApiModelProperty(value = "用户性别", example = "1", notes = "参见 SysSexEnum 枚举类") |
| @@ -35,10 +36,4 @@ public class SysUserProfileUpdateReqVO { | @@ -35,10 +36,4 @@ public class SysUserProfileUpdateReqVO { | ||
| 35 | @ApiModelProperty(value = "用户头像", example = "http://www.iocoder.cn/xxx.png") | 36 | @ApiModelProperty(value = "用户头像", example = "http://www.iocoder.cn/xxx.png") |
| 36 | private String avatar; | 37 | private String avatar; |
| 37 | 38 | ||
| 38 | - @ApiModelProperty(value = "旧密码", required = true, example = "123456") | ||
| 39 | - private String oldPassword; | ||
| 40 | - | ||
| 41 | - @ApiModelProperty(value = "新密码", required = true, example = "654321") | ||
| 42 | - private String newPassword; | ||
| 43 | - | ||
| 44 | } | 39 | } |
src/main/java/cn/iocoder/dashboard/modules/system/controller/user/vo/user/SysUserBaseVO.java
| @@ -5,6 +5,7 @@ import lombok.Data; | @@ -5,6 +5,7 @@ import lombok.Data; | ||
| 5 | 5 | ||
| 6 | import javax.validation.constraints.Email; | 6 | import javax.validation.constraints.Email; |
| 7 | import javax.validation.constraints.NotBlank; | 7 | import javax.validation.constraints.NotBlank; |
| 8 | +import javax.validation.constraints.Pattern; | ||
| 8 | import javax.validation.constraints.Size; | 9 | import javax.validation.constraints.Size; |
| 9 | import java.util.Set; | 10 | import java.util.Set; |
| 10 | 11 | ||
| @@ -39,7 +40,7 @@ public class SysUserBaseVO { | @@ -39,7 +40,7 @@ public class SysUserBaseVO { | ||
| 39 | private String email; | 40 | private String email; |
| 40 | 41 | ||
| 41 | @ApiModelProperty(value = "手机号码", example = "15601691300") | 42 | @ApiModelProperty(value = "手机号码", example = "15601691300") |
| 42 | - @Size(max = 11, message = "手机号码长度不能超过11个字符") | 43 | + @Pattern(regexp = "^1(3|4|5|7|8)\\d{9}$",message = "手机号码格式错误") |
| 43 | private String mobile; | 44 | private String mobile; |
| 44 | 45 | ||
| 45 | @ApiModelProperty(value = "用户性别", example = "1", notes = "参见 SysSexEnum 枚举类") | 46 | @ApiModelProperty(value = "用户性别", example = "1", notes = "参见 SysSexEnum 枚举类") |
| @@ -48,5 +49,4 @@ public class SysUserBaseVO { | @@ -48,5 +49,4 @@ public class SysUserBaseVO { | ||
| 48 | @ApiModelProperty(value = "用户头像", example = "http://www.iocoder.cn/xxx.png") | 49 | @ApiModelProperty(value = "用户头像", example = "http://www.iocoder.cn/xxx.png") |
| 49 | private String avatar; | 50 | private String avatar; |
| 50 | 51 | ||
| 51 | - | ||
| 52 | } | 52 | } |
src/main/java/cn/iocoder/dashboard/modules/system/convert/auth/SysAuthConvert.java
| @@ -3,7 +3,8 @@ package cn.iocoder.dashboard.modules.system.convert.auth; | @@ -3,7 +3,8 @@ package cn.iocoder.dashboard.modules.system.convert.auth; | ||
| 3 | import cn.iocoder.dashboard.framework.security.core.LoginUser; | 3 | import cn.iocoder.dashboard.framework.security.core.LoginUser; |
| 4 | import cn.iocoder.dashboard.modules.system.controller.auth.vo.auth.SysAuthMenuRespVO; | 4 | import cn.iocoder.dashboard.modules.system.controller.auth.vo.auth.SysAuthMenuRespVO; |
| 5 | import cn.iocoder.dashboard.modules.system.controller.auth.vo.auth.SysAuthPermissionInfoRespVO; | 5 | import cn.iocoder.dashboard.modules.system.controller.auth.vo.auth.SysAuthPermissionInfoRespVO; |
| 6 | -import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserProfileUpdateReqVO; | 6 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVo; |
| 7 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO; | ||
| 7 | import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysMenuDO; | 8 | import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysMenuDO; |
| 8 | import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysRoleDO; | 9 | import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysRoleDO; |
| 9 | import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; | 10 | import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; |
| @@ -41,6 +42,8 @@ public interface SysAuthConvert { | @@ -41,6 +42,8 @@ public interface SysAuthConvert { | ||
| 41 | 42 | ||
| 42 | LoginUser convert(SysUserProfileUpdateReqVO reqVO); | 43 | LoginUser convert(SysUserProfileUpdateReqVO reqVO); |
| 43 | 44 | ||
| 45 | + LoginUser convert(SysUserProfileUpdatePasswordReqVo reqVO); | ||
| 46 | + | ||
| 44 | /** | 47 | /** |
| 45 | * 将菜单列表,构建成菜单树 | 48 | * 将菜单列表,构建成菜单树 |
| 46 | * | 49 | * |
src/main/java/cn/iocoder/dashboard/modules/system/convert/user/SysUserConvert.java
| 1 | package cn.iocoder.dashboard.modules.system.convert.user; | 1 | package cn.iocoder.dashboard.modules.system.convert.user; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.profile.SysUserProfileRespVO; | ||
| 4 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVo; | ||
| 5 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO; | ||
| 3 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserCreateReqVO; | 6 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserCreateReqVO; |
| 4 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserExcelVO; | 7 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserExcelVO; |
| 5 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportExcelVO; | 8 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportExcelVO; |
| 6 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserPageItemRespVO; | 9 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserPageItemRespVO; |
| 7 | -import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserProfileRespVO; | ||
| 8 | -import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserProfileUpdateReqVO; | ||
| 9 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserUpdateReqVO; | 10 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserUpdateReqVO; |
| 10 | import cn.iocoder.dashboard.modules.system.dal.dataobject.dept.SysDeptDO; | 11 | import cn.iocoder.dashboard.modules.system.dal.dataobject.dept.SysDeptDO; |
| 11 | import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysRoleDO; | 12 | import cn.iocoder.dashboard.modules.system.dal.dataobject.permission.SysRoleDO; |
| @@ -36,6 +37,7 @@ public interface SysUserConvert { | @@ -36,6 +37,7 @@ public interface SysUserConvert { | ||
| 36 | 37 | ||
| 37 | SysUserDO convert(SysUserProfileUpdateReqVO bean); | 38 | SysUserDO convert(SysUserProfileUpdateReqVO bean); |
| 38 | 39 | ||
| 40 | + SysUserDO convert(SysUserProfileUpdatePasswordReqVo bean); | ||
| 39 | 41 | ||
| 40 | 42 | ||
| 41 | } | 43 | } |
src/main/java/cn/iocoder/dashboard/modules/system/service/user/SysUserService.java
| @@ -2,7 +2,14 @@ package cn.iocoder.dashboard.modules.system.service.user; | @@ -2,7 +2,14 @@ package cn.iocoder.dashboard.modules.system.service.user; | ||
| 2 | 2 | ||
| 3 | import cn.hutool.core.collection.CollUtil; | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | import cn.iocoder.dashboard.common.pojo.PageResult; | 4 | import cn.iocoder.dashboard.common.pojo.PageResult; |
| 5 | -import cn.iocoder.dashboard.modules.system.controller.user.vo.user.*; | 5 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVo; |
| 6 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO; | ||
| 7 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserCreateReqVO; | ||
| 8 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserExportReqVO; | ||
| 9 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportExcelVO; | ||
| 10 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportRespVO; | ||
| 11 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserPageReqVO; | ||
| 12 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserUpdateReqVO; | ||
| 6 | import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; | 13 | import cn.iocoder.dashboard.modules.system.dal.dataobject.user.SysUserDO; |
| 7 | import cn.iocoder.dashboard.util.collection.CollectionUtils; | 14 | import cn.iocoder.dashboard.util.collection.CollectionUtils; |
| 8 | 15 | ||
| @@ -42,6 +49,14 @@ public interface SysUserService { | @@ -42,6 +49,14 @@ public interface SysUserService { | ||
| 42 | void updateUserProfile(SysUserProfileUpdateReqVO reqVO); | 49 | void updateUserProfile(SysUserProfileUpdateReqVO reqVO); |
| 43 | 50 | ||
| 44 | /** | 51 | /** |
| 52 | + * 修改用户个人密码 | ||
| 53 | + * | ||
| 54 | + * @param reqVO 更新用户个人密码 | ||
| 55 | + */ | ||
| 56 | + void updateUserPassword(SysUserProfileUpdatePasswordReqVo reqVO); | ||
| 57 | + | ||
| 58 | + | ||
| 59 | + /** | ||
| 45 | * 更新用户头像 | 60 | * 更新用户头像 |
| 46 | * | 61 | * |
| 47 | * @param id 用户 id | 62 | * @param id 用户 id |
src/main/java/cn/iocoder/dashboard/modules/system/service/user/SysUserServiceImpl.java
| @@ -9,12 +9,13 @@ import cn.iocoder.dashboard.common.exception.ServiceException; | @@ -9,12 +9,13 @@ import cn.iocoder.dashboard.common.exception.ServiceException; | ||
| 9 | import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil; | 9 | import cn.iocoder.dashboard.common.exception.util.ServiceExceptionUtil; |
| 10 | import cn.iocoder.dashboard.common.pojo.PageResult; | 10 | import cn.iocoder.dashboard.common.pojo.PageResult; |
| 11 | import cn.iocoder.dashboard.modules.infra.service.file.InfFileService; | 11 | import cn.iocoder.dashboard.modules.infra.service.file.InfFileService; |
| 12 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.profile.SysUserProfileUpdatePasswordReqVo; | ||
| 13 | +import cn.iocoder.dashboard.modules.system.controller.user.vo.profile.SysUserProfileUpdateReqVO; | ||
| 12 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserCreateReqVO; | 14 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserCreateReqVO; |
| 13 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserExportReqVO; | 15 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserExportReqVO; |
| 14 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportExcelVO; | 16 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportExcelVO; |
| 15 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportRespVO; | 17 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserImportRespVO; |
| 16 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserPageReqVO; | 18 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserPageReqVO; |
| 17 | -import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserProfileUpdateReqVO; | ||
| 18 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserUpdateReqVO; | 19 | import cn.iocoder.dashboard.modules.system.controller.user.vo.user.SysUserUpdateReqVO; |
| 19 | import cn.iocoder.dashboard.modules.system.convert.user.SysUserConvert; | 20 | import cn.iocoder.dashboard.modules.system.convert.user.SysUserConvert; |
| 20 | import cn.iocoder.dashboard.modules.system.dal.dataobject.dept.SysDeptDO; | 21 | import cn.iocoder.dashboard.modules.system.dal.dataobject.dept.SysDeptDO; |
| @@ -70,7 +71,7 @@ public class SysUserServiceImpl implements SysUserService { | @@ -70,7 +71,7 @@ public class SysUserServiceImpl implements SysUserService { | ||
| 70 | public Long createUser(SysUserCreateReqVO reqVO) { | 71 | public Long createUser(SysUserCreateReqVO reqVO) { |
| 71 | // 校验正确性 | 72 | // 校验正确性 |
| 72 | this.checkCreateOrUpdate(null, reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(), | 73 | this.checkCreateOrUpdate(null, reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(), |
| 73 | - reqVO.getDeptId(), reqVO.getPostIds()); | 74 | + reqVO.getDeptId(), reqVO.getPostIds()); |
| 74 | // 插入用户 | 75 | // 插入用户 |
| 75 | SysUserDO user = SysUserConvert.INSTANCE.convert(reqVO); | 76 | SysUserDO user = SysUserConvert.INSTANCE.convert(reqVO); |
| 76 | user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启 | 77 | user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启 |
| @@ -83,7 +84,7 @@ public class SysUserServiceImpl implements SysUserService { | @@ -83,7 +84,7 @@ public class SysUserServiceImpl implements SysUserService { | ||
| 83 | public void updateUser(SysUserUpdateReqVO reqVO) { | 84 | public void updateUser(SysUserUpdateReqVO reqVO) { |
| 84 | // 校验正确性 | 85 | // 校验正确性 |
| 85 | this.checkCreateOrUpdate(reqVO.getId(), reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(), | 86 | this.checkCreateOrUpdate(reqVO.getId(), reqVO.getUsername(), reqVO.getMobile(), reqVO.getEmail(), |
| 86 | - reqVO.getDeptId(), reqVO.getPostIds()); | 87 | + reqVO.getDeptId(), reqVO.getPostIds()); |
| 87 | // 更新用户 | 88 | // 更新用户 |
| 88 | SysUserDO updateObj = SysUserConvert.INSTANCE.convert(reqVO); | 89 | SysUserDO updateObj = SysUserConvert.INSTANCE.convert(reqVO); |
| 89 | userMapper.updateById(updateObj); | 90 | userMapper.updateById(updateObj); |
| @@ -95,16 +96,17 @@ public class SysUserServiceImpl implements SysUserService { | @@ -95,16 +96,17 @@ public class SysUserServiceImpl implements SysUserService { | ||
| 95 | this.checkUserExists(reqVO.getId()); | 96 | this.checkUserExists(reqVO.getId()); |
| 96 | this.checkEmailUnique(reqVO.getId(), reqVO.getEmail()); | 97 | this.checkEmailUnique(reqVO.getId(), reqVO.getEmail()); |
| 97 | this.checkMobileUnique(reqVO.getId(), reqVO.getMobile()); | 98 | this.checkMobileUnique(reqVO.getId(), reqVO.getMobile()); |
| 98 | - // 校验填写密码 | ||
| 99 | - String encode = null; | ||
| 100 | - if (this.checkOldPassword(reqVO.getId(), reqVO.getOldPassword(), reqVO.getNewPassword())) { | ||
| 101 | - // 更新密码 | ||
| 102 | - encode = passwordEncoder.encode(reqVO.getNewPassword()); | ||
| 103 | - } | ||
| 104 | - SysUserDO updateObj = SysUserConvert.INSTANCE.convert(reqVO); | ||
| 105 | - if (StrUtil.isNotBlank(encode)) { | ||
| 106 | - updateObj.setPassword(encode); | ||
| 107 | - } | 99 | + userMapper.updateById(SysUserConvert.INSTANCE.convert(reqVO)); |
| 100 | + } | ||
| 101 | + | ||
| 102 | + @Override | ||
| 103 | + public void updateUserPassword(SysUserProfileUpdatePasswordReqVo reqVO) { | ||
| 104 | + // 校验旧密码密码 | ||
| 105 | + this.checkOldPassword(reqVO.getId(), reqVO.getOldPassword()); | ||
| 106 | + SysUserDO updateObj = new SysUserDO(); | ||
| 107 | + updateObj.setId(reqVO.getId()); | ||
| 108 | + // 加密密码 | ||
| 109 | + updateObj.setPassword(passwordEncoder.encode(reqVO.getNewPassword())); | ||
| 108 | userMapper.updateById(updateObj); | 110 | userMapper.updateById(updateObj); |
| 109 | } | 111 | } |
| 110 | 112 | ||
| @@ -314,26 +316,19 @@ public class SysUserServiceImpl implements SysUserService { | @@ -314,26 +316,19 @@ public class SysUserServiceImpl implements SysUserService { | ||
| 314 | } | 316 | } |
| 315 | 317 | ||
| 316 | /** | 318 | /** |
| 317 | - * 校验旧密码、新密码 | 319 | + * 校验旧密码 |
| 318 | * | 320 | * |
| 319 | * @param id 用户 id | 321 | * @param id 用户 id |
| 320 | * @param oldPassword 旧密码 | 322 | * @param oldPassword 旧密码 |
| 321 | - * @param newPassword 新密码 | ||
| 322 | - * @return 校验结果 | ||
| 323 | */ | 323 | */ |
| 324 | - private boolean checkOldPassword(Long id, String oldPassword, String newPassword) { | ||
| 325 | - if (id == null || StrUtil.isBlank(oldPassword) || StrUtil.isBlank(newPassword)) { | ||
| 326 | - return false; | ||
| 327 | - } | 324 | + private void checkOldPassword(Long id, String oldPassword) { |
| 328 | SysUserDO user = userMapper.selectById(id); | 325 | SysUserDO user = userMapper.selectById(id); |
| 329 | if (user == null) { | 326 | if (user == null) { |
| 330 | throw ServiceExceptionUtil.exception(USER_NOT_EXISTS); | 327 | throw ServiceExceptionUtil.exception(USER_NOT_EXISTS); |
| 331 | } | 328 | } |
| 332 | - | ||
| 333 | if (!passwordEncoder.matches(oldPassword, user.getPassword())) { | 329 | if (!passwordEncoder.matches(oldPassword, user.getPassword())) { |
| 334 | throw ServiceExceptionUtil.exception(USER_PASSWORD_FAILED); | 330 | throw ServiceExceptionUtil.exception(USER_PASSWORD_FAILED); |
| 335 | } | 331 | } |
| 336 | - return true; | ||
| 337 | } | 332 | } |
| 338 | 333 | ||
| 339 | @Override | 334 | @Override |