TANG JIANG 2 жил өмнө
parent
commit
6f383092c4

+ 43 - 9
src/Hotline.Api/Controllers/KnowledgeApplyController.cs

@@ -27,6 +27,7 @@ namespace Hotline.Api.Controllers
         private readonly IKnowApplication _knowApplication;
         private readonly IUserRepository _userRepository;
         private readonly ISystemOrganizeRepository _systemOrganizeRepository;
+        private readonly IKnowledgeDomainService _knowledgeDomainService;
 
         /// <summary>
         /// 
@@ -38,8 +39,9 @@ namespace Hotline.Api.Controllers
         /// <param name="knowApplication"></param>
         /// <param name="userRepository"></param>
         /// <param name="systemOrganizeRepository"></param>
+        /// <param name="knowledgeDomainService"></param>
         public KnowledgeApplyController(IKnowledgeRepository knowledgeRepository, IKnowledgeApplyRepository knowledgeApplyRepository, ISessionContext sessionContext
-            , IMapper mapper, IKnowApplication knowApplication, IUserRepository userRepository, ISystemOrganizeRepository systemOrganizeRepository)
+            , IMapper mapper, IKnowApplication knowApplication, IUserRepository userRepository, ISystemOrganizeRepository systemOrganizeRepository, IKnowledgeDomainService knowledgeDomainService)
         {
             _knowledgeRepository = knowledgeRepository;
             _knowledgeApplyRepository = knowledgeApplyRepository;
@@ -48,6 +50,7 @@ namespace Hotline.Api.Controllers
             _knowApplication = knowApplication;
             _userRepository = userRepository;
             _systemOrganizeRepository = systemOrganizeRepository;
+            _knowledgeDomainService = knowledgeDomainService;
         }
         #endregion
 
@@ -193,21 +196,52 @@ namespace Hotline.Api.Controllers
             if (organize != null)
                 dataKnowledgeApplyDto.CreationBMName = organize.OrgName;
 
-            //这里查询最新的版本
-            if (!string.IsNullOrEmpty(handle.Code))
+            if (handle.Status == EKnowledgeApplyStatus.Handling && handle.KnowledgeApplyType == EApplyType.Update)
             {
-                var knowledge = await _knowledgeRepository
-                     .Queryable()
-                     .Where(p => p.Code == handle.Code && p.IsDeleted == false && (p.Status == EKnowledgeStatus.OnShelf || p.Status == EKnowledgeStatus.OffShelf))
-                     .OrderByDescending(p => p.Version)
-                     .Take(1)
-                     .FirstAsync();
+                var know = await _knowledgeDomainService.KnowledgeInfo(handle.KnowledgeId, HttpContext.RequestAborted);
+                if (know != null)
+                {
+                    var knowledge = await _knowledgeRepository
+                    .Queryable()
+                    .Where(p => p.Code == know.Code && (p.Status == EKnowledgeStatus.OnShelf || p.Status == EKnowledgeStatus.OffShelf))
+                    .OrderByDescending(p => p.Version)
+                    .Take(1)
+                    .FirstAsync();
+                    if (knowledge != null)
+                    {
+                        dataKnowledgeApplyDto.KBID = knowledge.Id;
+                        dataKnowledgeApplyDto.KBTitle = knowledge.Title;
+                        dataKnowledgeApplyDto.KnowledgeId = knowledge.Id;
+                    }
+                }
+            }
+            else if (handle.Status == EKnowledgeApplyStatus.Succeed)
+            {
+                //这里查询对应的版本
+                var knowledge = await _knowledgeRepository.GetAsync(p => p.Id == handle.KnowledgeId, HttpContext.RequestAborted);
                 if (knowledge != null)
                 {
                     dataKnowledgeApplyDto.KBID = knowledge.Id;
                     dataKnowledgeApplyDto.KBTitle = knowledge.Title;
                 }
             }
+
+            ////这里查询最新的版本
+            //if (!string.IsNullOrEmpty(handle.Code))
+            //{
+            //    var knowledge = await _knowledgeRepository
+            //         .Queryable()
+            //         .Where(p => p.Code == handle.Code && p.IsDeleted == false && (p.Status == EKnowledgeStatus.OnShelf || p.Status == EKnowledgeStatus.OffShelf))
+            //         .OrderByDescending(p => p.Version)
+            //         .Take(1)
+            //         .FirstAsync();
+            //    if (knowledge != null)
+            //    {
+            //        dataKnowledgeApplyDto.KBID = knowledge.Id;
+            //        dataKnowledgeApplyDto.KBTitle = knowledge.Title;
+            //    }
+            //}
+
             ////这里查询对应的版本
             //var knowledge = await _knowledgeRepository.GetAsync(p => p.Id == handle.KnowledgeId, HttpContext.RequestAborted);
             //if (knowledge != null)