diff --git a/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java b/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java index 320de2b3..549b22d5 100644 --- a/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java +++ b/blade-auth/src/main/java/org/springblade/auth/service/BladeUserDetailsServiceImpl.java @@ -73,7 +73,7 @@ public class BladeUserDetailsServiceImpl implements UserDetailsService { throw new UsernameNotFoundException(TokenUtil.USER_NOT_FOUND); } return new BladeUserDetails(user.getId(), - user.getTenantId(), user.getName(), user.getDeptId(), user.getRoleId(), Func.join(result.getData().getRoles()), TokenUtil.DEFAULT_AVATAR, + user.getTenantId(), user.getName(), user.getDeptId(), user.getRoleId(), Func.join(result.getData().getRoles()), Func.toStr(user.getAvatar(), TokenUtil.DEFAULT_AVATAR), username, AuthConstant.ENCRYPT + user.getPassword(), true, true, true, true, AuthorityUtils.commaSeparatedStringToAuthorityList(Func.join(result.getData().getRoles()))); } else { diff --git a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java index f596be7d..86145888 100644 --- a/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java +++ b/blade-service-api/blade-user-api/src/main/java/org/springblade/system/user/entity/User.java @@ -21,7 +21,6 @@ import lombok.Data; import lombok.EqualsAndHashCode; import org.springblade.core.tenant.mp.TenantEntity; -import java.time.LocalDateTime; import java.util.Date; /** @@ -52,6 +51,10 @@ public class User extends TenantEntity { * 真名 */ private String realName; + /** + * 头像 + */ + private String avatar; /** * 邮箱 */ diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java b/blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java index cbaacbc2..2e7b384c 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java +++ b/blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java @@ -66,6 +66,17 @@ public class UserController { return R.data(UserWrapper.build().entityVO(detail)); } + /** + * 查询单条 + */ + @ApiOperationSupport(order =2) + @ApiOperation(value = "查看详情", notes = "传入id") + @GetMapping("/info") + public R info(BladeUser user) { + User detail = userService.getById(user.getUserId()); + return R.data(UserWrapper.build().entityVO(detail)); + } + /** * 用户列表 */ @@ -74,7 +85,7 @@ public class UserController { @ApiImplicitParam(name = "account", value = "账号名", paramType = "query", dataType = "string"), @ApiImplicitParam(name = "realName", value = "姓名", paramType = "query", dataType = "string") }) - @ApiOperationSupport(order = 2) + @ApiOperationSupport(order = 3) @ApiOperation(value = "列表", notes = "传入account和realName") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) public R> list(@ApiIgnore @RequestParam Map user, Query query, BladeUser bladeUser) { @@ -87,7 +98,7 @@ public class UserController { * 新增或修改 */ @PostMapping("/submit") - @ApiOperationSupport(order = 3) + @ApiOperationSupport(order = 4) @ApiOperation(value = "新增或修改", notes = "传入User") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) @CacheEvict(cacheNames = {USER_CACHE}, allEntries = true) @@ -99,9 +110,8 @@ public class UserController { * 修改 */ @PostMapping("/update") - @ApiOperationSupport(order = 4) + @ApiOperationSupport(order = 5) @ApiOperation(value = "修改", notes = "传入User") - @PreAuth(RoleConstant.HAS_ROLE_ADMIN) @CacheEvict(cacheNames = {USER_CACHE}, allEntries = true) public R update(@Valid @RequestBody User user) { return R.status(userService.updateUser(user)); @@ -111,7 +121,7 @@ public class UserController { * 删除 */ @PostMapping("/remove") - @ApiOperationSupport(order = 5) + @ApiOperationSupport(order = 6) @ApiOperation(value = "删除", notes = "传入id集合") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) @CacheEvict(cacheNames = {USER_CACHE}, allEntries = true) @@ -127,7 +137,7 @@ public class UserController { * @return */ @PostMapping("/grant") - @ApiOperationSupport(order = 6) + @ApiOperationSupport(order = 7) @ApiOperation(value = "权限设置", notes = "传入roleId集合以及menuId集合") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) public R grant(@ApiParam(value = "userId集合", required = true) @RequestParam String userIds, @@ -137,7 +147,7 @@ public class UserController { } @PostMapping("/reset-password") - @ApiOperationSupport(order = 7) + @ApiOperationSupport(order = 8) @ApiOperation(value = "初始化密码", notes = "传入userId集合") @PreAuth(RoleConstant.HAS_ROLE_ADMIN) public R resetPassword(@ApiParam(value = "userId集合", required = true) @RequestParam String userIds) { @@ -145,6 +155,24 @@ public class UserController { return R.status(temp); } + /** + * 修改密码 + * + * @param oldPassword + * @param newPassword + * @param newPassword1 + * @return + */ + @PostMapping("/update-password") + @ApiOperationSupport(order = 9) + @ApiOperation(value = "修改密码", notes = "传入密码") + public R updatePassword(BladeUser user, @ApiParam(value = "旧密码", required = true) @RequestParam String oldPassword, + @ApiParam(value = "新密码", required = true) @RequestParam String newPassword, + @ApiParam(value = "新密码", required = true) @RequestParam String newPassword1) { + boolean temp = userService.updatePassword(user.getUserId(), oldPassword, newPassword, newPassword1); + return R.status(temp); + } + /** * 用户列表 * @@ -152,7 +180,7 @@ public class UserController { * @return */ @GetMapping("/user-list") - @ApiOperationSupport(order = 8) + @ApiOperationSupport(order = 10) @ApiOperation(value = "用户列表", notes = "传入user") public R> userList(User user) { List list = userService.list(Condition.getQueryWrapper(user)); diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java b/blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java index e1f5bf82..51e6bcba 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java +++ b/blade-service/blade-user/src/main/java/org/springblade/system/user/service/IUserService.java @@ -80,6 +80,17 @@ public interface IUserService extends BaseService { */ boolean resetPassword(String userIds); + /** + * 修改密码 + * + * @param userId + * @param oldPassword + * @param newPassword + * @param newPassword1 + * @return + */ + boolean updatePassword(Long userId, String oldPassword, String newPassword, String newPassword1); + /** * 删除用户 * diff --git a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java b/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java index 9fada1f9..28e105a8 100644 --- a/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java +++ b/blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java @@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.exceptions.ApiException; import org.springblade.common.constant.CommonConstant; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.utils.SecureUtil; import org.springblade.core.tool.constant.BladeConstant; @@ -94,6 +95,18 @@ public class UserServiceImpl extends BaseServiceImpl implement return this.update(user, Wrappers.update().lambda().in(User::getId, Func.toLongList(userIds))); } + @Override + public boolean updatePassword(Long userId, String oldPassword, String newPassword, String newPassword1) { + User user = getById(userId); + if (!newPassword.equals(newPassword1)) { + throw new ServiceException("请输入正确的确认密码!"); + } + if (!user.getPassword().equals(DigestUtil.encrypt(oldPassword))) { + throw new ServiceException("原密码不正确!"); + } + return this.update(Wrappers.update().lambda().set(User::getPassword, DigestUtil.encrypt(newPassword)).eq(User::getId, userId)); + } + @Override public boolean removeUser(String userIds) { if (Func.contains(Func.toLongArray(userIds), SecureUtil.getUserId())) {