|
@@ -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)
|
|
|
{
|