李昊 4 years ago
parent
commit
8ede908895

+ 10 - 0
gx_api/GxPress/Infrastructure/GxPress.Common/Page/PagedList.cs

@@ -36,5 +36,15 @@ namespace GxPress.Common.Page
         /// </summary>
         /// </summary>
         /// <value></value>
         /// <value></value>
         public string Author { get; set; }
         public string Author { get; set; }
+        /// <summary>
+        /// 是否存在草稿
+        /// </summary>
+        /// <value></value>
+        public bool IsDraft { get; set; }
+        /// <summary>
+        /// 草稿ID
+        /// </summary>
+        /// <value></value>
+        public int DraftId { get; set; }
     }
     }
 }
 }

+ 0 - 4
gx_api/GxPress/Model/GxPress.Request/App/Note/NoteInRequest.cs

@@ -1,7 +1,3 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
 namespace GxPress.Request.App.Note
 namespace GxPress.Request.App.Note
 {
 {
     /// <summary>
     /// <summary>

+ 28 - 0
gx_api/GxPress/Repository/GxPress.Repository.Implement/Note/NoteRepository.cs

@@ -809,6 +809,34 @@ namespace GxPress.Repository.Implement.Note
             query.OrderByDesc(nameof(Entity.Note.Note.CreatedDate));
             query.OrderByDesc(nameof(Entity.Note.Note.CreatedDate));
             return await _repository.GetAllAsync<int>(query);
             return await _repository.GetAllAsync<int>(query);
         }
         }
+        /// <summary>
+        /// 获取用户是否存在草稿
+        /// </summary>
+        /// <param name="userId"></param>
+        /// <returns></returns>
+        public async Task<bool> IsExistsDraftAsync(int userId, bool isTopic)
+        {
+            var query = Q.NewQuery();
+            query.Where(nameof(Entity.Note.Note.UserId), userId);
+            query.Where(nameof(Entity.Note.Note.IsTopic), isTopic);
+            query.Where(nameof(Entity.Note.Note.IsDraft), true);
+            return await _repository.ExistsAsync(query);
+        }
+        /// <summary>
+        /// 获取用户最新的草稿Id
+        /// </summary>
+        /// <param name="userId"></param>
+        /// <returns></returns>
+        public async Task<int> GetNoteIdByDraftAsync(int userId, bool isTopic)
+        {
+            var query = Q.NewQuery();
+            query.Where(nameof(Entity.Note.Note.UserId), userId);
+            query.Where(nameof(Entity.Note.Note.IsTopic), isTopic);
+            query.Where(nameof(Entity.Note.Note.IsDraft), true);
+            query.OrderByDesc(nameof(Entity.Note.Note.CreatedDate));
+            query.Select(nameof(Entity.Note.Note.Id));
+            return await _repository.GetAsync<int>(query);
+        }
     }
     }
 }
 }
 
 

+ 12 - 0
gx_api/GxPress/Repository/GxPress.Repository.Interface/Note/INoteRepository.cs

@@ -81,5 +81,17 @@ namespace GxPress.Repository.Interface.Note
         /// <param name="request"></param>
         /// <param name="request"></param>
         /// <returns></returns>
         /// <returns></returns>
         Task<PagedList<NoteNotFolderPageResult>> NoteTopicDraftPageListAsync(NoteSearchPageListRequest request);
         Task<PagedList<NoteNotFolderPageResult>> NoteTopicDraftPageListAsync(NoteSearchPageListRequest request);
+        /// <summary>
+        /// 获取用户是否存在草稿
+        /// </summary>
+        /// <param name="userId"></param>
+        /// <returns></returns>
+        Task<bool> IsExistsDraftAsync(int userId, bool isTopic);
+        /// <summary>
+        /// 获取用户最新的草稿Id
+        /// </summary>
+        /// <param name="userId"></param>
+        /// <returns></returns>
+        Task<int> GetNoteIdByDraftAsync(int userId, bool isTopic);
     }
     }
 }
 }

+ 2 - 0
gx_api/GxPress/Service/GxPress.Service.Implement/Note/NoteService.cs

