From a29d368d6802564640fbe469fd7da7475d0fab1c Mon Sep 17 00:00:00 2001 From: aeizzz <1129603149@qq.com> Date: Thu, 5 Jan 2023 20:19:49 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20Fixing=20a=20bug.=20=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pigx/app/api/dto/AppUserDTO.java | 6 +++++ .../app/controller/AppUserController.java | 8 ++++++ .../pigx/app/service/AppUserService.java | 3 +++ .../app/service/impl/AppUserServiceImpl.java | 27 +++++++++++++++++++ 4 files changed, 44 insertions(+) diff --git a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/dto/AppUserDTO.java b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/dto/AppUserDTO.java index 237e2c19f..61d900a7b 100644 --- a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/dto/AppUserDTO.java +++ b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/dto/AppUserDTO.java @@ -19,4 +19,10 @@ public class AppUserDTO extends AppUser { @ApiModelProperty(value = "角色id集合") private List role; + /** + * 新密码 + */ + @ApiModelProperty(value = "新密码") + private String newpassword1; + } diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/controller/AppUserController.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/controller/AppUserController.java index ac75b5ffc..c1f5101a4 100644 --- a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/controller/AppUserController.java +++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/controller/AppUserController.java @@ -19,6 +19,7 @@ package com.pig4cloud.pigx.app.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.pig4cloud.pigx.admin.api.dto.UserDTO; import com.pig4cloud.pigx.admin.api.entity.SysUser; import com.pig4cloud.pigx.app.api.dto.AppUserDTO; import com.pig4cloud.pigx.app.api.vo.AppUserExcelVO; @@ -37,6 +38,7 @@ import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; import java.util.List; /** @@ -151,4 +153,10 @@ public class AppUserController { return appUserService.listUser(appUser); } + @SysLog("修改个人信息") + @PutMapping("/edit") + public R updateUserInfo(@Valid @RequestBody AppUserDTO userDto) { + return appUserService.updateUserInfo(userDto); + } + } diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/AppUserService.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/AppUserService.java index 4a76be663..920753185 100644 --- a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/AppUserService.java +++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/AppUserService.java @@ -24,6 +24,7 @@ import com.pig4cloud.pigx.app.api.dto.AppUserDTO; import com.pig4cloud.pigx.app.api.dto.AppUserInfo; import com.pig4cloud.pigx.app.api.entity.AppUser; import com.pig4cloud.pigx.app.api.vo.AppUserExcelVO; +import com.pig4cloud.pigx.common.core.util.R; import java.util.List; @@ -47,4 +48,6 @@ public interface AppUserService extends IService { AppUserInfo findUserInfo(AppUser user); + R updateUserInfo(AppUserDTO userDto); + } diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppUserServiceImpl.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppUserServiceImpl.java index 9b5ee23fb..bb9474ca7 100644 --- a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppUserServiceImpl.java +++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppUserServiceImpl.java @@ -25,7 +25,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.pig4cloud.pigx.admin.api.entity.SysMenu; import com.pig4cloud.pigx.admin.api.entity.SysRole; +import com.pig4cloud.pigx.admin.api.entity.SysUser; import com.pig4cloud.pigx.admin.api.entity.SysUserRole; +import com.pig4cloud.pigx.admin.api.vo.UserVO; import com.pig4cloud.pigx.app.api.dto.AppUserDTO; import com.pig4cloud.pigx.app.api.dto.AppUserInfo; import com.pig4cloud.pigx.app.api.entity.AppMenu; @@ -38,10 +40,16 @@ import com.pig4cloud.pigx.app.service.AppRoleService; import com.pig4cloud.pigx.app.service.AppUserRoleService; import com.pig4cloud.pigx.app.service.AppUserService; import com.pig4cloud.pigx.app.api.vo.AppUserExcelVO; +import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.constant.CommonConstants; +import com.pig4cloud.pigx.common.core.exception.ErrorCodes; +import com.pig4cloud.pigx.common.core.util.MsgUtils; +import com.pig4cloud.pigx.common.core.util.R; import com.pig4cloud.pigx.common.data.resolver.ParamResolver; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; +import org.springframework.cache.annotation.CacheEvict; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.stereotype.Service; @@ -60,6 +68,7 @@ import java.util.stream.Collectors; */ @Service @AllArgsConstructor +@Slf4j public class AppUserServiceImpl extends ServiceImpl implements AppUserService { private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder(); @@ -170,4 +179,22 @@ public class AppUserServiceImpl extends ServiceImpl impl return info; } + @Override + @CacheEvict(value = CacheConstants.USER_DETAILS_MINI, key = "#userDto.username") + public R updateUserInfo(AppUserDTO userDto) { + AppUser appUser = baseMapper.selectById(userDto.getUserId()); + if (!ENCODER.matches(userDto.getPassword(), appUser.getPassword())) { + log.info("原密码错误,修改个人信息失败:{}", userDto.getUsername()); + return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_USER_UPDATE_PASSWORDERROR)); + } + + BeanUtils.copyProperties(userDto, appUser); + // 防止把前端传过来的密码设置上 + appUser.setPassword(null); + if (StrUtil.isNotBlank(userDto.getNewpassword1())) { + appUser.setPassword(ENCODER.encode(userDto.getNewpassword1())); + } + return R.ok(this.updateById(appUser)); + } + }