|
@@ -277,7 +277,9 @@ namespace Hotline.Api.Controllers
|
|
|
var collect = await _knowledgeCollectRepository.GetAsync(x => x.KnowledgeId == Id && x.CreatorId == _sessionContext.UserId);
|
|
|
if (collect != null)
|
|
|
knowledgeShowInfoDto.Collect = _mapper.Map<KnowledgeCollectDto>(collect);
|
|
|
-
|
|
|
+ var knowledges = await _knowledgeRepository.Queryable().In(x=>x.Id,knowledge.Knowledges).ToListAsync();
|
|
|
+ if (knowledges.Any())
|
|
|
+ knowledgeShowInfoDto.Knowledges = _mapper.Map<List<KnowledgeDto>>(knowledges);
|
|
|
if (IsAddPv == true)
|
|
|
_mediator.Publish(new GetKnowledgeInfoNotify(knowledge));
|
|
|
return knowledgeShowInfoDto;
|
|
@@ -362,13 +364,18 @@ namespace Hotline.Api.Controllers
|
|
|
[HttpGet]
|
|
|
public async Task<PagedDto<KnowledgeDataDto>> GetKnowList([FromQuery] KnowPagedListDto pagedDto)
|
|
|
{
|
|
|
- var type = new KnowledgeType();
|
|
|
- var hotspot = new Hotspot();
|
|
|
- var organize = new SystemOrganize();
|
|
|
+ var typeSpliceName = string.Empty;
|
|
|
+ var hotspotHotSpotFullName = string.Empty;
|
|
|
if (!string.IsNullOrEmpty(pagedDto.KnowledgeTypeId))
|
|
|
- type = await _knowledgeTypeRepository.GetAsync(x => x.Id == pagedDto.KnowledgeTypeId);
|
|
|
+ {
|
|
|
+ var type = await _knowledgeTypeRepository.GetAsync(x => x.Id == pagedDto.KnowledgeTypeId);
|
|
|
+ typeSpliceName = type?.SpliceName;
|
|
|
+ }
|
|
|
if (!string.IsNullOrEmpty(pagedDto.HotspotId))
|
|
|
- hotspot = await _hotspotTypeRepository.GetAsync(x => x.Id == pagedDto.HotspotId);
|
|
|
+ {
|
|
|
+ var hotspot = await _hotspotTypeRepository.GetAsync(x => x.Id == pagedDto.HotspotId);
|
|
|
+ hotspotHotSpotFullName = hotspot?.HotSpotFullName;
|
|
|
+ }
|
|
|
var (total, temp) = await _knowledgeRepository.Queryable()
|
|
|
.Includes(x => x.User)
|
|
|
.Includes(x => x.SystemOrganize)
|
|
@@ -379,8 +386,8 @@ namespace Hotline.Api.Controllers
|
|
|
.WhereIF(pagedDto.Status.HasValue, x => x.Status == pagedDto.Status)
|
|
|
.WhereIF(pagedDto.IsPublic.HasValue, x => x.IsPublic == pagedDto.IsPublic)
|
|
|
.WhereIF(!string.IsNullOrEmpty(pagedDto.Summary), x => x.Summary != null && x.Summary.Contains(pagedDto.Summary!))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(pagedDto.KnowledgeTypeId), x => type != null && x.KnowledgeType.SpliceName.EndsWith(type.SpliceName))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(pagedDto.HotspotId), x => hotspot != null && x.HotspotType.HotSpotFullName.EndsWith(hotspot.HotSpotFullName))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(typeSpliceName), x => x.KnowledgeType.SpliceName.EndsWith(typeSpliceName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(hotspotHotSpotFullName), x => x.HotspotType.HotSpotFullName.EndsWith(hotspotHotSpotFullName!))
|
|
|
.WhereIF(!string.IsNullOrEmpty(pagedDto.CreateOrgId), x => x.HotspotType.CreatorId != null && x.HotspotType.CreatorId.EndsWith(pagedDto.CreateOrgId!))
|
|
|
.OrderByDescending(d => d.CreationTime)
|
|
|
//转分页数据
|
|
@@ -398,13 +405,18 @@ namespace Hotline.Api.Controllers
|
|
|
[HttpGet("knowretrieval")]
|
|
|
public async Task<PagedDto<KnowledgeRetrievalDataDto>> KnowRetrieval([FromQuery] KnowledgeRetrievalPagedListDto pagedDto)
|
|
|
{
|
|
|
- var type = new KnowledgeType();
|
|
|
- var hotspot = new Hotspot();
|
|
|
- var organize = new SystemOrganize();
|
|
|
+ var typeSpliceName = string.Empty;
|
|
|
+ var hotspotHotSpotFullName = string.Empty;
|
|
|
if (!string.IsNullOrEmpty(pagedDto.KnowledgeTypeId))
|
|
|
- type = await _knowledgeTypeRepository.GetAsync(x => x.Id == pagedDto.KnowledgeTypeId);
|
|
|
+ {
|
|
|
+ var type = await _knowledgeTypeRepository.GetAsync(x => x.Id == pagedDto.KnowledgeTypeId);
|
|
|
+ typeSpliceName = type?.SpliceName;
|
|
|
+ }
|
|
|
if (!string.IsNullOrEmpty(pagedDto.HotspotId))
|
|
|
- hotspot = await _hotspotTypeRepository.GetAsync(x => x.Id == pagedDto.HotspotId);
|
|
|
+ {
|
|
|
+ var hotspot = await _hotspotTypeRepository.GetAsync(x => x.Id == pagedDto.HotspotId);
|
|
|
+ hotspotHotSpotFullName = hotspot?.HotSpotFullName;
|
|
|
+ }
|
|
|
var sugar = _knowledgeRepository
|
|
|
.Queryable()
|
|
|
.Includes(x => x.User)
|
|
@@ -415,9 +427,9 @@ namespace Hotline.Api.Controllers
|
|
|
.WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.All && !string.IsNullOrEmpty(pagedDto.Keyword), d => d.Title.Contains(pagedDto.Keyword!) || d.Content.Contains(pagedDto.Keyword!))// || d.Additions.Contains(pagedDto.Keyword)
|
|
|
.WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Title && !string.IsNullOrEmpty(pagedDto.Keyword), d => d.Title.Contains(pagedDto.Keyword!))
|
|
|
.WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Content && !string.IsNullOrEmpty(pagedDto.Keyword), d => d.Content.Contains(pagedDto.Keyword!))
|
|
|
- .WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Summary && !string.IsNullOrEmpty(pagedDto.Keyword), d => d.Summary.Contains(pagedDto.Keyword!))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(pagedDto.KnowledgeTypeId), x => type != null && x.KnowledgeType.SpliceName.EndsWith(type.SpliceName))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(pagedDto.HotspotId), x => hotspot != null && x.HotspotType.HotSpotFullName.EndsWith(hotspot.HotSpotFullName))
|
|
|
+ .WhereIF(pagedDto.RetrievalType == EKnowledgeRetrievalType.Summary && !string.IsNullOrEmpty(pagedDto.Keyword), d => d.Summary != null && d.Summary.Contains(pagedDto.Keyword!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(typeSpliceName), x => x.KnowledgeType.SpliceName.EndsWith(typeSpliceName!))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(hotspotHotSpotFullName), x => x.HotspotType.HotSpotFullName.EndsWith(hotspotHotSpotFullName!))
|
|
|
.WhereIF(!string.IsNullOrEmpty(pagedDto.CreateOrgId), x => x.HotspotType.CreatorId != null && x.HotspotType.CreatorId.EndsWith(pagedDto.CreateOrgId!))
|
|
|
.WhereIF(!string.IsNullOrEmpty(pagedDto.Attribution), x => x.Attribution == pagedDto.Attribution!);
|
|
|
switch (pagedDto.Sort)
|