From 73db68b08b7975d84a24ea8838a96083a996c1fc Mon Sep 17 00:00:00 2001 From: 孤舟烟雨 <494979+gzyy@user.noreply.gitee.com> Date: 星期二, 12 七月 2022 21:02:08 +0800 Subject: [PATCH] !197 修改方法描述 * 修改方法描述 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java | 113 +++++++++++++++++++++++++------------------------------- 1 files changed, 50 insertions(+), 63 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java index d037e79..1fcd599 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java @@ -1,25 +1,26 @@ package com.ruoyi.web.controller.system; +import cn.dev33.satoken.secure.BCrypt; +import cn.hutool.core.io.FileUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.constant.UserConstants; import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.core.service.TokenService; import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.file.MimeTypeUtils; import com.ruoyi.system.domain.SysOss; import com.ruoyi.system.service.ISysOssService; import com.ruoyi.system.service.ISysUserService; -import io.swagger.annotations.*; import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -29,110 +30,96 @@ * @author Lion Li */ @Validated -@Api(value = "涓汉淇℃伅鎺у埗鍣�", tags = {"涓汉淇℃伅绠$悊"}) -@RequiredArgsConstructor(onConstructor_ = @Autowired) +@RequiredArgsConstructor @RestController @RequestMapping("/system/user/profile") public class SysProfileController extends BaseController { private final ISysUserService userService; - private final TokenService tokenService; private final ISysOssService iSysOssService; /** * 涓汉淇℃伅 */ - @ApiOperation("涓汉淇℃伅") @GetMapping - public AjaxResult<Map<String, Object>> profile() { - LoginUser loginUser = getLoginUser(); - SysUser user = loginUser.getUser(); + public R<Map<String, Object>> profile() { + SysUser user = userService.selectUserById(getUserId()); Map<String, Object> ajax = new HashMap<>(); ajax.put("user", user); - ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername())); - ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername())); - return AjaxResult.success(ajax); + ajax.put("roleGroup", userService.selectUserRoleGroup(user.getUserName())); + ajax.put("postGroup", userService.selectUserPostGroup(user.getUserName())); + return R.ok(ajax); } /** * 淇敼鐢ㄦ埛 */ - @ApiOperation("淇敼鐢ㄦ埛") @Log(title = "涓汉淇℃伅", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult<Void> updateProfile(@RequestBody SysUser user) { + public R<Void> updateProfile(@RequestBody SysUser user) { if (StringUtils.isNotEmpty(user.getPhonenumber()) - && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { - return AjaxResult.error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪"); + && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { + return R.fail("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪"); } if (StringUtils.isNotEmpty(user.getEmail()) - && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { - return AjaxResult.error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪"); + && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { + return R.fail("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪"); } - LoginUser loginUser = getLoginUser(); - SysUser sysUser = loginUser.getUser(); - user.setUserId(sysUser.getUserId()); + user.setUserId(getUserId()); + user.setUserName(null); user.setPassword(null); if (userService.updateUserProfile(user) > 0) { - // 鏇存柊缂撳瓨鐢ㄦ埛淇℃伅 - sysUser.setNickName(user.getNickName()); - sysUser.setPhonenumber(user.getPhonenumber()); - sysUser.setEmail(user.getEmail()); - sysUser.setSex(user.getSex()); - tokenService.setLoginUser(loginUser); - return AjaxResult.success(); + return R.ok(); } - return AjaxResult.error("淇敼涓汉淇℃伅寮傚父锛岃鑱旂郴绠$悊鍛�"); + return R.fail("淇敼涓汉淇℃伅寮傚父锛岃鑱旂郴绠$悊鍛�"); } /** * 閲嶇疆瀵嗙爜 + * + * @param newPassword 鏃у瘑鐮� + * @param oldPassword 鏂板瘑鐮� */ - @ApiOperation("閲嶇疆瀵嗙爜") @Log(title = "涓汉淇℃伅", businessType = BusinessType.UPDATE) @PutMapping("/updatePwd") - public AjaxResult<Void> updatePwd(String oldPassword, String newPassword) { - LoginUser loginUser = getLoginUser(); - String userName = loginUser.getUsername(); - String password = loginUser.getPassword(); - if (!SecurityUtils.matchesPassword(oldPassword, password)) { - return AjaxResult.error("淇敼瀵嗙爜澶辫触锛屾棫瀵嗙爜閿欒"); + public R<Void> updatePwd(String oldPassword, String newPassword) { + SysUser user = userService.selectUserById(LoginHelper.getUserId()); + String userName = user.getUserName(); + String password = user.getPassword(); + if (!BCrypt.checkpw(oldPassword, password)) { + return R.fail("淇敼瀵嗙爜澶辫触锛屾棫瀵嗙爜閿欒"); } - if (SecurityUtils.matchesPassword(newPassword, password)) { - return AjaxResult.error("鏂板瘑鐮佷笉鑳戒笌鏃у瘑鐮佺浉鍚�"); + if (BCrypt.checkpw(newPassword, password)) { + return R.fail("鏂板瘑鐮佷笉鑳戒笌鏃у瘑鐮佺浉鍚�"); } - if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0) { - // 鏇存柊缂撳瓨鐢ㄦ埛瀵嗙爜 - loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword)); - tokenService.setLoginUser(loginUser); - return AjaxResult.success(); + + if (userService.resetUserPwd(userName, BCrypt.hashpw(newPassword)) > 0) { + return R.ok(); } - return AjaxResult.error("淇敼瀵嗙爜寮傚父锛岃鑱旂郴绠$悊鍛�"); + return R.fail("淇敼瀵嗙爜寮傚父锛岃鑱旂郴绠$悊鍛�"); } /** * 澶村儚涓婁紶 + * + * @param avatarfile 鐢ㄦ埛澶村儚 */ - @ApiOperation("澶村儚涓婁紶") - @ApiImplicitParams({ - @ApiImplicitParam(name = "file", value = "鐢ㄦ埛澶村儚", dataType = "java.io.File", required = true), - }) @Log(title = "鐢ㄦ埛澶村儚", businessType = BusinessType.UPDATE) - @PostMapping("/avatar") - public AjaxResult<Map<String, Object>> avatar(@RequestPart("avatarfile") MultipartFile file) { + @PostMapping(value = "/avatar", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R<Map<String, Object>> avatar(@RequestPart("avatarfile") MultipartFile avatarfile) { Map<String, Object> ajax = new HashMap<>(); - if (!file.isEmpty()) { - LoginUser loginUser = getLoginUser(); - SysOss oss = iSysOssService.upload(file); + if (!avatarfile.isEmpty()) { + String extension = FileUtil.extName(avatarfile.getOriginalFilename()); + if (!StringUtils.equalsAnyIgnoreCase(extension, MimeTypeUtils.IMAGE_EXTENSION)) { + return R.fail("鏂囦欢鏍煎紡涓嶆纭紝璇蜂笂浼�" + Arrays.toString(MimeTypeUtils.IMAGE_EXTENSION) + "鏍煎紡"); + } + SysOss oss = iSysOssService.upload(avatarfile); String avatar = oss.getUrl(); - if (userService.updateUserAvatar(loginUser.getUsername(), avatar)) { + if (userService.updateUserAvatar(getUsername(), avatar)) { ajax.put("imgUrl", avatar); - // 鏇存柊缂撳瓨鐢ㄦ埛澶村儚 - loginUser.getUser().setAvatar(avatar); - tokenService.setLoginUser(loginUser); - return AjaxResult.success(ajax); + return R.ok(ajax); } } - return AjaxResult.error("涓婁紶鍥剧墖寮傚父锛岃鑱旂郴绠$悊鍛�", ajax); + return R.fail("涓婁紶鍥剧墖寮傚父锛岃鑱旂郴绠$悊鍛�"); } } -- Gitblit v1.9.3