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 // 声明这是一个控制器,并且返回的数据直接写入 HTTP 响应体中,而不是解析为跳转路径。 @RequestMapping("/user") // 设置请求的基础路径为 "/user",所有方法的请求路径都会以 "/user" 开头。 public class UserController { @Autowired // 自动注入 UserService 对象,用于处理用户相关的业务逻辑。 private UserService用户管理 userService; @Autowired // 自动注入 StudentService 对象,用于处理学生相关的业务逻辑。 private StudentService学生管理 studentService; @PostMapping("create") // 映射 HTTP POST 请求到 "create" 方法,用于创建新用户。 public Result create(@RequestBody User user){ // 从请求体中获取 User 对象。 int flag = userService.create(user); // 调用 userService 的 create 方法创建用户,并返回操作结果标志。 if(flag>0){ // 如果创建成功(flag > 0)。 return Result.ok(); // 返回成功的 Result 对象。 }else{ // 如果创建失败(flag <= 0)。 return Result.fail(); // 返回失败的 Result 对象。 } } @GetMapping("delete") // 映射 HTTP GET 请求到 "delete" 方法,用于删除用户。 public Result delete(String ids){ // 从请求参数中获取要删除的用户 ID 字符串。 int flag = userService.delete(ids); // 调用 userService 的 delete 方法删除用户,并返回操作结果标志。 if(flag>0){ // 如果删除成功(flag > 0)。 return Result.ok(); // 返回成功的 Result 对象。 }else{ // 如果删除失败(flag <= 0)。 return Result.fail(); // 返回失败的 Result 对象。 } } @PostMapping("update") // 映射 HTTP POST 请求到 "update" 方法,用于更新用户信息。 public Result update(@RequestBody User user){ // 从请求体中获取 User 对象。 int flag = userService.updateSelective(user); // 调用 userService 的 updateSelective 方法更新用户信息,并返回操作结果标志。 if(flag>0){ // 如果更新成功(flag > 0)。 return Result.ok(); // 返回成功的 Result 对象。 }else{ // 如果更新失败(flag <= 0)。 return Result.fail(); // 返回失败的 Result 对象。 } } @GetMapping("detail") // 映射 HTTP GET 请求到 "detail" 方法,用于获取用户详细信息。 public User detail(Integer id){ // 从请求参数中获取用户 ID。 return userService.detail(id); // 调用 userService 的 detail 方法获取用户详细信息,并返回该用户对象。 } @GetMapping("info") // 映射 HTTP GET 请求到 "info" 方法,用于获取当前登录用户的详细信息。 public Result info(HttpServletRequest request){ // 从请求中获取当前用户信息。 User user = (User)request.getAttribute("user"); // 从请求属性中获取当前用户对象。 return Result.ok(userService.detail(user.getId())); // 调用 userService 的 detail 方法获取用户详细信息,并返回成功的 Result 对象。 } @PostMapping("pwd") // 映射 HTTP POST 请求到 "pwd" 方法,用于修改用户密码。 public Result pwd(@RequestBody Map map,HttpServletRequest request){ // 从请求体中获取包含原密码和新密码的 Map,并从请求中获取当前用户或学生信息。 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()); // 调用 userService 的 detail 方法获取用户详细信息。 if(entity.getPassword().equals(spassword)){ // 如果原密码正确。 User param = new User(); // 创建新的 User 对象用于更新密码。 param.setId(entity.getId()); // 设置用户 ID。 param.setPassword(npassword); // 设置新密码。 userService.updatePwd(param); // 调用 userService 的 updatePwd 方法更新密码。 return Result.ok("修改密码成功"); // 返回成功的 Result 对象。 }else{ // 如果原密码错误。 return Result.fail("原密码错误"); // 返回失败的 Result 对象。 } } //学生修改 if(request.getAttribute("student") != null){ // 如果当前用户是学生。 Student student = (Student)request.getAttribute("student"); // 从请求属性中获取当前学生对象。 Student entity = studentService.detail(student.getId()); // 调用 studentService 的 detail 方法获取学生详细信息。 if(entity.getPassword().equals(spassword)){ // 如果原密码正确。 Student param = new Student(); // 创建新的 Student 对象用于更新密码。 param.setId(entity.getId()); // 设置学生 ID。 param.setPassword(npassword); // 设置新密码。 studentService.updateSelective(param); // 调用 studentService 的 updateSelective 方法更新密码。 return Result.ok("修改密码成功"); // 返回成功的 Result 对象。 }else{ // 如果原密码错误。 return Result.fail("原密码错误"); // 返回失败的 Result 对象。 } } return Result.ok(); // 如果既不是普通用户也不是学生,返回成功的 Result 对象。 } @PostMapping("query") // 映射 HTTP POST 请求到 "query" 方法,用于查询用户列表。 public Map query(@RequestBody User user){ // 从请求体中获取 User 对象作为查询条件。 PageInfo pageInfo = userService.query(user); // 调用 userService 的 query 方法进行分页查询,并返回分页信息。 return Result.ok(pageInfo); // 返回包含分页信息的成功的 Result 对象。 } }