|
|
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<String,String> 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<String,Object> query(@RequestBody User user){ // 从请求体中获取 User 对象作为查询条件。
|
|
|
PageInfo<User> pageInfo = userService.query(user); // 调用 userService 的 query 方法进行分页查询,并返回分页信息。
|
|
|
return Result.ok(pageInfo); // 返回包含分页信息的成功的 Result 对象。
|
|
|
}
|
|
|
|
|
|
}
|