Browse Source

fix: 下架异常

xf 3 tháng trước cách đây
mục cha
commit
b1d65fbcd3

+ 6 - 1
src/Hotline.Application/Mappers/KnowledgeMapperConfigs.cs

@@ -21,7 +21,11 @@ public class KnowledgeMapperConfigs : IRegister
             .AfterMapping((s, d) => d.KnowledgeTypeText = s.KnowledgeTypes != null && s.KnowledgeTypes.Any()
                 ? string.Join(',', s.KnowledgeTypes.Select(x => x.Name))
                 : string.Empty);
-            ;
+        ;
+
+        config.ForType<KnowledgeBase.Knowledge, KnowledgeDto>()
+            .IgnoreIf((s, d) => s.SourceOrganize == null, d => d.SourceOrganize)
+            .Ignore(d => d.Collect);
 
         config.NewConfig<Hotline.KnowledgeBase.Knowledge, KnowledgeApprovalDataDto>()
             .Map(d => d.CreatorName, x => x.User.Name)
@@ -58,6 +62,7 @@ public class KnowledgeMapperConfigs : IRegister
             .Map(d => d.BeginDate, x => x.OnShelfTime)
             .Map(d => d.DisableDate, x => x.ExpiredTime)
             .Map(d => d.UID, x => x.Code)
+            .IgnoreIf((s, d) => s.FileJson == null, d => d.FileJson)
             ;
 
         config.ForType<KnowledgeRelationTypeDto, KnowledgeType>()

+ 21 - 21
src/Hotline.Share/Dtos/Knowledge/KnowledgeDto.cs

@@ -150,25 +150,25 @@ namespace Hotline.Share.Dtos.Knowledge
         /// </summary>
         public string? Source { get; set; }
 
-        /// <summary>
-        /// 知识分类名称
-        /// </summary>
-        public string KnowledgeTypeText => GetKnowledgeTypeText(KnowledgeType);
-
-		/// <summary>
-		/// 获取知识分类名称
-		/// </summary>
-		/// <returns></returns>
-		public string GetKnowledgeTypeText(List<KnowledgeRelationTypeDto> items)
-        {
-
-	        if (KnowledgeType != null && KnowledgeType.Any())
-	        {
-                var names = KnowledgeType.Select(x => x.KnowledgeTypeName).ToList();
-                return string.Join(",", names);
-			}
-	        return "";
-        }
+  //      /// <summary>
+  //      /// 知识分类名称
+  //      /// </summary>
+  //      public string KnowledgeTypeText => GetKnowledgeTypeText(KnowledgeType);
+
+		///// <summary>
+		///// 获取知识分类名称
+		///// </summary>
+		///// <returns></returns>
+		//public string GetKnowledgeTypeText(List<KnowledgeRelationTypeDto> items)
+  //      {
+
+	 //       if (KnowledgeType != null && KnowledgeType.Any())
+	 //       {
+  //              var names = KnowledgeType.Select(x => x.KnowledgeTypeName).ToList();
+  //              return string.Join(",", names);
+		//	}
+	 //       return "";
+  //      }
 
         /// <summary>
         /// 标签名称
@@ -181,9 +181,9 @@ namespace Hotline.Share.Dtos.Knowledge
         public string Summary { get; set; }
 
         /// <summary>
-        /// 文档状态,默认草稿
+        /// 文档状态
         /// </summary>
-        public EKnowledgeStatus Status { get; set; } = EKnowledgeStatus.Drafts;
+        public EKnowledgeStatus Status { get; set; }
 
         public string StatusText => Status.GetDescription();
         

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

@@ -498,7 +498,11 @@ namespace Hotline.KnowledgeBase
         /// </summary>
         public async Task<Knowledge> OffShelfAsync(OffShelfKnowledgeDto dto, CancellationToken cancellation)
         {
-            var kn = await _knowledgeRepository.GetAsync(dto.Id, cancellation);
+            var kn = await _knowledgeRepository.Queryable()
+                .Includes(d => d.User)
+                .Includes(d => d.HotspotType)
+                .Includes(d => d.SystemOrganize)
+                .FirstAsync(d => d.Id == dto.Id, cancellation);
             if (kn is null) throw new UserFriendlyException("无效知识id");
             if (kn.Status == EKnowledgeStatus.OffShelf) return kn;
             if (kn.Status != EKnowledgeStatus.OnShelf) throw new UserFriendlyException("知识下架失败");