package space.anyi.controller.admin; import space.anyi.entity.User; import space.anyi.service.UserService; import space.anyi.util.Converter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import java.util.Date; import java.util.List; @Controller @RequestMapping("/admin") public class AdminUserController { @Autowired private UserService userService; @GetMapping("/user") public ModelAndView list(@RequestParam(defaultValue = "1") Integer page) { ModelAndView mv = new ModelAndView("admin/user"); List userList = userService.findAll(page, 10); int totalPages = 1; if (userList instanceof com.github.pagehelper.Page) { com.github.pagehelper.Page p = (com.github.pagehelper.Page) userList; totalPages = p.getPages(); } mv.addObject("users", Converter.toUserVOList(userList)); mv.addObject("page", page); mv.addObject("totalPages", totalPages); return mv; } @PostMapping("/user/toggleStatus") public String toggleStatus(@RequestParam Integer id, RedirectAttributes attr) { userService.toggleStatus(id); attr.addFlashAttribute("success", "状态已更改"); return "redirect:/admin/user"; } @GetMapping("/user/edit/{id}") public ModelAndView editPage(@PathVariable Integer id) { ModelAndView mv = new ModelAndView("admin/userEdit"); mv.addObject("user", Converter.toUserVO(userService.findById(id))); return mv; } @PostMapping("/user/edit") public String edit(User user, RedirectAttributes attr) { User existing = userService.findById(user.getId()); if (existing != null) { user.setUsername(existing.getUsername()); user.setAvatar(existing.getAvatar()); } user.setUpdateTime(new Date()); userService.update(user); attr.addFlashAttribute("success", "用户信息已更新"); return "redirect:/admin/user"; } @PostMapping("/user/delete/{id}") public String delete(@PathVariable Integer id, RedirectAttributes attr) { userService.deleteById(id); attr.addFlashAttribute("success", "用户已删除"); return "redirect:/admin/user"; } }