ソースを参照

泸州门户对外提供接口、接口文档

libin 2 ヶ月 前
コミット
72a22cd3ee

+ 71 - 59
src/Hotline.Api/Controllers/FwThirdController.cs

@@ -462,8 +462,10 @@ namespace Hotline.Api.Controllers
 
         #region 知识库
 
+        #region 知识库分类
+
         /// <summary>
-        /// 获取知识库分类
+        /// 知识库分类
         /// </summary>
         /// <returns></returns>
         [HttpPost("getknowledgetype")]
@@ -494,63 +496,73 @@ namespace Hotline.Api.Controllers
             return rsp;
         }
 
-        ///// <summary>
-        ///// 知识库查询
-        ///// </summary>
-        ///// <param name="dto"></param>
-        ///// <returns></returns>
-        //[HttpPost("getknowledgelist")]
-        //public async Task<PagedDto<KnowledgeInfoDto>> GetKnowledgeList([FromBody] QueryKnowledgeList dto)
-        //{
-        //    var typeSpliceName = string.Empty;
-        //    if (!string.IsNullOrEmpty(dto.KnowledgeTypeId))
-        //    {
-        //        var type = await _knowledgeTypeRepository.GetAsync(x => x.Name == dto.KnowledgeTypeId);
-        //        typeSpliceName = type?.SpliceName;
-        //    }
-
-        //    var typeSpliceNameTags = string.Empty;
-        //    if (!string.IsNullOrEmpty(dto.KnowledgeBaseTags))
-        //    {
-        //        var type = await _knowledgeWordRepository.GetAsync(x => x.Tag == dto.KnowledgeBaseTags && x.IsEnable == 1);
-        //        typeSpliceNameTags = type?.Id;
-        //    }
-
-        //    var (total, items) = await _knowledgeRepository.Queryable()
-        //        .Where(p => p.IsPublic == true && p.Status == EKnowledgeStatus.OnShelf)
-        //        .WhereIF(!string.IsNullOrEmpty(dto.Title), p => p.Title.Contains(dto.Title))
-        //        .WhereIF(!string.IsNullOrEmpty(typeSpliceNameTags), p => SqlFunc.JsonArrayAny(p.Keywords, typeSpliceNameTags) == true)
-        //        .WhereIF(!string.IsNullOrEmpty(typeSpliceName), x => x.KnowledgeType.Any(t => t.KnowledgeTypeSpliceName.EndsWith(typeSpliceName)))
-        //        .OrderByDescending(p => p.CreationTime)
-        //        .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
-
-        //    var data = new PagedDto<KnowledgeInfoDto>(total, _mapper.Map<IReadOnlyList<KnowledgeInfoDto>>(items));
-        //    return data;
-        //}
-
-        ///// <summary>
-        ///// 获取知识库详情
-        ///// </summary>
-        ///// <param name="dto"></param>
-        ///// <returns></returns>
-        //[HttpPost("getknowledgeinfo")]
-        //public async Task<KnowledgeInfoDto> GetKnowledgeInfo([FromBody] QueryKnowledgeInfo dto)
-        //{
-        //    var data = await _knowledgeRepository.GetAsync(p => p.Id == dto.Id, HttpContext.RequestAborted);
-        //    KnowledgeInfoDto detailsDto = null;
-        //    if (data != null)
-        //    {
-        //        detailsDto = _mapper.Map<KnowledgeInfoDto>(data);
-
-        //        if (detailsDto != null && !string.IsNullOrEmpty(detailsDto.Content))
-        //            data.Content = _bulletinApplication.GetSiteUrls(data.Content);
-        //    }
-        //    else
-        //    {
-        //        detailsDto = new();
-        //    }
-        //    return detailsDto;
-        //}
+        #endregion
+
+        #region 知识库查询
+
+        /// <summary>
+        /// 知识库查询
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost("getknowledgelist")]
+        public async Task<PagedDto<KnowledgeInfoThirdDto>> GetKnowledgeList([FromBody] QueryKnowledgeList dto)
+        {
+            var typeSpliceName = string.Empty;
+            if (!string.IsNullOrEmpty(dto.KnowledgeTypeId))
+            {
+                var type = await _knowledgeTypeRepository.GetAsync(x => x.Name == dto.KnowledgeTypeId);
+                typeSpliceName = type?.SpliceName;
+            }
+
+            var typeSpliceNameTags = string.Empty;
+            if (!string.IsNullOrEmpty(dto.KnowledgeBaseTags))
+            {
+                var type = await _knowledgeWordRepository.GetAsync(x => x.Tag == dto.KnowledgeBaseTags && x.IsEnable == 1);
+                typeSpliceNameTags = type?.Id;
+            }
+
+            var (total, items) = await _knowledgeRepository.Queryable()
+                .Where(p => p.IsPublic == true && p.Status == EKnowledgeStatus.OnShelf)
+                .WhereIF(!string.IsNullOrEmpty(dto.Title), p => p.Title.Contains(dto.Title))
+                .WhereIF(!string.IsNullOrEmpty(typeSpliceNameTags), p => SqlFunc.JsonArrayAny(p.Keywords, typeSpliceNameTags) == true)
+                .WhereIF(!string.IsNullOrEmpty(typeSpliceName), x => x.KnowledgeType.Any(t => t.KnowledgeTypeSpliceName.EndsWith(typeSpliceName)))
+                .OrderByDescending(p => p.CreationTime)
+                .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
+
+            var data = new PagedDto<KnowledgeInfoThirdDto>(total, _mapper.Map<IReadOnlyList<KnowledgeInfoThirdDto>>(items));
+            return data;
+        }
+
+        #endregion
+
+        #region 知识库详情
+
+        /// <summary>
+        /// 知识库详情
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost("getknowledgeinfo")]
+        public async Task<KnowledgeInfoThirdDto> GetKnowledgeInfo([FromBody] QueryKnowledgeInfo dto)
+        {
+            var data = await _knowledgeRepository.GetAsync(p => p.Id == dto.Id, HttpContext.RequestAborted);
+            KnowledgeInfoThirdDto detailsDto = null;
+            if (data != null)
+            {
+                detailsDto = _mapper.Map<KnowledgeInfoThirdDto>(data);
+
+                if (detailsDto != null && !string.IsNullOrEmpty(detailsDto.Content))
+                    data.Content = _bulletinApplication.GetSiteUrls(data.Content);
+            }
+            else
+            {
+                detailsDto = new();
+            }
+            return detailsDto;
+        }
+
+        #endregion
 
         #endregion
 
