SysNoticeController.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. using Microsoft.AspNetCore.Mvc;
  2. using Microsoft.AspNetCore.SignalR;
  3. using ZR.Model;
  4. using ZR.Model.System;
  5. using ZR.Model.System.Dto;
  6. using ZR.ServiceCore.Signalr;
  7. namespace ZR.Admin.WebApi.Controllers.System
  8. {
  9. /// <summary>
  10. /// 系统通知
  11. /// </summary>
  12. [Route("system/notice")]
  13. [ApiExplorerSettings(GroupName = "sys")]
  14. public class SysNoticeController : BaseController
  15. {
  16. /// <summary>
  17. /// 通知公告表接口
  18. /// </summary>
  19. private readonly ISysNoticeService _SysNoticeService;
  20. private readonly IHubContext<MessageHub> _hubContext;
  21. public SysNoticeController(ISysNoticeService SysNoticeService, IHubContext<MessageHub> hubContext)
  22. {
  23. _SysNoticeService = SysNoticeService;
  24. _hubContext = hubContext;
  25. }
  26. /// <summary>
  27. /// 查询通知公告表列表(移动端用)
  28. /// </summary>
  29. /// <returns></returns>
  30. [HttpGet("queryNotice")]
  31. public IActionResult QueryNotice([FromQuery] SysNoticeQueryDto parm)
  32. {
  33. var response = _SysNoticeService.GetSysNotices();
  34. return SUCCESS(response);
  35. }
  36. /// <summary>
  37. /// 查询通知公告表列表
  38. /// </summary>
  39. /// <returns></returns>
  40. [HttpGet("list")]
  41. [ActionPermissionFilter(Permission = "system:notice:list")]
  42. public IActionResult QuerySysNotice([FromQuery] SysNoticeQueryDto parm)
  43. {
  44. PagedInfo<SysNotice> response = _SysNoticeService.GetPageList(parm);
  45. return SUCCESS(response);
  46. }
  47. /// <summary>
  48. /// 查询通知公告表详情
  49. /// </summary>
  50. /// <param name="NoticeId"></param>
  51. /// <returns></returns>
  52. [HttpGet("{NoticeId}")]
  53. public IActionResult GetSysNotice(int NoticeId)
  54. {
  55. var response = _SysNoticeService.GetFirst(x => x.NoticeId == NoticeId);
  56. return SUCCESS(response);
  57. }
  58. /// <summary>
  59. /// 添加通知公告表
  60. /// </summary>
  61. /// <returns></returns>
  62. [HttpPost]
  63. [ActionPermissionFilter(Permission = "system:notice:add")]
  64. [Log(Title = "发布通告", BusinessType = BusinessType.INSERT, IsSaveRequestData = false)]
  65. public IActionResult AddSysNotice([FromBody] SysNoticeDto parm)
  66. {
  67. var modal = parm.Adapt<SysNotice>().ToCreate(HttpContext);
  68. int result = _SysNoticeService.InsertReturnIdentity(modal);
  69. return SUCCESS(result);
  70. }
  71. /// <summary>
  72. /// 更新通知公告表
  73. /// </summary>
  74. /// <returns></returns>
  75. [HttpPut]
  76. [ActionPermissionFilter(Permission = "system:notice:update")]
  77. [Log(Title = "修改公告", BusinessType = BusinessType.UPDATE, IsSaveRequestData = false)]
  78. public IActionResult UpdateSysNotice([FromBody] SysNoticeDto parm)
  79. {
  80. var model = parm.Adapt<SysNotice>().ToUpdate(HttpContext);
  81. var response = _SysNoticeService.Update(model);
  82. return SUCCESS(response);
  83. }
  84. /// <summary>
  85. /// 发送通知公告表
  86. /// </summary>
  87. /// <returns></returns>
  88. [HttpPut("send/{NoticeId}")]
  89. [ActionPermissionFilter(Permission = "system:notice:update")]
  90. [Log(Title = "发送通知公告", BusinessType = BusinessType.OTHER)]
  91. public IActionResult SendNotice(int NoticeId = 0)
  92. {
  93. if (NoticeId <= 0)
  94. {
  95. throw new CustomException("请求实体不能为空");
  96. }
  97. var response = _SysNoticeService.GetFirst(x => x.NoticeId == NoticeId);
  98. if (response != null && response.Status == 0)
  99. {
  100. _hubContext.Clients.All.SendAsync(HubsConstant.ReceiveNotice, response.NoticeTitle, response.NoticeContent);
  101. }
  102. return SUCCESS(response);
  103. }
  104. /// <summary>
  105. /// 删除通知公告表
  106. /// </summary>
  107. /// <returns></returns>
  108. [HttpDelete("{ids}")]
  109. [ActionPermissionFilter(Permission = "system:notice:delete")]
  110. [Log(Title = "通知公告", BusinessType = BusinessType.DELETE)]
  111. public IActionResult DeleteSysNotice(string ids)
  112. {
  113. int[] idsArr = Tools.SpitIntArrary(ids);
  114. if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
  115. var response = _SysNoticeService.Delete(idsArr);
  116. return SUCCESS(response);
  117. }
  118. /// <summary>
  119. /// 导出通知公告表
  120. /// </summary>
  121. /// <returns></returns>
  122. [Log(Title = "通知公告表", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
  123. [HttpGet("export")]
  124. [ActionPermissionFilter(Permission = "system:notice:export")]
  125. public IActionResult Export([FromQuery] SysNoticeQueryDto parm)
  126. {
  127. parm.PageNum = 1;
  128. parm.PageSize = 100000;
  129. var list = _SysNoticeService.ExportList(parm).Result;
  130. if (list == null || list.Count <= 0)
  131. {
  132. return ToResponse(ResultCode.FAIL, "没有要导出的数据");
  133. }
  134. var result = ExportExcelMini(list, "通知公告表", "通知公告表");
  135. return ExportExcel(result.Item2, result.Item1);
  136. }
  137. }
  138. }