package com.javaweb.web.controller.system;
|
|
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.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.javaweb.common.annotation.Log;
|
import com.javaweb.common.config.Global;
|
import com.javaweb.common.core.controller.BaseController;
|
import com.javaweb.common.core.domain.AjaxResult;
|
import com.javaweb.common.enums.BusinessType;
|
import com.javaweb.common.utils.StringUtils;
|
import com.javaweb.common.utils.file.FileUploadUtils;
|
import com.javaweb.framework.shiro.service.SysPasswordService;
|
import com.javaweb.framework.util.ShiroUtils;
|
import com.javaweb.system.domain.SysUser;
|
import com.javaweb.system.service.ISysUserService;
|
|
/**
|
* 个人信息 业务处理
|
*
|
* @author javaweb
|
*/
|
@Controller
|
@RequestMapping("/system/user/profile")
|
public class SysProfileController extends BaseController
|
{
|
private static final Logger log = LoggerFactory.getLogger(SysProfileController.class);
|
|
private String prefix = "system/user/profile";
|
|
@Autowired
|
private ISysUserService userService;
|
|
@Autowired
|
private SysPasswordService passwordService;
|
|
/**
|
* 个人信息
|
*/
|
@GetMapping()
|
public String profile(ModelMap mmap)
|
{
|
SysUser user = ShiroUtils.getSysUser();
|
mmap.put("user", user);
|
mmap.put("roleGroup", userService.selectUserRoleGroup(user.getUserId()));
|
mmap.put("postGroup", userService.selectUserPostGroup(user.getUserId()));
|
return prefix + "/profile";
|
}
|
|
@GetMapping("/checkPassword")
|
@ResponseBody
|
public boolean checkPassword(String password)
|
{
|
SysUser user = ShiroUtils.getSysUser();
|
if (passwordService.matches(user, password))
|
{
|
return true;
|
}
|
return false;
|
}
|
|
@GetMapping("/resetPwd")
|
public String resetPwd(ModelMap mmap)
|
{
|
SysUser user = ShiroUtils.getSysUser();
|
mmap.put("user", userService.selectUserById(user.getUserId()));
|
return prefix + "/resetPwd";
|
}
|
|
@Log(title = "重置密码", businessType = BusinessType.UPDATE)
|
@PostMapping("/resetPwd")
|
@ResponseBody
|
public AjaxResult resetPwd(String oldPassword, String newPassword)
|
{
|
SysUser user = ShiroUtils.getSysUser();
|
if (StringUtils.isNotEmpty(newPassword) && passwordService.matches(user, oldPassword))
|
{
|
user.setSalt(ShiroUtils.randomSalt());
|
user.setPassword(passwordService.encryptPassword(user.getLoginName(), newPassword, user.getSalt()));
|
if (userService.resetUserPwd(user) > 0)
|
{
|
ShiroUtils.setSysUser(userService.selectUserById(user.getUserId()));
|
return success();
|
}
|
return error();
|
}
|
else
|
{
|
return error("修改密码失败,旧密码错误");
|
}
|
}
|
|
/**
|
* 修改用户
|
*/
|
@GetMapping("/edit")
|
public String edit(ModelMap mmap)
|
{
|
SysUser user = ShiroUtils.getSysUser();
|
mmap.put("user", userService.selectUserById(user.getUserId()));
|
return prefix + "/edit";
|
}
|
|
/**
|
* 修改头像
|
*/
|
@GetMapping("/avatar")
|
public String avatar(ModelMap mmap)
|
{
|
SysUser user = ShiroUtils.getSysUser();
|
mmap.put("user", userService.selectUserById(user.getUserId()));
|
return prefix + "/avatar";
|
}
|
|
/**
|
* 修改用户
|
*/
|
@Log(title = "个人信息", businessType = BusinessType.UPDATE)
|
@PostMapping("/update")
|
@ResponseBody
|
public AjaxResult update(SysUser user)
|
{
|
SysUser currentUser = ShiroUtils.getSysUser();
|
currentUser.setUserName(user.getUserName());
|
currentUser.setEmail(user.getEmail());
|
currentUser.setPhonenumber(user.getPhonenumber());
|
currentUser.setSex(user.getSex());
|
if (userService.updateUserInfo(currentUser) > 0)
|
{
|
ShiroUtils.setSysUser(userService.selectUserById(currentUser.getUserId()));
|
return success();
|
}
|
return error();
|
}
|
|
/**
|
* 保存头像
|
*/
|
@Log(title = "个人信息", businessType = BusinessType.UPDATE)
|
@PostMapping("/updateAvatar")
|
@ResponseBody
|
public AjaxResult updateAvatar(@RequestParam("avatarfile") MultipartFile file)
|
{
|
SysUser currentUser = ShiroUtils.getSysUser();
|
try
|
{
|
if (!file.isEmpty())
|
{
|
String avatar = FileUploadUtils.upload(Global.getAvatarPath(), file);
|
currentUser.setAvatar(avatar);
|
if (userService.updateUserInfo(currentUser) > 0)
|
{
|
ShiroUtils.setSysUser(userService.selectUserById(currentUser.getUserId()));
|
return success();
|
}
|
}
|
return error();
|
}
|
catch (Exception e)
|
{
|
log.error("修改头像失败!", e);
|
return error(e.getMessage());
|
}
|
}
|
}
|