1
0
mirror of https://github.com/saysky/Hotel synced 2025-05-06 19:49:25 +08:00
2020-04-12 10:47:26 +08:00

96 lines
2.9 KiB
Java

package com.example.hotel.controller.admin;
import com.example.hotel.common.constant.CommonConstant;
import com.example.hotel.controller.common.BaseController;
import com.example.hotel.entity.User;
import com.example.hotel.dto.JsonResult;
import com.example.hotel.service.UserService;
import com.example.hotel.util.Md5Util;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.Objects;
/**
* 后台用户管理控制器
*/
@Slf4j
@Controller
@RequestMapping(value = "/admin/user")
public class ProfileController extends BaseController {
@Autowired
private UserService userService;
/**
* 获取用户信息并跳转
*
* @return 模板路径admin/admin_profile
*/
@GetMapping("/profile")
public String profile(Model model) {
//1.用户信息
User user = getLoginUser();
model.addAttribute("user", user);
return "admin/admin_profile";
}
/**
* 处理修改用户资料的请求
*
* @param user user
* @return JsonResult
*/
@PostMapping(value = "/profile/save")
@ResponseBody
public JsonResult saveProfile(@ModelAttribute User user) {
User loginUser = getLoginUser();
User saveUser = userService.get(loginUser.getId());
saveUser.setUserPass(null);
saveUser.setId(loginUser.getId());
saveUser.setUserName(user.getUserName());
saveUser.setUserDisplayName(user.getUserDisplayName());
saveUser.setUserAvatar(user.getUserAvatar());
saveUser.setUserDesc(user.getUserDesc());
saveUser.setIdCard(user.getIdCard());
userService.insertOrUpdate(saveUser);
return JsonResult.success("资料修改成功,请重新登录");
}
/**
* 处理修改密码的请求
*
* @param beforePass 旧密码
* @param newPass 新密码
* @return JsonResult
*/
@PostMapping(value = "/changePass")
@ResponseBody
public JsonResult changePass(@ModelAttribute("beforePass") String beforePass,
@ModelAttribute("newPass") String newPass) {
// 1.密码长度是否合法
if (newPass.length() > 20 || newPass.length() < 6) {
return JsonResult.error("用户密码长度为6-20位!");
}
// 2.比较密码
User loginUser = getLoginUser();
User user = userService.get(loginUser.getId());
if (user != null && Objects.equals(user.getUserPass(), Md5Util.toMd5(beforePass, CommonConstant.PASSWORD_SALT, 10))) {
userService.updatePassword(user.getId(), newPass);
} else {
return JsonResult.error("旧密码错误");
}
return JsonResult.success("密码重置成功");
}
}