@Controller("backendFeedbackController") public class FeedbackController extends BaseController { @Autowired private FeedbackService feedbackService; /** * 进入反馈管理页面 */ @RequestMapping("/admin/feedback") public String feedback(@RequestParam(value = "page",defaultValue = "1")Long pageNumber, @RequestParam(value = "size",defaultValue = "6")Long pageSize, Model model){ Page page = PageUtil.initMpPage(pageNumber,pageSize); Feedback condition = new Feedback(); // 如果不是管理员,只查询自己的反馈 if(!loginUserIsAdmin()){ condition.setUserId(getLoginUserId()); } Page<Feedback> feedbackPage = feedbackService.findAll(page,condition); model.addAttribute("pageInfo",feedbackPage); model.addAttribute("pagePrefix","/admin/feedback?"); model.addAttribute("tab","feedback-list"); model.addAttribute("isAdmin",loginUserIsAdmin()); return "admin/feedback-list"; } /** * 回复反馈 */ @RequestMapping(value = "/admin/feedback/reply/submit",method = RequestMethod.POST) @ResponseBody public JsonResult replySubmit(Feedback feedback){ feedbackService.update(feedback); return JsonResult.success("保存成功"); } /** * 删除反馈 */ @RequestMapping("/admin/feedback/delete") @ResponseBody public JsonResult deleteFeedback(@RequestParam("id")Long id){ try{ Feedback feedback = feedbackService.get(id); if(feedback==null){ return JsonResult.error("反馈不存在"); } if(!loginUserIsAdmin() && !Objects.equals(feedback.getUserId(),getLoginUserId())){ return JsonResult.error("没有权限删除,这不是你的反馈"); } feedbackService.delete(id); }catch (Exception e){ return JsonResult.error("删除反馈失败"); } return JsonResult.success("删除反馈成功"); } }
时间: 2024-04-01 16:32:31 浏览: 64
这是一个基于Spring MVC框架实现的后台反馈管理功能的控制器类。该类使用了@Controller注解标注,表示该类是一个控制器。以下是该类中的主要方法和功能:
- feedback()方法:用于进入反馈管理页面。该方法使用@RequestMapping注解映射了请求路径“/admin/feedback”,并接收两个@RequestParam注解标注的请求参数。通过调用PageUtil.initMpPage()方法初始化分页信息,然后调用FeedbackService的findAll()方法查询反馈记录,将结果封装到Page对象中,并添加到模型中。最后返回反馈列表页面的视图名称。
- replySubmit()方法:用于提交反馈回复。该方法使用@RequestMapping注解映射了请求路径“/admin/feedback/reply/submit”,并使用@ResponseBody注解将方法返回值转换为JSON格式。该方法接收一个Feedback对象作为参数,调用FeedbackService的update()方法更新反馈记录,并返回一个JsonResult对象。
- deleteFeedback()方法:用于删除反馈记录。该方法使用@RequestMapping注解映射了请求路径“/admin/feedback/delete”,并使用@ResponseBody注解将方法返回值转换为JSON格式。该方法接收一个Long类型的id参数,根据id查询对应的反馈记录,判断当前登录用户是否有权限删除,如果有则调用FeedbackService的delete()方法删除反馈记录,并返回一个JsonResult对象。
阅读全文