IssueController.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package com.xiaoan.web.backend;
  2. import com.github.pagehelper.PageHelper;
  3. import com.github.pagehelper.PageInfo;
  4. import com.xiaoan.common.constant.MsgCode;
  5. import com.xiaoan.common.model.PageDto;
  6. import com.xiaoan.common.util.ResultJson;
  7. import com.xiaoan.domain.backend.IssueEntity;
  8. import com.xiaoan.domain.dto.request.IssueRequest;
  9. import com.xiaoan.domain.dto.response.IssueResponse;
  10. import com.xiaoan.domain.dto.response.LogResponse;
  11. import com.xiaoan.service.backend.IssueService;
  12. import com.xiaoan.service.backend.LogService;
  13. import com.xiaoan.web.aop.WebControllerLog;
  14. import com.xiaoan.web.shiro.JWTUtil;
  15. import io.swagger.annotations.Api;
  16. import io.swagger.annotations.ApiOperation;
  17. import org.apache.shiro.authz.annotation.RequiresRoles;
  18. import org.springframework.beans.BeanUtils;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.transaction.annotation.Transactional;
  21. import org.springframework.web.bind.annotation.*;
  22. import java.util.Date;
  23. import java.util.List;
  24. /**
  25. * Created by owen on 2020/2/18 0018 12:17
  26. */
  27. @Api(tags = "IssueController", description = "后台问题反馈")
  28. @RestController
  29. @RequestMapping("api/manage/issue")
  30. @Transactional
  31. public class IssueController extends BaseController {
  32. @Autowired
  33. private IssueService issueService;
  34. /**
  35. * 全部人都可以看
  36. * @param param
  37. * @return
  38. */
  39. @WebControllerLog(description = "问题反馈-问题搜索/列表")
  40. @ApiOperation("搜索/列表共用")
  41. @PostMapping("list")
  42. public ResultJson list(@RequestBody PageDto param){
  43. PageHelper.startPage(param.getPageNum(), param.getPageSize());
  44. List<IssueResponse> list = issueService.search(param.getSearchKey());
  45. // List userRole = JWTUtil.getUserRole(getToken());
  46. // if (userRole.contains("admin")) {
  47. // list = issueService.search(param.getItemName());
  48. // } else {
  49. // Long userId = JWTUtil.getUserId(getToken());
  50. // list = issueService.search(param.getItemName(), userId);
  51. // }
  52. PageInfo<IssueResponse> pageInfo = new PageInfo<>(list);
  53. return new ResultJson(MsgCode.SUCCESS_CODE, pageInfo);
  54. }
  55. @WebControllerLog(description = "问题反馈-提交问题")
  56. @ApiOperation("提交问题")
  57. @PostMapping("save")
  58. public ResultJson save(@RequestBody IssueRequest param){
  59. IssueEntity issueEntity = new IssueEntity();
  60. BeanUtils.copyProperties(param, issueEntity);
  61. Long userId = JWTUtil.getUserId(getToken());
  62. issueEntity.setUserId(userId);
  63. issueService.save(issueEntity);
  64. return new ResultJson(MsgCode.SUCCESS_CODE, MsgCode.SUCCESS_MSG);
  65. }
  66. /**
  67. * 只有管理员才能回复问题
  68. */
  69. @RequiresRoles("admin")
  70. @WebControllerLog(description = "问题反馈-回复问题")
  71. @ApiOperation("回复问题")
  72. @PostMapping("edit/{id}/{item}")
  73. public ResultJson edit(@PathVariable Long id, @PathVariable String item){
  74. IssueEntity entity = issueService.findById(id);
  75. if (entity == null) {
  76. return new ResultJson(MsgCode.FAILURE_CODE_3001, MsgCode.FAILURE_MSG_3001);
  77. }
  78. entity.setReply(item);
  79. entity.setUpdateTime(new Date());
  80. issueService.update(entity);
  81. return new ResultJson(MsgCode.SUCCESS_CODE, MsgCode.SUCCESS_MSG);
  82. }
  83. /**
  84. * 只有管理员才能删除问题
  85. */
  86. @RequiresRoles("admin")
  87. @WebControllerLog(description = "问题反馈-删除问题")
  88. @ApiOperation("删除问题")
  89. @PostMapping("delete/{id}")
  90. public ResultJson save(@PathVariable Long id){
  91. issueService.deleteById(id);
  92. return new ResultJson(MsgCode.SUCCESS_CODE, MsgCode.SUCCESS_MSG);
  93. }
  94. }