package com.huaheng.pc.system.user.controller; import org.apache.shiro.crypto.hash.Md5Hash; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import com.huaheng.common.utils.file.FileUploadUtils; import com.huaheng.framework.aspectj.lang.annotation.Log; import com.huaheng.framework.aspectj.lang.constant.BusinessType; import com.huaheng.framework.web.controller.BaseController; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.framework.web.service.DictService; import com.huaheng.pc.system.user.domain.User; import com.huaheng.pc.system.user.service.IUserService; /** * 个人信息 业务处理 * * @author huaheng */ @Controller @RequestMapping("/system/user/profile") public class ProfileController extends BaseController { private static final Logger log = LoggerFactory.getLogger(ProfileController.class); private String prefix = "system/user/profile"; @Autowired private IUserService userService; @Autowired private DictService dict; /** * 个人信息 */ @GetMapping() public String profile(ModelMap mmap) { User user = getUser(); user.setSex(dict.getLabel("sys_user_sex", user.getSex())); mmap.put("user", user); mmap.put("roleGroup", userService.selectUserRoleGroup(user.getId())); mmap.put("postGroup", userService.selectUserCompanyGroup(user.getId())); return prefix + "/profile"; } @GetMapping("/checkPassword") @ResponseBody public boolean checkPassword(String password) { User user = getUser(); String encrypt = new Md5Hash(user.getLoginName() + password + user.getSalt()).toHex().toString(); if (user.getPassword().equals(encrypt)) { return true; } return false; } @GetMapping("/resetPwd/{id}") public String resetPwd(@PathVariable("id") Integer id, ModelMap mmap) { mmap.put("user", userService.selectUserById(id)); return prefix + "/resetPwd"; } @Log(title = "系统管理-用户管理", operating = "重置密码", action = BusinessType.UPDATE) @PostMapping("/resetPwd") @ResponseBody public AjaxResult resetPwd(User user) { int rows = userService.resetUserPwd(user); if (rows > 0) { setUser(userService.selectUserById(user.getId())); return success(); } return error(); } /** * 修改用户 */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Integer id, ModelMap mmap) { mmap.put("user", userService.selectUserById(id)); return prefix + "/edit"; } /** * 修改头像 */ @GetMapping("/avatar/{id}") public String avatar(@PathVariable("id") Integer id, ModelMap mmap) { mmap.put("user", userService.selectUserById(id)); return prefix + "/avatar"; } /** * 修改用户 */ @Log(title = "系统管理-用户管理", operating = "修改个人信息", action = BusinessType.UPDATE) @PostMapping("/update") @ResponseBody public AjaxResult update(User user) { if (userService.updateUserInfo(user) > 0) { setUser(userService.selectUserById(user.getId())); return success(); } return error(); } /** * 保存头像 */ @Log(title = "系统管理-用户管理", operating = "保存头像", action = BusinessType.UPDATE) @PostMapping("/updateAvatar") @ResponseBody public AjaxResult updateAvatar(User user, @RequestParam("avatarfile") MultipartFile file) { try { if (!file.isEmpty()) { String avatar = FileUploadUtils.upload(file); user.setAvatar(avatar); if (userService.updateUserInfo(user) > 0) { setUser(userService.selectUserById(user.getId())); return success(); } } return error(); } catch (Exception e) { log.error("修改头像失败!", e); return error(e.getMessage()); } } }