|
@@ -137,25 +137,31 @@ namespace Hotline.Api.Controllers
|
|
|
/// <summary>
|
|
|
/// 知识分类- 获取层级分类
|
|
|
/// </summary>
|
|
|
- /// <param name="IsEnable">不传查询所有</param>
|
|
|
+ /// <param name="isEnable">不传查询所有</param>
|
|
|
/// <returns></returns>
|
|
|
[HttpGet("treelist")]
|
|
|
- public async Task<List<KnowledgeTypeDto>> GetTreeList(bool? IsEnable, string? Attribution)
|
|
|
+ public async Task<List<KnowledgeTypeDto>> GetTreeList(bool? isEnable, string? attribution)
|
|
|
{
|
|
|
var isCenter = _sessionContext.OrgIsCenter;
|
|
|
var query = _knowledgeTypeRepository.Queryable()
|
|
|
- .WhereIF(IsEnable.HasValue, x => x.IsEnable == IsEnable);
|
|
|
+ .WhereIF(isEnable.HasValue, x => x.IsEnable == isEnable);
|
|
|
if (!isCenter)
|
|
|
query.Where(x => x.Orgs.Any(s => s.Id == _sessionContext.RequiredOrgId));
|
|
|
return await query
|
|
|
.Select(x => new KnowledgeTypeDto()
|
|
|
{
|
|
|
Id = x.Id.SelectAll(),
|
|
|
- KnowledgeNum = SqlFunc.Subqueryable<KnowledgeRelationType>()
|
|
|
- .LeftJoin<Knowledge>((kr, k) => kr.KnowledgeId == k.Id)
|
|
|
- .Where((kr, k) => kr.KnowledgeTypeSpliceName.StartsWith(x.SpliceName))
|
|
|
- .WhereIF(!string.IsNullOrEmpty(Attribution) && !isCenter, (kr, k) => k.Attribution == Attribution)
|
|
|
- .DistinctCount(kr => kr.KnowledgeId),
|
|
|
+ //KnowledgeNum = SqlFunc.Subqueryable<KnowledgeRelationType>()
|
|
|
+ // .LeftJoin<Knowledge>((kr, k) => kr.KnowledgeId == k.Id)
|
|
|
+ // .Where((kr, k) => kr.KnowledgeTypeSpliceName.StartsWith(x.SpliceName))
|
|
|
+ // .WhereIF(!string.IsNullOrEmpty(attribution) && !isCenter, (kr, k) => k.Attribution == attribution)
|
|
|
+ // .DistinctCount(kr => kr.KnowledgeId),
|
|
|
+ KnowledgeNum = SqlFunc.Subqueryable<Knowledge>()
|
|
|
+ .InnerJoin<KnowledgeRelationType>((k, krt) => k.Id == krt.KnowledgeId)
|
|
|
+ .InnerJoin<KnowledgeType>((k,krt,t)=>krt.KnowledgeTypeId == t.Id)
|
|
|
+ .Where((k,krt,t)=>t.SpliceName.StartsWith(x.SpliceName))
|
|
|
+ .WhereIF(!string.IsNullOrEmpty(attribution) && !isCenter, (k, krt,t) => k.Attribution == attribution)
|
|
|
+ .DistinctCount(k=>k.Id)
|
|
|
})
|
|
|
.OrderBy(x => x.Sort)
|
|
|
.ToTreeAsync(it => it.children, it => it.ParentId, null, it => it.Id);
|