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)); + } + }