|
|
@@ -1,132 +1,132 @@
|
|
|
-package com.ruoyi.system.controller;
|
|
|
-
|
|
|
-import com.ruoyi.common.core.constant.UserConstants;
|
|
|
-import com.ruoyi.common.core.utils.StringUtils;
|
|
|
-import com.ruoyi.common.core.web.controller.BaseController;
|
|
|
-import com.ruoyi.common.core.web.domain.AjaxResult;
|
|
|
-import com.ruoyi.common.log.annotation.Log;
|
|
|
-import com.ruoyi.common.log.enums.BusinessType;
|
|
|
-import com.ruoyi.common.security.service.TokenService;
|
|
|
-import com.ruoyi.common.security.utils.SecurityUtils;
|
|
|
-import com.ruoyi.file.api.RemoteFileService;
|
|
|
-import com.ruoyi.file.api.domain.SysFile;
|
|
|
-import com.ruoyi.system.api.domain.SysUser;
|
|
|
-import com.ruoyi.system.api.model.LoginUser;
|
|
|
-import com.ruoyi.system.service.ISysUserService;
|
|
|
-import lombok.RequiredArgsConstructor;
|
|
|
-import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.web.bind.annotation.*;
|
|
|
-import org.springframework.web.multipart.MultipartFile;
|
|
|
-
|
|
|
-import java.io.IOException;
|
|
|
-
|
|
|
-/**
|
|
|
- * 个人信息 业务处理
|
|
|
- *
|
|
|
- * @author ruoyi
|
|
|
- */
|
|
|
-@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
|
|
-@RestController
|
|
|
-@RequestMapping("/user/profile")
|
|
|
-public class SysProfileController extends BaseController {
|
|
|
-
|
|
|
- private final ISysUserService userService;
|
|
|
- private final TokenService tokenService;
|
|
|
-
|
|
|
- @DubboReference
|
|
|
- private RemoteFileService remoteFileService;
|
|
|
-
|
|
|
- /**
|
|
|
- * 个人信息
|
|
|
- */
|
|
|
- @GetMapping
|
|
|
- public AjaxResult profile() {
|
|
|
- String username = SecurityUtils.getUsername();
|
|
|
- SysUser user = userService.selectUserByUserName(username);
|
|
|
- AjaxResult ajax = AjaxResult.success(user);
|
|
|
- ajax.put("roleGroup", userService.selectUserRoleGroup(username));
|
|
|
- ajax.put("postGroup", userService.selectUserPostGroup(username));
|
|
|
- return ajax;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 修改用户
|
|
|
- */
|
|
|
- @Log(title = "个人信息", businessType = BusinessType.UPDATE)
|
|
|
- @PutMapping
|
|
|
- public AjaxResult updateProfile(@RequestBody SysUser user) {
|
|
|
- LoginUser loginUser = SecurityUtils.getLoginUser();
|
|
|
- SysUser sysUser = loginUser.getSysUser();
|
|
|
- user.setUserName(sysUser.getUserName());
|
|
|
- if (StringUtils.isNotEmpty(user.getPhonenumber())
|
|
|
- && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
|
|
|
- return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
|
|
|
- } else if (StringUtils.isNotEmpty(user.getEmail())
|
|
|
- && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) {
|
|
|
- return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
|
|
|
- }
|
|
|
- user.setUserId(sysUser.getUserId());
|
|
|
- user.setPassword(null);
|
|
|
- if (userService.updateUserProfile(user) > 0) {
|
|
|
- // 更新缓存用户信息
|
|
|
- loginUser.getSysUser().setNickName(user.getNickName());
|
|
|
- loginUser.getSysUser().setPhonenumber(user.getPhonenumber());
|
|
|
- loginUser.getSysUser().setEmail(user.getEmail());
|
|
|
- loginUser.getSysUser().setSex(user.getSex());
|
|
|
- tokenService.setLoginUser(loginUser);
|
|
|
- return AjaxResult.success();
|
|
|
- }
|
|
|
- return AjaxResult.error("修改个人信息异常,请联系管理员");
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 重置密码
|
|
|
- */
|
|
|
- @Log(title = "个人信息", businessType = BusinessType.UPDATE)
|
|
|
- @PutMapping("/updatePwd")
|
|
|
- public AjaxResult updatePwd(String oldPassword, String newPassword) {
|
|
|
- String username = SecurityUtils.getUsername();
|
|
|
- SysUser user = userService.selectUserByUserName(username);
|
|
|
- String password = user.getPassword();
|
|
|
- if (!SecurityUtils.matchesPassword(oldPassword, password)) {
|
|
|
- return AjaxResult.error("修改密码失败,旧密码错误");
|
|
|
- }
|
|
|
- if (SecurityUtils.matchesPassword(newPassword, password)) {
|
|
|
- return AjaxResult.error("新密码不能与旧密码相同");
|
|
|
- }
|
|
|
- if (userService.resetUserPwd(username, SecurityUtils.encryptPassword(newPassword)) > 0) {
|
|
|
- // 更新缓存用户密码
|
|
|
- LoginUser loginUser = SecurityUtils.getLoginUser();
|
|
|
- loginUser.getSysUser().setPassword(SecurityUtils.encryptPassword(newPassword));
|
|
|
- tokenService.setLoginUser(loginUser);
|
|
|
- return AjaxResult.success();
|
|
|
- }
|
|
|
- return AjaxResult.error("修改密码异常,请联系管理员");
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 头像上传
|
|
|
- */
|
|
|
- @Log(title = "用户头像", businessType = BusinessType.UPDATE)
|
|
|
- @PostMapping("/avatar")
|
|
|
- public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws IOException {
|
|
|
- if (!file.isEmpty()) {
|
|
|
- LoginUser loginUser = SecurityUtils.getLoginUser();
|
|
|
- SysFile sysFile = remoteFileService.upload(file);
|
|
|
- if (StringUtils.isNull(sysFile)) {
|
|
|
- return AjaxResult.error("文件服务异常,请联系管理员");
|
|
|
- }
|
|
|
- String url = sysFile.getUrl();
|
|
|
- if (userService.updateUserAvatar(loginUser.getUsername(), url)) {
|
|
|
- AjaxResult ajax = AjaxResult.success();
|
|
|
- ajax.put("imgUrl", url);
|
|
|
- // 更新缓存用户头像
|
|
|
- loginUser.getSysUser().setAvatar(url);
|
|
|
- tokenService.setLoginUser(loginUser);
|
|
|
- return ajax;
|
|
|
- }
|
|
|
- }
|
|
|
- return AjaxResult.error("上传图片异常,请联系管理员");
|
|
|
- }
|
|
|
-}
|
|
|
+package com.ruoyi.system.controller;
|
|
|
+
|
|
|
+import com.ruoyi.common.core.constant.UserConstants;
|
|
|
+import com.ruoyi.common.core.utils.StringUtils;
|
|
|
+import com.ruoyi.common.core.web.controller.BaseController;
|
|
|
+import com.ruoyi.common.core.web.domain.AjaxResult;
|
|
|
+import com.ruoyi.common.log.annotation.Log;
|
|
|
+import com.ruoyi.common.log.enums.BusinessType;
|
|
|
+import com.ruoyi.common.security.service.TokenService;
|
|
|
+import com.ruoyi.common.security.utils.SecurityUtils;
|
|
|
+import com.ruoyi.file.api.RemoteFileService;
|
|
|
+import com.ruoyi.file.api.domain.SysFile;
|
|
|
+import com.ruoyi.system.api.domain.SysUser;
|
|
|
+import com.ruoyi.system.api.model.LoginUser;
|
|
|
+import com.ruoyi.system.service.ISysUserService;
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
+import org.apache.dubbo.config.annotation.DubboReference;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 个人信息 业务处理
|
|
|
+ *
|
|
|
+ * @author ruoyi
|
|
|
+ */
|
|
|
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
|
|
+@RestController
|
|
|
+@RequestMapping("/user/profile")
|
|
|
+public class SysProfileController extends BaseController {
|
|
|
+
|
|
|
+ private final ISysUserService userService;
|
|
|
+ private final TokenService tokenService;
|
|
|
+
|
|
|
+ @DubboReference
|
|
|
+ private RemoteFileService remoteFileService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 个人信息
|
|
|
+ */
|
|
|
+ @GetMapping
|
|
|
+ public AjaxResult profile() {
|
|
|
+ String username = SecurityUtils.getUsername();
|
|
|
+ SysUser user = userService.selectUserByUserName(username);
|
|
|
+ AjaxResult ajax = AjaxResult.success(user);
|
|
|
+ ajax.put("roleGroup", userService.selectUserRoleGroup(username));
|
|
|
+ ajax.put("postGroup", userService.selectUserPostGroup(username));
|
|
|
+ return ajax;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改用户
|
|
|
+ */
|
|
|
+ @Log(title = "个人信息", businessType = BusinessType.UPDATE)
|
|
|
+ @PutMapping
|
|
|
+ public AjaxResult updateProfile(@RequestBody SysUser user) {
|
|
|
+ LoginUser loginUser = SecurityUtils.getLoginUser();
|
|
|
+ SysUser sysUser = loginUser.getSysUser();
|
|
|
+ user.setUserName(sysUser.getUserName());
|
|
|
+ if (StringUtils.isNotEmpty(user.getPhonenumber())
|
|
|
+ && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
|
|
|
+ return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
|
|
|
+ } else if (StringUtils.isNotEmpty(user.getEmail())
|
|
|
+ && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) {
|
|
|
+ return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
|
|
|
+ }
|
|
|
+ user.setUserId(sysUser.getUserId());
|
|
|
+ user.setPassword(null);
|
|
|
+ if (userService.updateUserProfile(user) > 0) {
|
|
|
+ // 更新缓存用户信息
|
|
|
+ loginUser.getSysUser().setNickName(user.getNickName());
|
|
|
+ loginUser.getSysUser().setPhonenumber(user.getPhonenumber());
|
|
|
+ loginUser.getSysUser().setEmail(user.getEmail());
|
|
|
+ loginUser.getSysUser().setSex(user.getSex());
|
|
|
+ tokenService.setLoginUser(loginUser);
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+ return AjaxResult.error("修改个人信息异常,请联系管理员");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 重置密码
|
|
|
+ */
|
|
|
+ @Log(title = "个人信息", businessType = BusinessType.UPDATE)
|
|
|
+ @PutMapping("/updatePwd")
|
|
|
+ public AjaxResult updatePwd(String oldPassword, String newPassword) {
|
|
|
+ String username = SecurityUtils.getUsername();
|
|
|
+ SysUser user = userService.selectUserByUserName(username);
|
|
|
+ String password = user.getPassword();
|
|
|
+ if (!SecurityUtils.matchesPassword(oldPassword, password)) {
|
|
|
+ return AjaxResult.error("修改密码失败,旧密码错误");
|
|
|
+ }
|
|
|
+ if (SecurityUtils.matchesPassword(newPassword, password)) {
|
|
|
+ return AjaxResult.error("新密码不能与旧密码相同");
|
|
|
+ }
|
|
|
+ if (userService.resetUserPwd(username, SecurityUtils.encryptPassword(newPassword)) > 0) {
|
|
|
+ // 更新缓存用户密码
|
|
|
+ LoginUser loginUser = SecurityUtils.getLoginUser();
|
|
|
+ loginUser.getSysUser().setPassword(SecurityUtils.encryptPassword(newPassword));
|
|
|
+ tokenService.setLoginUser(loginUser);
|
|
|
+ return AjaxResult.success();
|
|
|
+ }
|
|
|
+ return AjaxResult.error("修改密码异常,请联系管理员");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 头像上传
|
|
|
+ */
|
|
|
+ @Log(title = "用户头像", businessType = BusinessType.UPDATE)
|
|
|
+ @PostMapping("/avatar")
|
|
|
+ public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws IOException {
|
|
|
+ if (!file.isEmpty()) {
|
|
|
+ LoginUser loginUser = SecurityUtils.getLoginUser();
|
|
|
+ SysFile sysFile = remoteFileService.upload(file.getName(), file.getOriginalFilename(), file.getContentType(), file.getBytes());
|
|
|
+ if (StringUtils.isNull(sysFile)) {
|
|
|
+ return AjaxResult.error("文件服务异常,请联系管理员");
|
|
|
+ }
|
|
|
+ String url = sysFile.getUrl();
|
|
|
+ if (userService.updateUserAvatar(loginUser.getUsername(), url)) {
|
|
|
+ AjaxResult ajax = AjaxResult.success();
|
|
|
+ ajax.put("imgUrl", url);
|
|
|
+ // 更新缓存用户头像
|
|
|
+ loginUser.getSysUser().setAvatar(url);
|
|
|
+ tokenService.setLoginUser(loginUser);
|
|
|
+ return ajax;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return AjaxResult.error("上传图片异常,请联系管理员");
|
|
|
+ }
|
|
|
+}
|