package com.bizmatics.controller.web.system; import com.bizmatics.common.core.bean.ApiResult; import com.bizmatics.common.core.exception.BusinessErrorCode; import com.bizmatics.common.core.util.StringUtils; import com.bizmatics.common.mvc.utils.ServletUtils; import com.bizmatics.model.constants.UserConstants; import com.bizmatics.model.system.SysUser; import com.bizmatics.service.aop.BusinessType; import com.bizmatics.service.aop.Log; import com.bizmatics.service.system.ISysUserService; import com.bizmatics.service.system.impl.TokenService; import com.bizmatics.service.config.security.LoginUser; import com.bizmatics.service.util.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.Map; /** * 个人信息 业务处理 * * @author yq */ @RestController @RequestMapping("/system/user/profile") public class SysProfileController extends BaseController { @Autowired private ISysUserService userService; @Autowired private TokenService tokenService; /** * 个人信息 */ @GetMapping public ApiResult profile() { LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); SysUser user = loginUser.getUser(); Map ajax = new HashMap<>(); ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername())); ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername())); return ApiResult.success(ajax); } /** * 修改用户 */ @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PutMapping public ApiResult updateProfile(@RequestBody SysUser user) { if (StringUtils.isNotBlank(user.getPhonenumber()) && UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) { return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "手机号码已存在"); } if (StringUtils.isNotEmpty(user.getEmail()) && UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) { return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "邮箱账号已存在"); } LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); SysUser sysUser = loginUser.getUser(); user.setUserId(sysUser.getUserId()); user.setPassword(null); if (userService.updateUserProfile(user) > 0) { // 更新缓存用户信息 loginUser.getUser().setNickName(user.getNickName()); loginUser.getUser().setPhonenumber(user.getPhonenumber()); loginUser.getUser().setEmail(user.getEmail()); loginUser.getUser().setSex(user.getSex()); tokenService.setLoginUser(loginUser); return ApiResult.success(); } return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(),"修改个人信息异常,请联系管理员"); } /** * 重置密码 */ @Log(title = "个人信息", businessType = BusinessType.UPDATE) @PutMapping("/updatePwd") public ApiResult updatePwd(String oldPassword, String newPassword) { LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); String userName = loginUser.getUsername(); String password = loginUser.getPassword(); if (!SecurityUtils.matchesPassword(oldPassword, password)) { return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "修改密码失败,旧密码错误"); } if (SecurityUtils.matchesPassword(newPassword, password)) { return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "新密码不能与旧密码相同"); } if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0) { // 更新缓存用户密码 loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword)); tokenService.setLoginUser(loginUser); return ApiResult.success(); } return ApiResult.error(BusinessErrorCode.BIZ_BUSINESS_ERROR.getCode(), "修改密码异常,请联系管理员"); } // /** // * 头像上传 // */ // @PostMapping("/avatar") // public ApiResult avatar(@RequestParam("avatarfile") MultipartFile file) throws IOException // { // if (!file.isEmpty()) // { // LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); // String avatar = FileUploadUtils.upload(yqConfig.getAvatarPath(), file); // if (userService.updateUserAvatar(loginUser.getUsername(), avatar)) // { // ApiResult ajax = ApiResult.success(); // ajax.put("imgUrl", avatar); // // 更新缓存用户头像 // loginUser.getUser().setAvatar(avatar); // tokenService.setLoginUser(loginUser); // return ajax; // } // } // return ApiResult.error("上传图片异常,请联系管理员"); // } }