Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

xf 1 жил өмнө
parent
commit
d5dbc31ac0

+ 5 - 4
src/Hotline.Api/Controllers/KnowledgeController.cs

@@ -280,7 +280,7 @@ namespace Hotline.Api.Controllers
 		{
 			var (total, items) = await _knowledgeRepository.Queryable()
 				.Where(x => x.Status == EKnowledgeStatus.OnShelf)
-				.Where(x => x.ExpiredTime >= DateTime.Now)
+				.Where(x => (x.ExpiredTime != null &&  x.ExpiredTime >= DateTime.Now) || x.ExpiredTime == null)
 				.OrderByDescending(x => x.SearchNum)
 				.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
 			return new PagedDto<KnowledgeDto>(total, _mapper.Map<IReadOnlyList<KnowledgeDto>>(items));
@@ -346,7 +346,7 @@ namespace Hotline.Api.Controllers
 			if (collect != null)
 				knowledgeShowInfoDto.Collect = _mapper.Map<KnowledgeCollectDto>(collect);
 			//关联知识
-			var knowledges = await _knowledgeRepository.Queryable().In(x => x.Id, knowledge.Knowledges).ToListAsync();
+			var knowledges = await _knowledgeRepository.Queryable().In(x => x.Id, knowledge.Knowledges).Where(x=>x.Status == EKnowledgeStatus.OnShelf &&((x.ExpiredTime != null && x.ExpiredTime >= DateTime.Now) || x.ExpiredTime == null)).ToListAsync();
 			if (knowledges.Any())
 				knowledgeShowInfoDto.KnowledgeDtos = _mapper.Map<List<KnowledgeDto>>(knowledges);
 			//关键词
@@ -384,7 +384,8 @@ namespace Hotline.Api.Controllers
 		   //将结果合并成一个表
 		   .MergeTable()
 		   //取第一条数据
-		   .Where(x=>x.IsDeleted ==false && DateTime.Now <= x.ExpiredTime)
+		   .Where(x=>x.IsDeleted ==false )
+		   .Where(x=> (x.ExpiredTime != null && x.ExpiredTime >= DateTime.Now) || x.ExpiredTime == null)
 		   .Where(d => d.index == 1 && d.Status == EKnowledgeStatus.OnShelf)
 		  .ToListAsync();
 			//返回数据
@@ -460,7 +461,7 @@ namespace Hotline.Api.Controllers
 				.Includes(x=>x.SourceOrganize)
 				.Where(x => x.IsDeleted == false)
 				.WhereIF(!string.IsNullOrEmpty(pagedDto.Title), x => x.Title.Contains(pagedDto.Title!))
-				.WhereIF(pagedDto.Status.HasValue, x => x.Status == pagedDto.Status)
+				.WhereIF(pagedDto.Status.HasValue, x => x.Status == pagedDto.Status && ((x.ExpiredTime != null  && x.ExpiredTime > DateTime.Now)|| x.ExpiredTime == null))
 				.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(typeSpliceName), x => x.KnowledgeType.SpliceName.EndsWith(typeSpliceName!))