package com.xiaopeng.account.controller;
|
|
import com.xiaopeng.account.constant.I18nKeyConstant;
|
import com.xiaopeng.account.model.dto.SysUserProfileDTO;
|
import com.xiaopeng.account.service.ISysUserService;
|
import com.xiaopeng.api.model.account.SysUser;
|
import com.xiaopeng.api.vo.account.LoginUser;
|
import com.xiaopeng.common.core.exception.ServiceException;
|
import com.xiaopeng.common.core.web.controller.BaseController;
|
import com.xiaopeng.common.core.web.domain.AjaxResult;
|
import com.xiaopeng.common.log.annotation.Log;
|
import com.xiaopeng.common.log.enums.BusinessType;
|
import com.xiaopeng.common.security.service.TokenService;
|
import com.xiaopeng.common.security.utils.SecurityUtils;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
/**
|
* 个人信息 业务处理
|
*
|
* @author ruoyi
|
*/
|
@Api(tags = "管理后台-个人信息")
|
@RestController
|
public class SysProfileController extends BaseController
|
{
|
@Autowired
|
private ISysUserService userService;
|
|
@Autowired
|
private TokenService tokenService;
|
|
|
/**
|
* 个人信息
|
*/
|
@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;
|
}
|
|
/**
|
* 修改用户
|
*/
|
@ApiOperation("修改个人信息")
|
@PutMapping("/api/v1/profile/updateProfile")
|
public AjaxResult updateProfile(@RequestBody SysUserProfileDTO dto)
|
{
|
try {
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
SysUser sysUser = loginUser.getSysUser();
|
sysUser.setNickName(dto.getNickName());
|
sysUser.setAvatar(dto.getAvatar());
|
sysUser.setId(sysUser.getId());
|
if (userService.updateById(sysUser))
|
{
|
// 更新缓存用户信息
|
loginUser.getSysUser().setNickName(dto.getNickName());
|
loginUser.getSysUser().setAvatar(dto.getAvatar());
|
tokenService.setLoginUser(loginUser);
|
}
|
} catch (Exception e) {
|
throw new ServiceException("修改个人信息异常,请联系管理员", I18nKeyConstant.ACCOUNT_PROFILE_UPDATE_ERROR);
|
}
|
return success();
|
}
|
|
/**
|
* 重置密码
|
*/
|
@ApiOperation(value = "个人信息-修改密码")
|
@PostMapping("/api/v1/profile/updatePwd")
|
public AjaxResult updatePwd(String oldPassword, String newPassword) {
|
try {
|
String username = SecurityUtils.getUsername();
|
SysUser user = userService.selectUserByUserName(username);
|
String password = user.getPassword();
|
if (!SecurityUtils.matchesPassword(oldPassword, password)) {
|
return error("修改密码失败,旧密码错误");
|
}
|
if (SecurityUtils.matchesPassword(newPassword, password)) {
|
return error("新密码不能与旧密码相同");
|
}
|
if (userService.resetUserPwd(user.getId(), SecurityUtils.encryptPassword(newPassword))) {
|
// 更新缓存用户密码
|
// LoginUser loginUser = SecurityUtils.getLoginUser();
|
// SysUser sysUser = loginUser.getSysUser();
|
// loginUser.getSysUser().setPassword(SecurityUtils.encryptPassword(newPassword));
|
// tokenService.setLoginUser(loginUser);
|
}
|
|
} catch (Exception e) {
|
throw new ServiceException("修改密码异常,请联系管理员", I18nKeyConstant.ACCOUNT_PASSWORD_UPDATE_ERROR);
|
}
|
return success();
|
}
|
|
|
}
|