AnnouncementController.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. package com.wtkj.controller;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
  4. import com.wtkj.entity.Announcement;
  5. import com.wtkj.entity.AnnouncementSend;
  6. import com.wtkj.service.IAnnouncementSendService;
  7. import com.wtkj.service.IAnnouncementService;
  8. import com.wtkj.vo.AnnouncementSendVO;
  9. import com.wtkj.wrapper.AnnouncementSendWrapper;
  10. import io.swagger.annotations.Api;
  11. import io.swagger.annotations.ApiOperation;
  12. import io.swagger.annotations.ApiParam;
  13. import lombok.AllArgsConstructor;
  14. import org.springblade.core.mp.support.Condition;
  15. import org.springblade.core.mp.support.Query;
  16. import org.springblade.core.secure.utils.AuthUtil;
  17. import org.springblade.core.tool.api.R;
  18. import org.springblade.core.tool.utils.Func;
  19. import org.springframework.web.bind.annotation.*;
  20. import javax.validation.Valid;
  21. /**
  22. * @author Blizzard
  23. * @create at 2023-09-23 11:24
  24. * @describe
  25. */
  26. @RestController
  27. @AllArgsConstructor
  28. @RequestMapping("/announcement")
  29. @Api(value = "通知公告模块", tags = "通知公告模块")
  30. public class AnnouncementController {
  31. private final IAnnouncementService announcementService;
  32. private final IAnnouncementSendService announcementSendService;
  33. /**
  34. * 详情
  35. */
  36. @GetMapping("/detail")
  37. @ApiOperationSupport(order = 1)
  38. @ApiOperation(value = "详情", notes = "传入announcement")
  39. public R<Announcement> detail(Announcement announcement) {
  40. Announcement detail = announcementService.getOne(Condition.getQueryWrapper(announcement));
  41. return R.data(detail);
  42. }
  43. /**
  44. * 分页 系统通告表
  45. */
  46. @GetMapping("/page")
  47. @ApiOperationSupport(order = 2)
  48. @ApiOperation(value = "分页", notes = "传入announcement")
  49. public R<IPage<Announcement>> list(Announcement announcement, Query query) {
  50. IPage<Announcement> pages = announcementService.page(Condition.getPage(query), Condition.getQueryWrapper(announcement));
  51. return R.data(pages);
  52. }
  53. /**
  54. * 新增或修改 系统通告表
  55. */
  56. @PostMapping("/submit")
  57. @ApiOperationSupport(order = 3)
  58. @ApiOperation(value = "新增或修改", notes = "传入announcement")
  59. public R submit(@Valid @RequestBody Announcement announcement) {
  60. return R.status(announcementService.saveOrUpdate(announcement));
  61. }
  62. /**
  63. * 删除 系统通告表
  64. */
  65. @PostMapping("/remove")
  66. @ApiOperationSupport(order = 4)
  67. @ApiOperation(value = "逻辑删除", notes = "传入ids")
  68. public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
  69. return R.status(announcementService.deleteLogic(Func.toLongList(ids)));
  70. }
  71. @GetMapping("/send-detail")
  72. @ApiOperationSupport(order = 5)
  73. @ApiOperation(value = "发送详情", notes = "传入announcementSend")
  74. public R<AnnouncementSendVO> detail(AnnouncementSend announcementSend) {
  75. AnnouncementSend detail = announcementSendService.getOne(Condition.getQueryWrapper(announcementSend));
  76. return R.data(AnnouncementSendWrapper.build().entityVO(detail));
  77. }
  78. /**
  79. * 自定义分页 获取用户消息列表
  80. */
  81. @GetMapping("/send-page")
  82. @ApiOperationSupport(order = 6)
  83. @ApiOperation(value = "发送分页", notes = "")
  84. public R<IPage<AnnouncementSendVO>> page(Query query) {
  85. Long userId = AuthUtil.getUserId();
  86. if (userId == -1L) {
  87. return R.fail("获取用户信息失败!");
  88. }
  89. IPage<AnnouncementSend> pages = announcementSendService.selectAnnouncementSendPage(Condition.getPage(query), userId);
  90. return R.data(AnnouncementSendWrapper.build().pageVO(pages));
  91. }
  92. /**
  93. * 获取用户未读消息数量
  94. */
  95. @GetMapping("/send-notReadCount")
  96. @ApiOperationSupport(order = 7)
  97. @ApiOperation(value = "获取用户未读消息数量", notes = "")
  98. public R notReadCount() {
  99. Long userId = AuthUtil.getUserId();
  100. if (userId == -1L) {
  101. return R.fail("获取用户信息失败!");
  102. }
  103. return R.data(announcementSendService.notReadCount(userId));
  104. }
  105. /**
  106. * 用户阅读状态修改
  107. */
  108. @PostMapping("/send-read")
  109. @ApiOperationSupport(order = 8)
  110. @ApiOperation(value = "用户阅读状态修改", notes = "传入id")
  111. public R read(@ApiParam(value = "主键ID", required = true) @RequestParam Long id) {
  112. return R.status(announcementSendService.updateReadFlag(id));
  113. }
  114. /**
  115. * 用户阅读状态修改
  116. */
  117. @PostMapping("/send-allRead")
  118. @ApiOperationSupport(order = 9)
  119. @ApiOperation(value = "一键全部已读", notes = "")
  120. public R allRead() {
  121. Long userId = AuthUtil.getUserId();
  122. if (userId == -1L) {
  123. return R.fail("获取用户信息失败!");
  124. }
  125. return R.status(announcementSendService.allRead(userId));
  126. }
  127. /**
  128. * 删除 用户通告阅读标记表
  129. */
  130. @PostMapping("/send-remove")
  131. @ApiOperationSupport(order = 10)
  132. @ApiOperation(value = "发送逻辑删除", notes = "传入ids")
  133. public R removeSend(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
  134. return R.status(announcementSendService.deleteLogic(Func.toLongList(ids)));
  135. }
  136. }