xf 3 months ago
parent
commit
e49a03033a

+ 22 - 3
src/Hotline.Api/Controllers/KnowledgeController.cs

@@ -417,6 +417,23 @@ namespace Hotline.Api.Controllers
             }
         }
 
+        /// <summary>
+        /// 批量更新公开状态(new)
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost("publish-batch")]
+        public async Task PublishBatch([FromBody] PublishBatchRequest request)
+        {
+            var kns = request.KnowledgeIds.Select(d => new Knowledge
+            {
+                Id = d,
+                IsPublic = request.IsPublic
+            }).ToList();
+            await _knowledgeRepository.Updateable(kns)
+                .UpdateColumns(d => d.IsPublic)
+                .ExecuteCommandAsync(HttpContext.RequestAborted);
+        }
+
         /// <summary>
         /// 批量审核
         /// </summary>
@@ -1732,11 +1749,12 @@ namespace Hotline.Api.Controllers
         public async Task<PagedDto<KnowledgeApproveDto>> QueryKnowledgeApprovePaged([FromQuery] QueryKnowledgeApprovePagedRequest request)
         {
             var query = _knowledgeApproRepository.Queryable()
+                .Includes(d=>d.Knowledge)
                 .Includes(d => d.Creator);
             if (request.HasApproved)
             {
                 //已审批
-                query.Includes(d => d.Approver)
+                query//.Includes(d => d.Approver)
                     .Where(d =>
                     d.ApproverId == _sessionContext.RequiredUserId
                     && d.KnowledgeApproveStatus != EKnowledgeApproveStatus.Unhandle);
@@ -1761,8 +1779,9 @@ namespace Hotline.Api.Controllers
         {
             var approves = await _knowledgeApproRepository.Queryable()
                 .Includes(d => d.Creator)
-                .Includes(d=>d.Approver)
-                .Where(d=>d.KnowledgeId == knowledgeId)
+                .Includes(d => d.Approver)
+                .Where(d => d.KnowledgeId == knowledgeId)
+                .OrderBy(d => d.CreationTime)
                 .ToListAsync(HttpContext.RequestAborted);
 
             return _mapper.Map<IReadOnlyList<KnowledgeApproveDto>>(approves);

+ 10 - 0
src/Hotline.Share/Dtos/Knowledge/QueryKnowledgeApprovePagedRequest.cs

@@ -14,4 +14,14 @@ namespace Hotline.Share.Dtos.Knowledge
         /// </summary>
         public bool HasApproved { get; set; }
     }
+
+    /// <summary>
+    /// 批量更新公开状态
+    /// </summary>
+    public record PublishBatchRequest
+    {
+        public List<string> KnowledgeIds { get; set; }
+
+        public bool IsPublic { get; set; }
+    }
 }

+ 3 - 1
src/Hotline/KnowledgeBase/KnowledgeDomainService.cs

@@ -391,7 +391,6 @@ namespace Hotline.KnowledgeBase
         /// <returns></returns>
         public async Task<Knowledge> AddKnowledgeAsync(AddKnowledgeDto dto, CancellationToken cancellationToken)
         {
-            //add kn
             var kn = _mapper.Map<Knowledge>(dto);
             kn.SourceOrganizeId = _sessionContext.RequiredOrgId;
             var any = await _knowledgeRepository.Queryable().Where(x => x.Status == EKnowledgeStatus.OnShelf && x.Title == kn.Title).AnyAsync();
@@ -475,5 +474,8 @@ namespace Hotline.KnowledgeBase
 
             return knowledge;
         }
+
+
+        
     }
 }