package com.yanzhen.controller; import com.github.pagehelper.PageInfo; import com.yanzhen.entity.Student; import com.yanzhen.entity.User; import com.yanzhen.service.StudentService; import com.yanzhen.service.UserService; import com.yanzhen.utils.Result; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.Map; //用户管理的控制器 @RestController @RequestMapping("/user") public class UserController { //注入实例 //注入用户管理的服务类 @Autowired private UserService userService; //注入学生服务类 @Autowired private StudentService studentService; //创建新的实例 @PostMapping("create") public Result create(@RequestBody User user){ //在用户管理服务类中引用create方法 int flag = userService.create(user); //判断是否创建成功 if(flag>0){ //成功 return Result.ok(); }else{ //失败 return Result.fail(); } } //删除用户信息 @GetMapping("delete") public Result delete(String ids){ //在用户管理服务类中引用delete方法 int flag = userService.delete(ids); //判断是否删除成功 if(flag>0){ //成功 return Result.ok(); }else{ //失败 return Result.fail(); } } //更新用户信息 @PostMapping("update") public Result update(@RequestBody User user){ //在用户管理服务类中引用update方法 int flag = userService.updateSelective(user); //判断是否更新成功 if(flag>0){ //成功 return Result.ok(); }else{ //失败 return Result.fail(); } } //获取用户详细信息 @GetMapping("detail") public User detail(Integer id){ //返回结果 return userService.detail(id); } //获取用户信息 @GetMapping("info") public Result info(HttpServletRequest request){ //获取当前用户对象。 User user = (User)request.getAttribute("user"); //返回结果 return Result.ok(userService.detail(user.getId())); } //修改用户密码 @PostMapping("pwd") public Result pwd(@RequestBody Map map,HttpServletRequest request){ // 获取原密码 String spassword = map.get("spassword"); // 获取新密码 String npassword = map.get("npassword"); //用户修改 if(request.getAttribute("user") != null){ // 获取当前用户对象。 User user = (User)request.getAttribute("user"); // 获取用户详细信息。 User entity = userService.detail(user.getId()); //判断原密码是否正确 if(entity.getPassword().equals(spassword)){ // 创建新的 User 对象用于更新密码 User param = new User(); // 设置用户 ID param.setId(entity.getId()); // 设置新密码 param.setPassword(npassword); // 更新密码 userService.updatePwd(param); //成功 return Result.ok("修改密码成功"); }else{ //失败 return Result.fail("原密码错误"); } } //学生修改 if(request.getAttribute("student") != null){ // 获取当前学生对象 Student student = (Student)request.getAttribute("student"); //获取学生详细信息 Student entity = studentService.detail(student.getId()); //判断原密码是否正确 if(entity.getPassword().equals(spassword)){ // 更新密码 Student param = new Student(); // 设置学生 ID param.setId(entity.getId()); // 设置新密码 param.setPassword(npassword); // 更新密码 studentService.updateSelective(param); //成功 return Result.ok("修改密码成功"); }else{ //失败 return Result.fail("原密码错误"); } } return Result.ok(); // 如果既不是普通用户也不是学生,返回成功的 Result 对象。 } //查询用户信息 @PostMapping("query") public Map query(@RequestBody User user){ //创建分页对象 PageInfo pageInfo = userService.query(user); //返回结果 return Result.ok(pageInfo); } }