|
@@ -12,7 +12,9 @@ using Hotline.Share.Dtos.Knowledge;
|
|
|
using Hotline.Share.Enums.KnowledgeBase;
|
|
|
using MapsterMapper;
|
|
|
using MediatR;
|
|
|
+using Microsoft.AspNetCore.Authorization;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
+using Microsoft.IdentityModel.Tokens;
|
|
|
using SqlSugar;
|
|
|
using XF.Domain.Authentications;
|
|
|
using XF.Domain.Exceptions;
|
|
@@ -233,7 +235,7 @@ namespace Hotline.Api.Controllers
|
|
|
/// <param name="workDto"></param>
|
|
|
/// <returns></returns>
|
|
|
[Permission(EPermission.KnowledgeDelete)]
|
|
|
- [HttpDelete("knowdelete")]
|
|
|
+ [HttpPost("knowdelete")]
|
|
|
public async Task KnowledgeDelete(string Id, [FromBody] StartWorkflowDto workDto)
|
|
|
{
|
|
|
var know = await _knowledgeRepository.GetAsync(Id, HttpContext.RequestAborted);
|
|
@@ -333,7 +335,7 @@ namespace Hotline.Api.Controllers
|
|
|
/// <returns></returns>
|
|
|
[Permission(EPermission.KnowledgeAllList)]
|
|
|
[HttpGet()]
|
|
|
- public async Task<PagedDto<KnowledgeDataDto>> GetKnowList([FromBody] KnowPagedListDto pagedDto)
|
|
|
+ public async Task<PagedDto<KnowledgeDataDto>> GetKnowList([FromQuery] KnowPagedListDto pagedDto)
|
|
|
{
|
|
|
return await _knowApplication.GetKnowList(pagedDto);
|
|
|
}
|
|
@@ -348,7 +350,7 @@ namespace Hotline.Api.Controllers
|
|
|
/// <returns></returns>
|
|
|
[Permission(EPermission.KnowledgeRetrieval)]
|
|
|
[HttpGet("knowretrieval")]
|
|
|
- public async Task<PagedDto<KnowledgeRetrievalDataDto>> KnowRetrieval([FromBody] KnowledgeRetrievalPagedListDto pagedDto)
|
|
|
+ public async Task<PagedDto<KnowledgeRetrievalDataDto>> KnowRetrieval([FromQuery] KnowledgeRetrievalPagedListDto pagedDto)
|
|
|
{
|
|
|
if (string.IsNullOrEmpty(pagedDto.Keyword))
|
|
|
throw UserFriendlyException.SameMessage("请输入关键字");
|
|
@@ -357,10 +359,6 @@ namespace Hotline.Api.Controllers
|
|
|
var temp = await _knowledgeRepository
|
|
|
.Queryable(true)
|
|
|
.Where(p => p.Status == EKnowledgeStatus.OnShelf && p.IsDeleted == false)
|
|
|
- .WhereIF(pagedDto.RetrievalType == null || pagedDto.RetrievalType == EKnowledgeRetrievalType.All, d => d.Title.Contains(pagedDto.Keyword) || d.Content.Contains(pagedDto.Keyword) || d.Additions.Contains(pagedDto.Keyword))
|
|
|
- .WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Title, d => d.Title.Contains(pagedDto.Keyword))
|
|
|
- .WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Content, d => d.Content.Contains(pagedDto.Keyword))
|
|
|
- .WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Enclosure, d => d.Additions.Contains(pagedDto.Keyword))
|
|
|
|
|
|
.Select(o => new
|
|
|
{
|
|
@@ -370,11 +368,19 @@ namespace Hotline.Api.Controllers
|
|
|
o.Title,
|
|
|
o.Summary,
|
|
|
o.Content,
|
|
|
- o.PageView
|
|
|
+ o.PageView,
|
|
|
+ o.Additions
|
|
|
})
|
|
|
-
|
|
|
- .OrderByDescending(p => p.PageView)
|
|
|
- .ToPageListAsync(pagedDto.PageIndex, pagedDto.PageSize, total);
|
|
|
+ //将结果合并成一个表
|
|
|
+ .MergeTable()
|
|
|
+ //取第一条数据
|
|
|
+ .Where(d => d.index == 1)
|
|
|
+ .WhereIF(pagedDto.RetrievalType == null || pagedDto.RetrievalType == EKnowledgeRetrievalType.All, d => d.Title.Contains(pagedDto.Keyword) || d.Content.Contains(pagedDto.Keyword) || d.Additions.Contains(pagedDto.Keyword))
|
|
|
+ .WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Title, d => d.Title.Contains(pagedDto.Keyword))
|
|
|
+ .WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Content, d => d.Content.Contains(pagedDto.Keyword))
|
|
|
+ .WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Enclosure, d => d.Additions.Contains(pagedDto.Keyword))
|
|
|
+ .OrderByDescending(p => p.PageView)
|
|
|
+ .ToPageListAsync(pagedDto.PageIndex, pagedDto.PageSize, total);
|
|
|
|
|
|
return new PagedDto<KnowledgeRetrievalDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeRetrievalDataDto>>(temp));
|
|
|
}
|
|
@@ -387,7 +393,7 @@ namespace Hotline.Api.Controllers
|
|
|
/// <param name="pagedDto"></param>
|
|
|
/// <returns></returns>
|
|
|
[HttpGet("deletelist")]
|
|
|
- public async Task<PagedDto<KnowledgeDataDto>> GetDeleteApplyList([FromBody] KnowledgeDeletelPagedListDto pagedDto)
|
|
|
+ public async Task<PagedDto<KnowledgeDataDto>> GetDeleteApplyList([FromQuery] KnowledgeDeletelPagedListDto pagedDto)
|
|
|
{
|
|
|
var (total, items) = await _knowledgeWorkFlowRepository
|
|
|
.Queryable(true)
|
|
@@ -419,7 +425,7 @@ namespace Hotline.Api.Controllers
|
|
|
/// <returns></returns>
|
|
|
[Permission(EPermission.KnowledgeApprovedAllList)]
|
|
|
[HttpGet("approvedlist")]
|
|
|
- public async Task<PagedDto<KnowledgeApprovalDataDto>> ApprovedList([FromBody] KnowledgeApprovalPagedListDto pagedDto)
|
|
|
+ public async Task<PagedDto<KnowledgeApprovalDataDto>> ApprovedList([FromQuery] KnowledgeApprovalPagedListDto pagedDto)
|
|
|
{
|
|
|
var (total, items) = await _knowledgeWorkFlowRepository
|
|
|
.Queryable(true)
|
|
@@ -443,5 +449,58 @@ namespace Hotline.Api.Controllers
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
+ #region 工单受理,知识库检索
|
|
|
+ /// <summary>
|
|
|
+ /// 获取知识热点词
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("getkeyword")]
|
|
|
+ [AllowAnonymous]
|
|
|
+ public async Task<List<string>> GetKeyWord()
|
|
|
+ {
|
|
|
+ return await _knowledgeDomainService.GetKeyWord();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 工单受理知识检索
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="pagedDto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("knowpopscreen")]
|
|
|
+ [AllowAnonymous]
|
|
|
+ public async Task<PagedDto<KnowledgeRetrievalDataDto>> KnowPopScreen([FromQuery] KnowledgePopScreenPagedListDto pagedDto)
|
|
|
+ {
|
|
|
+ //if (string.IsNullOrEmpty(pagedDto.Keyword)&& string.IsNullOrEmpty(pagedDto.HotspotId))
|
|
|
+ // throw UserFriendlyException.SameMessage("请选择热点或输入关键字");
|
|
|
+
|
|
|
+ RefAsync<int> total = 0;
|
|
|
+ var temp = await _knowledgeRepository
|
|
|
+ .Queryable()
|
|
|
+ .Where(p => p.Status == EKnowledgeStatus.OnShelf && p.IsDeleted == false)
|
|
|
+ .Select(o => new
|
|
|
+ {
|
|
|
+ index = SqlFunc.RowNumber($"{o.Version} desc ", $"{o.Code}"),
|
|
|
+ o.Id,
|
|
|
+ o.Code,
|
|
|
+ o.Title,
|
|
|
+ o.Summary,
|
|
|
+ o.Content,
|
|
|
+ o.PageView,
|
|
|
+ o.Keywords,
|
|
|
+ o.HotspotId
|
|
|
+ })
|
|
|
+ //将结果合并成一个表
|
|
|
+ .MergeTable()
|
|
|
+ //取第一条数据
|
|
|
+ .Where(d => d.index == 1)
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.Keyword), p => p.Title.Contains(pagedDto.Keyword) || p.Keywords.Contains(pagedDto.Keyword))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(pagedDto.HotspotId), p => p.HotspotId == pagedDto.HotspotId)
|
|
|
+ .OrderByDescending(p => p.PageView)
|
|
|
+ .ToPageListAsync(pagedDto.PageIndex, pagedDto.PageSize, total);
|
|
|
+
|
|
|
+ return new PagedDto<KnowledgeRetrievalDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeRetrievalDataDto>>(temp));
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
}
|
|
|
}
|