| | |
| | | package com.ruoyi.system.controller;
|
| | |
|
| | | import java.io.IOException;
|
| | | import org.springframework.beans.factory.annotation.Autowired;
|
| | | import org.springframework.web.bind.annotation.GetMapping;
|
| | | import org.springframework.web.bind.annotation.PostMapping;
|
| | | import org.springframework.web.bind.annotation.PutMapping;
|
| | | import org.springframework.web.bind.annotation.RequestBody;
|
| | | import org.springframework.web.bind.annotation.RequestMapping;
|
| | | import org.springframework.web.bind.annotation.RequestParam;
|
| | | import org.springframework.web.bind.annotation.RestController;
|
| | | import org.springframework.web.multipart.MultipartFile;
|
| | | import com.ruoyi.common.core.constant.UserConstants;
|
| | | import com.ruoyi.common.core.domain.R;
|
| | | 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.system.api.RemoteFileService;
|
| | | import com.ruoyi.system.api.domain.SysFile;
|
| | | import com.ruoyi.system.api.domain.SysUser;
|
| | | import com.ruoyi.system.api.model.LoginUser;
|
| | | import com.ruoyi.system.service.ISysUserService;
|
| | |
| | |
|
| | | @Autowired
|
| | | private TokenService tokenService;
|
| | | |
| | | @Autowired
|
| | | private RemoteFileService remoteFileService;
|
| | |
|
| | | /**
|
| | | * 个人信息
|
| | |
| | | @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 loginUser = tokenService.getLoginUser();
|
| | | // 更新缓存用户信息
|
| | | loginUser.getSysUser().setNickName(user.getNickName());
|
| | | loginUser.getSysUser().setPhonenumber(user.getPhonenumber());
|
| | |
| | | if (userService.resetUserPwd(username, SecurityUtils.encryptPassword(newPassword)) > 0)
|
| | | {
|
| | | // 更新缓存用户密码
|
| | | LoginUser loginUser = tokenService.getLoginUser();
|
| | | 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();
|
| | | R<SysFile> fileResult = remoteFileService.upload(file);
|
| | | if (StringUtils.isNull(fileResult) || StringUtils.isNull(fileResult.getData()))
|
| | | {
|
| | | return AjaxResult.error("文件服务异常,请联系管理员");
|
| | | }
|
| | | String url = fileResult.getData().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("上传图片异常,请联系管理员");
|
| | | }
|
| | | }
|