@@ -730,6 +730,8 @@ namespace GxPress.Service.Implement.Note
                 if (item.Data == null || item.Data.Count == 0)
                 if (item.Data == null || item.Data.Count == 0)
                     item.Data = new List<ContentJsonData>();
                     item.Data = new List<ContentJsonData>();
             }
             }
+            result.IsDraft = await _noteRepository.IsExistsDraftAsync(request.UserId, false);
+            result.DraftId = await _noteRepository.GetNoteIdByDraftAsync(request.UserId, false);
             return result;
             return result;
         }
         }
     }
     }

+ 6 - 2
gx_api/GxPress/Service/GxPress.Service.Implement/Topic/TopicService.cs

@@ -22,6 +22,7 @@ using GxPress.Service.Interface.Visit;
 using GxPress.Service.Interface.Analyze;
 using GxPress.Service.Interface.Analyze;
 using GxPress.Repository.Interface.DepartmentUser;
 using GxPress.Repository.Interface.DepartmentUser;
 using GxPress.EnumConst;
 using GxPress.EnumConst;
+using GxPress.Repository.Interface.Note;
 
 
 namespace GxPress.Service.Implement.Topic
 namespace GxPress.Service.Implement.Topic
 {
 {
@@ -42,15 +43,15 @@ namespace GxPress.Service.Implement.Topic
         private readonly INoteService _noteService;
         private readonly INoteService _noteService;
         private readonly IMiddleRepository _middleRepository;
         private readonly IMiddleRepository _middleRepository;
         private readonly IVisitRepository _visitRepository;
         private readonly IVisitRepository _visitRepository;
-
         private readonly IVisitService _visitService;
         private readonly IVisitService _visitService;
+        private readonly INoteRepository noteRepository;
         public TopicService(ITopicRepository topicRepository, IUserRepository userRepository,
         public TopicService(ITopicRepository topicRepository, IUserRepository userRepository,
             ITopicAddresseeRepository topicAddresseeRepository,
             ITopicAddresseeRepository topicAddresseeRepository,
             ITopicGroupRepository topicGroupRepository,
             ITopicGroupRepository topicGroupRepository,
             ITopicGroupUserRepository topicGroupUserRepository, IAnalyzeService analyzeService,
             ITopicGroupUserRepository topicGroupUserRepository, IAnalyzeService analyzeService,
             ICommentRepository commentRepository, IMapper mapper, IDepartmentRepository departmentRepository,
             ICommentRepository commentRepository, IMapper mapper, IDepartmentRepository departmentRepository,
             IGroupUserRepository groupUserRepository, IFolderUserRepository folderUserRepository,
             IGroupUserRepository groupUserRepository, IFolderUserRepository folderUserRepository,
-            INoteService noteService, IMiddleRepository middleRepository, IVisitRepository visitRepository, IVisitService visitService, IDepartmentUserRepository departmentUserRepository)
+            INoteService noteService, IMiddleRepository middleRepository, IVisitRepository visitRepository, IVisitService visitService, IDepartmentUserRepository departmentUserRepository, INoteRepository noteRepository)
         {
         {
             _topicRepository = topicRepository;
             _topicRepository = topicRepository;
             _userRepository = userRepository;
             _userRepository = userRepository;
@@ -68,6 +69,7 @@ namespace GxPress.Service.Implement.Topic
             _visitRepository = visitRepository;
             _visitRepository = visitRepository;
             _visitService = visitService;
             _visitService = visitService;
             this.departmentUserRepository = departmentUserRepository;
             this.departmentUserRepository = departmentUserRepository;
+            this.noteRepository = noteRepository;
         }
         }
 
 
 
 
@@ -587,6 +589,8 @@ namespace GxPress.Service.Implement.Topic
                     IsSystemDefault = true
                     IsSystemDefault = true
                 });
                 });
             }
             }
+            result.IsDraft = await noteRepository.IsExistsDraftAsync(request.UserId, true);
+            result.DraftId = await noteRepository.GetNoteIdByDraftAsync(request.UserId, true);
             return result;
             return result;
         }
         }
         /// <summary>
         /// <summary>