Explorar o código

知识详情查询知识分类数据

xf hai 3 meses
pai
achega
fc3d76314d

+ 16 - 12
src/Hotline.Api/Controllers/KnowledgeController.cs

@@ -275,7 +275,7 @@ namespace Hotline.Api.Controllers
         /// </summary>
         [HttpPost("offshelf")]
         [LogFilter("知识下架")]
-        public Task OffShelf([FromBody] OffShelfKnowledgeDto dto) => 
+        public Task OffShelf([FromBody] OffShelfKnowledgeDto dto) =>
             _knowledgeDomainService.OffShelfAsync(dto, HttpContext.RequestAborted);
 
         /// <summary>
@@ -635,6 +635,7 @@ namespace Hotline.Api.Controllers
         /// </summary>
         /// <param name="Id"></param>
         /// <returns></returns>
+        [Obsolete("请调用info/{Id}")]
         [HttpGet("updateinfo/{Id}")]
         public async Task<KnowledgeInfoDto> KnowledgeUpdateInfo(string Id)
         {
@@ -670,15 +671,18 @@ namespace Hotline.Api.Controllers
         /// <param name="IsAddPv">默认不增加,false不增加,true增加浏览量</param>
         /// <returns></returns>
         [HttpGet("info/{Id}")]
-        public async Task<KnowledgeInfoDto> KnowledgeInfo(string Id, bool? IsAddPv)
+        public async Task<KnowledgeDto> KnowledgeInfo(string Id, bool? IsAddPv)
         {
-            var knowledge = await _knowledgeDomainService.KnowledgeInfo(Id, HttpContext.RequestAborted);
+            var knowledge = await _knowledgeRepository.Queryable()
+                .Includes(x => x.SourceOrganize)
+                .Includes(x => x.KnowledgeTypes)
+                .Includes(x => x.HotspotType)
+                .FirstAsync(p => p.Id == Id, HttpContext.RequestAborted);
             if (knowledge is null)
                 throw UserFriendlyException.SameMessage("知识查询失败!");
-            if (knowledge.Workflow != null)
-                knowledge.IsCanHandle = knowledge.Workflow.IsCanHandle(_sessionContext.RequiredUserId, _sessionContext.RequiredOrgId, _sessionContext.Roles);
+
             //转化
-            var knowledgeShowInfoDto = _mapper.Map<KnowledgeInfoDto>(knowledge);
+            var knowledgeShowInfoDto = _mapper.Map<KnowledgeDto>(knowledge);
 
             if (knowledgeShowInfoDto != null && !string.IsNullOrEmpty(knowledgeShowInfoDto.Content))
                 knowledgeShowInfoDto.Content = _bulletinApplication.GetSiteUrls(knowledgeShowInfoDto.Content);
@@ -689,9 +693,9 @@ namespace Hotline.Api.Controllers
             //	knowledgeShowInfoDto.KnowledgeTypeName = type.SpliceName;
             //	knowledgeShowInfoDto.KnowledgeType = _mapper.Map<KnowledgeTypeDto>(type);
             //}
-            var hot = await _hotspotTypeRepository.GetAsync(knowledge.HotspotId, HttpContext.RequestAborted);
-            if (hot != null)
-                knowledgeShowInfoDto.HotspotName = hot.HotSpotFullName;
+            //var hot = await _hotspotTypeRepository.GetAsync(knowledge.HotspotId, HttpContext.RequestAborted);
+            //if (hot != null)
+            //    knowledgeShowInfoDto.HotspotName = hot.HotSpotFullName;
             //收藏
             var collect = await _knowledgeCollectRepository.GetAsync(x => x.KnowledgeId == Id && x.CreatorId == _sessionContext.UserId);
             if (collect != null)
@@ -1789,9 +1793,9 @@ namespace Hotline.Api.Controllers
             var query = _knowledgeApproRepository.Queryable()
                 .Includes(d => d.Knowledge)
                 .Includes(d => d.Creator)
-                .WhereIF(request.KnowledgeApproveType.HasValue, d=>d.KnowledgeApproveType == request.KnowledgeApproveType)
-                .WhereIF(request.IsPublic.HasValue, d=>d.Knowledge.IsPublic == request.IsPublic)
-                .WhereIF(!string.IsNullOrEmpty(request.Keyword), d=>d.CreatorName == request.Keyword
+                .WhereIF(request.KnowledgeApproveType.HasValue, d => d.KnowledgeApproveType == request.KnowledgeApproveType)
+                .WhereIF(request.IsPublic.HasValue, d => d.Knowledge.IsPublic == request.IsPublic)
+                .WhereIF(!string.IsNullOrEmpty(request.Keyword), d => d.CreatorName == request.Keyword
                 || d.CreatorOrgName == request.Keyword
                 || d.Knowledge.Title == request.Keyword
                 || d.Knowledge.SourceOrganize.Name == request.Keyword)

+ 2 - 0
src/Hotline.Application/Mappers/KnowledgeMapperConfigs.cs

@@ -24,6 +24,8 @@ public class KnowledgeMapperConfigs : IRegister
         ;
 
         config.ForType<KnowledgeBase.Knowledge, KnowledgeDto>()
+            .Map(d=>d.HotspotName,s=>s.HotspotType.HotSpotFullName)
+            .IgnoreIf((s, d) => s.HotspotType == null, d => d.HotspotName)
             .IgnoreIf((s, d) => s.SourceOrganize == null, d => d.SourceOrganize)
             .Ignore(d => d.Collect)
             .AfterMapping((s, d) => d.KnowledgeTypeText = s.KnowledgeTypes != null && s.KnowledgeTypes.Any()

+ 7 - 17
src/Hotline.Share/Dtos/Knowledge/KnowledgeDto.cs

@@ -153,24 +153,8 @@ namespace Hotline.Share.Dtos.Knowledge
         /// <summary>
         /// 知识分类名称
         /// </summary>
-        //public string KnowledgeTypeText => GetKnowledgeTypeText(KnowledgeType);
         public string KnowledgeTypeText { get; set; }
 
-        ///// <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>
@@ -215,6 +199,11 @@ namespace Hotline.Share.Dtos.Knowledge
 
         public DateTime? LastModificationTime { get; set; }
 
+        /// <summary>
+        /// 热点名称
+        /// </summary>
+        public string HotspotName { get; set; }
+
         public bool IsDeleted { get; set; }
 
         /// <summary>
@@ -267,7 +256,8 @@ namespace Hotline.Share.Dtos.Knowledge
 
         public List<FileJson>? FileJson { get; set; }
 
-	}
+        public List<KnowledgeTypeDto> KnowledgeTypes { get; set; }
+    }
 
     public class KnowledgeBaseDto {
 		public DateTime? LastModificationTime { get; set; }