AdminUserController.java 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package space.anyi.controller.admin;
  2. import space.anyi.entity.User;
  3. import space.anyi.service.UserService;
  4. import space.anyi.util.Converter;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.stereotype.Controller;
  7. import org.springframework.web.bind.annotation.*;
  8. import org.springframework.web.servlet.ModelAndView;
  9. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  10. import java.util.Date;
  11. import java.util.List;
  12. @Controller
  13. @RequestMapping("/admin")
  14. public class AdminUserController {
  15. @Autowired private UserService userService;
  16. @GetMapping("/user")
  17. public ModelAndView list(@RequestParam(defaultValue = "1") Integer page) {
  18. ModelAndView mv = new ModelAndView("admin/user");
  19. List<User> userList = userService.findAll(page, 10);
  20. int totalPages = 1;
  21. if (userList instanceof com.github.pagehelper.Page) {
  22. com.github.pagehelper.Page<User> p = (com.github.pagehelper.Page<User>) userList;
  23. totalPages = p.getPages();
  24. }
  25. mv.addObject("users", Converter.toUserVOList(userList));
  26. mv.addObject("page", page);
  27. mv.addObject("totalPages", totalPages);
  28. return mv;
  29. }
  30. @PostMapping("/user/toggleStatus")
  31. public String toggleStatus(@RequestParam Integer id, RedirectAttributes attr) {
  32. userService.toggleStatus(id);
  33. attr.addFlashAttribute("success", "状态已更改");
  34. return "redirect:/admin/user";
  35. }
  36. @GetMapping("/user/edit/{id}")
  37. public ModelAndView editPage(@PathVariable Integer id) {
  38. ModelAndView mv = new ModelAndView("admin/userEdit");
  39. mv.addObject("user", Converter.toUserVO(userService.findById(id)));
  40. return mv;
  41. }
  42. @PostMapping("/user/edit")
  43. public String edit(User user, RedirectAttributes attr) {
  44. User existing = userService.findById(user.getId());
  45. if (existing != null) {
  46. user.setUsername(existing.getUsername());
  47. user.setAvatar(existing.getAvatar());
  48. }
  49. user.setUpdateTime(new Date());
  50. userService.update(user);
  51. attr.addFlashAttribute("success", "用户信息已更新");
  52. return "redirect:/admin/user";
  53. }
  54. @PostMapping("/user/delete/{id}")
  55. public String delete(@PathVariable Integer id, RedirectAttributes attr) {
  56. userService.deleteById(id);
  57. attr.addFlashAttribute("success", "用户已删除");
  58. return "redirect:/admin/user";
  59. }
  60. }