SysNoticeController.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. package com.ruoyi.web.controller.system;
  2. import java.util.List;
  3. import java.util.Map;
  4. import com.ruoyi.common.core.domain.entity.SysUser;
  5. import com.ruoyi.system.domain.SysNoticeUser;
  6. import com.ruoyi.system.service.ISysNoticeUserService;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.security.access.prepost.PreAuthorize;
  9. import org.springframework.validation.annotation.Validated;
  10. import org.springframework.web.bind.annotation.DeleteMapping;
  11. import org.springframework.web.bind.annotation.GetMapping;
  12. import org.springframework.web.bind.annotation.PathVariable;
  13. import org.springframework.web.bind.annotation.PostMapping;
  14. import org.springframework.web.bind.annotation.PutMapping;
  15. import org.springframework.web.bind.annotation.RequestBody;
  16. import org.springframework.web.bind.annotation.RequestMapping;
  17. import org.springframework.web.bind.annotation.RestController;
  18. import com.ruoyi.common.annotation.Log;
  19. import com.ruoyi.common.core.controller.BaseController;
  20. import com.ruoyi.common.core.domain.AjaxResult;
  21. import com.ruoyi.common.core.page.TableDataInfo;
  22. import com.ruoyi.common.enums.BusinessType;
  23. import com.ruoyi.system.domain.SysNotice;
  24. import com.ruoyi.system.service.ISysNoticeService;
  25. /**
  26. * 公告 信息操作处理
  27. *
  28. * @author ruoyi
  29. */
  30. @RestController
  31. @RequestMapping("/system/notice")
  32. public class SysNoticeController extends BaseController
  33. {
  34. @Autowired
  35. private ISysNoticeService noticeService;
  36. @Autowired
  37. private ISysNoticeUserService noticeUserService;
  38. /**
  39. * 获取通知公告列表
  40. */
  41. @PreAuthorize("@ss.hasPermi('system:notice:list')")
  42. @GetMapping("/list")
  43. public TableDataInfo list(SysNotice notice)
  44. {
  45. startPage();
  46. List<SysNotice> list = noticeService.selectNoticeList(notice);
  47. return getDataTable(list);
  48. }
  49. /**
  50. * 根据通知公告编号获取详细信息
  51. */
  52. @PreAuthorize("@ss.hasPermi('system:notice:query')")
  53. @GetMapping(value = "/{noticeId}")
  54. public AjaxResult getInfo(@PathVariable Long noticeId)
  55. {
  56. return success(noticeService.selectNoticeById(noticeId));
  57. }
  58. /**
  59. * 新增通知公告
  60. */
  61. @PreAuthorize("@ss.hasPermi('system:notice:add')")
  62. @Log(title = "通知公告", businessType = BusinessType.INSERT)
  63. @PostMapping
  64. public AjaxResult add(@Validated @RequestBody SysNotice notice)
  65. {
  66. notice.setCreateBy(getUsername());
  67. return toAjax(noticeService.insertNotice(notice));
  68. }
  69. /**
  70. * 修改通知公告
  71. */
  72. @PreAuthorize("@ss.hasPermi('system:notice:edit')")
  73. @Log(title = "通知公告", businessType = BusinessType.UPDATE)
  74. @PutMapping
  75. public AjaxResult edit(@Validated @RequestBody SysNotice notice)
  76. {
  77. notice.setUpdateBy(getUsername());
  78. return toAjax(noticeService.updateNotice(notice));
  79. }
  80. /**
  81. * 删除通知公告
  82. */
  83. @PreAuthorize("@ss.hasPermi('system:notice:remove')")
  84. @Log(title = "通知公告", businessType = BusinessType.DELETE)
  85. @DeleteMapping("/{noticeIds}")
  86. public AjaxResult remove(@PathVariable Long[] noticeIds)
  87. {
  88. return toAjax(noticeService.deleteNoticeByIds(noticeIds));
  89. }
  90. /**
  91. * 移除人员
  92. */
  93. @PreAuthorize("@ss.hasPermi('system:notice:choose')")
  94. @Log(title = "移除人员", businessType = BusinessType.UPDATE)
  95. @GetMapping("/removeUser/{noticeUserId}")
  96. public AjaxResult removeUser(@PathVariable Long noticeUserId)
  97. {
  98. return toAjax(noticeUserService.deleteNoticeUserById(noticeUserId));
  99. }
  100. /*
  101. 标记为已读
  102. */
  103. @PreAuthorize("@ss.hasPermi('system:notice:choose')")
  104. @Log(title = "标记为已读", businessType = BusinessType.UPDATE)
  105. @PostMapping("/setIsRead")
  106. public AjaxResult setIsRead(@Validated @RequestBody SysNoticeUser notice)
  107. {
  108. notice.setStatus("1");//已读
  109. return toAjax(noticeUserService.updateNoticeUser(notice));
  110. }
  111. /**
  112. * 获取通知公告用户列表
  113. */
  114. @GetMapping("/listUser")
  115. public TableDataInfo listUser(SysNoticeUser notice)
  116. {
  117. startPage();
  118. List<SysNoticeUser> list = noticeUserService.selectNoticeList(notice);
  119. return getDataTable(list);
  120. }
  121. @Log(title = "添加公告用户", businessType = BusinessType.INSERT)
  122. @PostMapping("/addNoticeUser/{noticeId}")
  123. public AjaxResult addNoticeUser(@PathVariable Long noticeId, @RequestBody List<SysUser> users) {
  124. if (users.isEmpty()) {
  125. return warn("请选择用户后再添加!");
  126. }
  127. return success(noticeService.addNoticeUser(noticeId, users));
  128. }
  129. /**
  130. * 删除通知公告
  131. */
  132. @GetMapping("/removeNoticeUser/{noticeIds}")
  133. public AjaxResult removeNoticeUser(@PathVariable Long[] noticeIds)
  134. {
  135. return toAjax(noticeUserService.deleteNoticeUserByIds(noticeIds));
  136. }
  137. /**
  138. * 获取通知公告用户列表
  139. */
  140. @GetMapping("/myNoticeList")
  141. public TableDataInfo myNoticeList(SysNoticeUser notice)
  142. {
  143. startPage();
  144. List<Map<String,Object>> list = noticeUserService.selectMyNoticeList(notice);
  145. return getDataTable(list);
  146. }
  147. }