package com.example.springdemo.controller; import com.example.springdemo.entities.Users; import com.example.springdemo.entities.password.UsersPassword; import com.example.springdemo.service.UsersService; import com.example.springdemo.utils.RoleVerificationAnnotation; import jakarta.annotation.Resource; import org.springframework.web.bind.annotation.*; import java.util.Optional; @RestController @RequestMapping("/users") public class UsersController { @Resource private UsersService usersService; //添加新用户 @RoleVerificationAnnotation(RoleIDList = {1}, UserIDList = {1}) @PostMapping("/add") public Users addUsers(@RequestBody UsersPassword usersPassword, @RequestBody Users users) { return usersService.addUsers(users, usersPassword); } //通过ID删除用户 @RoleVerificationAnnotation(RoleIDList = {1}, UserIDList = {1}) @DeleteMapping("/delete/{userID}") public void deleteUsers(@PathVariable(name = "userID") Long userID) { usersService.deleteUsersById(userID); } //通过姓名删除用户 @RoleVerificationAnnotation(RoleIDList = {1}, UserIDList = {1}) @DeleteMapping("/delete/{name}") public void deleteUsers(@PathVariable(name = "name") String name) { usersService.deleteUsersByName(name); } //更新用户信息 @RoleVerificationAnnotation(RoleIDList = {1, 3}, UserIDList = {1}) @PutMapping("/update/info") public Users updateUsers(@RequestBody Users users) { return usersService.updateUsers(users); } //查找全部用户 @RoleVerificationAnnotation(RoleIDList = {1}, UserIDList = {1}) @GetMapping("/find") public Iterable<Users> getUsers() { return usersService.findAllUsers(); } //根据姓名查找用户 @RoleVerificationAnnotation(RoleIDList = {1}, UserIDList = {1}) @GetMapping("/find/{name}") public Users getUsersByName(@PathVariable(name = "name") String name) { return usersService.findByName(name); } //根据ID查找用户 @RoleVerificationAnnotation(RoleIDList = {1}, UserIDList = {1}) @GetMapping("/find/{id}") public Users getUsersById(@PathVariable(name = "id") Long userID) { return usersService.findById(userID); } //更新用户密码 @RoleVerificationAnnotation(RoleIDList = {1, 3}, UserIDList = {1}) @PutMapping("/update/password") public void updatePassword(@RequestParam(name = "password") String password, @RequestParam(name = "userID") Long userID) { usersService.updatePassword(password, userID); } }