AdminReviewController.java 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package space.anyi.controller.admin;
  2. import space.anyi.entity.Cake;
  3. import space.anyi.entity.Review;
  4. import space.anyi.service.CakeService;
  5. import space.anyi.service.ReviewService;
  6. import space.anyi.util.Converter;
  7. import space.anyi.entity.vo.ReviewVO;
  8. import java.util.List;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Controller;
  11. import org.springframework.web.bind.annotation.*;
  12. import org.springframework.web.servlet.ModelAndView;
  13. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  14. @Controller
  15. @RequestMapping("/admin")
  16. public class AdminReviewController {
  17. @Autowired private ReviewService reviewService;
  18. @Autowired private CakeService cakeService;
  19. @GetMapping("/review")
  20. public ModelAndView list(@RequestParam(defaultValue = "1") Integer page) {
  21. ModelAndView mv = new ModelAndView("admin/review");
  22. List<Review> reviewList = reviewService.findAll(page, 10);
  23. int totalPages = 1;
  24. if (reviewList instanceof com.github.pagehelper.Page) {
  25. com.github.pagehelper.Page<Review> p = (com.github.pagehelper.Page<Review>) reviewList;
  26. totalPages = p.getPages();
  27. }
  28. List<ReviewVO> reviewVOs = Converter.toReviewVOList(reviewList);
  29. for (ReviewVO vo : reviewVOs) {
  30. if (vo.getCakeId() != null) {
  31. Cake cake = cakeService.findById(vo.getCakeId());
  32. if (cake != null) {
  33. vo.setCakeName(cake.getName());
  34. }
  35. }
  36. }
  37. mv.addObject("reviews", reviewVOs);
  38. mv.addObject("page", page);
  39. mv.addObject("totalPages", totalPages);
  40. return mv;
  41. }
  42. @PostMapping("/review/toggleStatus")
  43. public String toggleStatus(@RequestParam Integer id, RedirectAttributes attr) {
  44. reviewService.toggleStatus(id);
  45. attr.addFlashAttribute("success", "状态已更改");
  46. return "redirect:/admin/review";
  47. }
  48. @PostMapping("/review/reply")
  49. public String reply(@RequestParam Integer id, @RequestParam String replyContent, RedirectAttributes attr) {
  50. reviewService.reply(id, replyContent);
  51. attr.addFlashAttribute("success", "回复成功");
  52. return "redirect:/admin/review";
  53. }
  54. }