Bladeren bron

Merge branch 'refactor/knowledge' into dev

xf 4 maanden geleden
bovenliggende
commit
6dc078995d

+ 4 - 4
src/Hotline.Api/Controllers/KnowledgeController.cs

@@ -2085,10 +2085,10 @@ namespace Hotline.Api.Controllers
                     default:
                         throw new ArgumentOutOfRangeException();
                 }
-                approve.ApproveOpinion = request.Opinion;
-                approve.KnowledgeApproveStatus = request.IsSuccess 
-                    ? EKnowledgeApproveStatus.Successed 
-                    : EKnowledgeApproveStatus.Failed;
+                approve.Approve(_sessionContext.RequiredUserId, request.Opinion,
+                    request.IsSuccess
+                        ? EKnowledgeApproveStatus.Successed
+                        : EKnowledgeApproveStatus.Failed);
             }
 
             //var kns = approves.Select(d => d.Knowledge).ToList();

+ 8 - 4
src/Hotline.Application/Knowledge/KnowApplication.cs

@@ -109,16 +109,20 @@ namespace Hotline.Application.Knowledge
                     switch (pagedDto.ModuleCode)
                     {
                         case "add":
-                            query.Where(d => d.KnowledgeApproves.Any(x => x.KnowledgeApproveType == EKnowledgeApproveType.Add));
+                            query.Where(d => d.KnowledgeApproves.Any(x => x.KnowledgeApproveType == EKnowledgeApproveType.Add 
+                                                                          && x.KnowledgeApproveStatus == EKnowledgeApproveStatus.Unhandle));
                             break;
                         case "update":
-                            query.Where(d => d.KnowledgeApproves.Any(x => x.KnowledgeApproveType == EKnowledgeApproveType.Update));
+                            query.Where(d => d.KnowledgeApproves.Any(x => x.KnowledgeApproveType == EKnowledgeApproveType.Update
+                                                                          && x.KnowledgeApproveStatus == EKnowledgeApproveStatus.Unhandle));
                             break;
                         case "delete":
-                            query.Where(d => d.KnowledgeApproves.Any(x => x.KnowledgeApproveType == EKnowledgeApproveType.Delete));
+                            query.Where(d => d.KnowledgeApproves.Any(x => x.KnowledgeApproveType == EKnowledgeApproveType.Delete
+                                                                          && x.KnowledgeApproveStatus == EKnowledgeApproveStatus.Unhandle));
                             break;
                         case "offshelf":
-                            query.Where(d => d.KnowledgeApproves.Any(x => x.KnowledgeApproveType == EKnowledgeApproveType.OffShelf));
+                            query.Where(d => d.KnowledgeApproves.Any(x => x.KnowledgeApproveType == EKnowledgeApproveType.OffShelf
+                                                                          && x.KnowledgeApproveStatus == EKnowledgeApproveStatus.Unhandle));
                             break;
                     }
                     break;

+ 11 - 0
src/Hotline/KnowledgeBase/KnowledgeApprove.cs

@@ -65,5 +65,16 @@ namespace Hotline.KnowledgeBase
         /// </summary>
         [Navigate(NavigateType.OneToOne, nameof(ApproverId))]
         public User Approver { get; set; }
+
+        #region method
+
+        public void Approve(string approverId, string approveOpinion, EKnowledgeApproveStatus status)
+        {
+            ApproverId = approverId;
+            ApproveOpinion = approveOpinion;
+            KnowledgeApproveStatus = status;
+            ApproveTime = DateTime.Now;
+        }
+        #endregion
     }
 }