李昊 4 年 前
コミット
ae7edc1867

+ 143 - 0
gx_api/GxPress/Api/GxPress.Api/WebControllers/WebNoticeController.cs

@@ -0,0 +1,143 @@
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using GxPress.Auth;
+using GxPress.Common.Page;
+using GxPress.Repository.Interface;
+using GxPress.Request.Notice;
+using GxPress.Result.Notice;
+using GxPress.Service.Interface.Notice;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+namespace GxPress.Api.WebControllers
+{
+    /// <summary>
+    /// 通知
+    /// </summary>
+    [Route("api/web/notice")]
+    [ApiController]
+    [Authorize]
+    public class WebNoticeController
+    {
+        private readonly INoticeRepository _noticeRepository;
+        private readonly INoticeService _noticeService;
+        private readonly ILoginContext _loginContext;
+
+        public WebNoticeController(INoticeRepository noticeRepository, INoticeService noticeService, ILoginContext loginContext)
+        {
+            _noticeRepository = noticeRepository;
+            _noticeService = noticeService;
+            _loginContext = loginContext;
+        }
+
+        /// <summary>
+        /// 添加通知
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPut("add")]
+        public async Task<bool> Insert(NoticeInRequest request)
+        {
+            request.UserId = _loginContext.AccountId;
+            var boolValue = await _noticeService.InsertAsync(request);
+            return boolValue;
+        }
+
+        /// <summary>
+        /// 自己删除
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpDelete("delete")]
+        public async Task<bool> Delete(NoticeDeRequest request)
+        {
+            return await _noticeRepository.DeleteAsync(request);
+        }
+        /// <summary>
+        /// 获取通知详情
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpGet("app-detail/{id}")]
+        public async Task<Result.Notice.NoticeDetailResult> GetNoticeDetailResult(int id)
+        {
+            return await _noticeService.GetNoticeDetailAsync(id, _loginContext.AccountId);
+        }
+
+        /// <summary>
+        /// app通知分页列表
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost("list-page")]
+        public async Task<PagedList<NoticeListPageResult>> GetNoticeListPage(NoticePageSearchRequest request)
+        {
+            request.UserId = _loginContext.AccountId;
+            return await _noticeService.GetNoticeListPageAsync(request);
+        }
+        /// <summary>
+        /// 恢复删除通知
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost("recover")]
+        public async Task<bool> RecoverDelete(NoticeDeRequest request)
+        {
+            return await _noticeRepository.RecoverDeleteAsync(request);
+        }
+        /// <summary>
+        /// 详情
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpGet("detail/{id}")]
+        public async Task<NoticeEditDetailResult> Detail(int id)
+        {
+            return await _noticeService.NoticeEditDetailAsync(id);
+        }
+
+        /// <summary>
+        /// 详情 web专属
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpGet("web-detail/{id}")]
+        [AllowAnonymous]
+        public async Task<NoticeEditDetailResult> WebDetail(int id)
+        {
+            return await _noticeService.NoticeEditDetailAsync(id);
+        }
+        /// <summary>
+        /// 修改详情
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost("edit")]
+        public async Task<bool> Edit([FromBody] NoticeUpRequest request)
+        {
+            // request.HtmlContent = StringUtils.RemoveEmoji(request.HtmlContent);
+            // request.Content = StringUtils.RemoveEmoji(request.Content);
+            request.UserId = _loginContext.AccountId;
+            return await _noticeService.NoticeUpAsync(request);
+        }
+        /// <summary>
+        /// 查询通知已读未读信息
+        /// </summary>
+        /// <param name="request"></param>
+        /// <returns></returns>
+        [HttpPost("read")]
+        public async Task<IEnumerable<NoticeReadListResult>> NoticeReadList(NoticeReadListRequest request)
+        {
+            return await _noticeService.NoticeReadListAsync(request);
+        }
+        /// <summary>
+        /// 撤销通知
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpPut("recall/{id}")]
+        public async Task<bool> RecallAsync(int id)
+        {
+            return await _noticeService.RecallAsync(id);
+        }
+    }
+}

+ 5 - 0
gx_api/GxPress/Model/GxPress.Result/Notice/NoticeListPageResult.cs

@@ -110,5 +110,10 @@ namespace GxPress.Result.Notice
         /// </summary>
         /// <value></value>
         public int SourceId { get; set; }
+         /// <summary>
+        ///  5 通知 6站内信 15 我审批的 16 我发出的 17 抄送我的
+        /// </summary>
+        /// <value></value>
+        public int TypeValue { get; set; }
     }
 }

+ 1 - 0
gx_api/GxPress/Repository/GxPress.Repository.Implement/NoticeRepository.cs

@@ -479,6 +479,7 @@ namespace GxPress.Repository.Implement
                     (noticeListPageResult, notice, user, noticeAddressee) =>
                     {
                         noticeListPageResult.Title = notice != null ? notice.Title : "";
+                        noticeListPageResult.TypeValue=notice != null ? notice.TypeValue :0;
                         noticeListPageResult.Content = notice != null ? notice.Content : "[]";
                         noticeListPageResult.UserName = user != null ? user.Name : "";
                         noticeListPageResult.SourceId = notice != null ? notice.SourceId : 0;