@@ -644,7 +656,7 @@ namespace Hotline.Api.Controllers
         /// <param name="dto"></param>
         /// <returns></returns>
         [HttpPost("uploadfiles")]
-        public async Task<GetResultDto> uploadfiles([FromForm] IFormFile fileData)
+        public async Task<GetResultDto> uploadfiles(IFormFile fileData)
         {
             if (fileData == null || fileData.Length == 0)
             {

+ 56 - 0
src/Hotline.Share/Dtos/WebPortal/QueryKnowledgeList.cs

@@ -103,4 +103,60 @@ namespace Hotline.Share.Dtos.WebPortal
         /// </summary>
         public DateTime? CreationTime { get; set; }
     }
+
+
+    /// <summary>
+    /// 知识实体
+    /// </summary>
+    public class KnowledgeInfoThirdDto
+    {
+        /// <summary>
+        /// id
+        /// </summary>
+        public string Id { get; set; }
+        /// <summary>
+        /// 标题
+        /// </summary>
+       	public string? Title { get; set; }
+
+        /// <summary>
+        /// 内容
+        /// </summary>
+        public string? Content { get; set; }
+
+        /// <summary>
+        /// 浏览量
+        /// </summary>
+        public int PageView { get; set; } = 0;
+
+        /// <summary>
+        /// 附件
+        /// </summary>
+        public List<FileJson>? FileJson { get; set; }
+
+        /// <summary>
+        /// 搜索量
+        /// </summary>
+        public int? SearchNum { get; set; } = 0;
+
+        /// <summary>
+        /// 评分
+        /// </summary>
+        public decimal? Score { get; set; } = decimal.Zero;
+
+        /// <summary>
+        /// 评论数
+        /// </summary>
+        public int? CommentNum { get; set; } = 0;
+
+        /// <summary>
+        /// 创建部门
+        /// </summary>
+        public string? CreatorOrgName { get; set; }
+
+        /// <summary>
+        /// 创建时间
+        /// </summary>
+        public DateTime? CreationTime { get; set; }
+    }
 }