From 8d1e24d0ae7f884f0766cc768f07254fa19a78ab Mon Sep 17 00:00:00 2001
From: wxd <123@qq.com>
Date: Sun, 24 Nov 2024 13:40:54 +0800
Subject: [PATCH] =?UTF-8?q?=E8=AF=8D=E6=9D=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../GetBigtextResultTemplateWithDetailDto.cs | 31 ++++++++++++
.../BigtextResultTemplateAppService.cs | 48 ++++++++++++++++++-
2 files changed, 78 insertions(+), 1 deletion(-)
create mode 100644 src/Shentun.Peis.Application.Contracts/BigtextResultTemplates/GetBigtextResultTemplateWithDetailDto.cs
diff --git a/src/Shentun.Peis.Application.Contracts/BigtextResultTemplates/GetBigtextResultTemplateWithDetailDto.cs b/src/Shentun.Peis.Application.Contracts/BigtextResultTemplates/GetBigtextResultTemplateWithDetailDto.cs
new file mode 100644
index 0000000..2cd84e1
--- /dev/null
+++ b/src/Shentun.Peis.Application.Contracts/BigtextResultTemplates/GetBigtextResultTemplateWithDetailDto.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shentun.Peis.BigtextResultTemplates
+{
+ public class GetBigtextResultTemplateWithDetailDto
+ {
+ ///
+ /// 词条类别名称
+ ///
+ public string BigtextResultTypeName { get; set; }
+
+ ///
+ /// 词条模板名称
+ ///
+ public string BigtextResultTemplateName { get; set; }
+
+ ///
+ /// 词条结论
+ ///
+ public string bigtextResultConclusion { get; set; }
+
+ ///
+ /// 词条描述
+ ///
+ public string bigtextResultDescription { get; set; }
+
+
+ }
+}
diff --git a/src/Shentun.Peis.Application/BigtextResultTemplates/BigtextResultTemplateAppService.cs b/src/Shentun.Peis.Application/BigtextResultTemplates/BigtextResultTemplateAppService.cs
index 4c67e1a..b509807 100644
--- a/src/Shentun.Peis.Application/BigtextResultTemplates/BigtextResultTemplateAppService.cs
+++ b/src/Shentun.Peis.Application/BigtextResultTemplates/BigtextResultTemplateAppService.cs
@@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Mvc;
using Shentun.Peis.BigtextResultTemplates;
using Shentun.Peis.CommonTables;
using Shentun.Peis.HelperDto;
+using Shentun.Peis.Items;
using Shentun.Peis.Models;
using SqlSugar;
using System;
@@ -27,19 +28,25 @@ namespace Shentun.Peis.BigtextResultTemplates
private readonly BigtextResultTemplateManager _bigtextResultTemplateManager;
private readonly IRepository _bigtextResultConclusionRepository;
private readonly IRepository _bigtextResultDescriptionRepository;
+ private readonly IRepository _itemBigtextResultTypeRepository;
+ private readonly IRepository _bigtextResultTypeRepository;
public BigtextResultTemplateAppService(
IRepository bigtextResultTemplateRepository,
CacheService cacheService,
BigtextResultTemplateManager bigtextResultTemplateManager,
IRepository bigtextResultConclusionRepository,
- IRepository bigtextResultDescriptionRepository)
+ IRepository bigtextResultDescriptionRepository,
+ IRepository itemBigtextResultTypeRepository,
+ IRepository bigtextResultTypeRepository)
{
_bigtextResultTemplateRepository = bigtextResultTemplateRepository;
_cacheService = cacheService;
_bigtextResultTemplateManager = bigtextResultTemplateManager;
_bigtextResultConclusionRepository = bigtextResultConclusionRepository;
_bigtextResultDescriptionRepository = bigtextResultDescriptionRepository;
+ _itemBigtextResultTypeRepository = itemBigtextResultTypeRepository;
+ _bigtextResultTypeRepository = bigtextResultTypeRepository;
}
///
@@ -213,6 +220,45 @@ namespace Shentun.Peis.BigtextResultTemplates
return entDto;
}
+ ///
+ /// 根据项目获取对应的词条模板、描述跟建议(多条换行合并)
+ ///
+ ///
+ ///
+ [HttpPost("api/app/BigtextResultTemplate/GetBigtextResultTemplateWithDetail")]
+ public async Task> GetBigtextResultTemplateWithDetailAsync(ItemIdInputDto input)
+ {
+ var query = (from itemBigtextResultType in await _itemBigtextResultTypeRepository.GetQueryableAsync()
+ join bigtextResultType in await _bigtextResultTypeRepository.GetQueryableAsync() on itemBigtextResultType.BigtextResultTypeId equals bigtextResultType.Id
+ join bigtextResultTemplate in await _bigtextResultTemplateRepository.GetQueryableAsync() on bigtextResultType.Id equals bigtextResultTemplate.BigtextResultTypeId
+ join bigtextResultConclusion in await _bigtextResultConclusionRepository.GetQueryableAsync() on bigtextResultTemplate.Id equals bigtextResultConclusion.BigtextResultTemplateId into bigtextResultConclusionTemp
+ from bigtextResultConclusionHaveEmpty in bigtextResultConclusionTemp.DefaultIfEmpty()
+ join bigtextResultDescription in await _bigtextResultDescriptionRepository.GetQueryableAsync() on bigtextResultTemplate.Id equals bigtextResultDescription.BigtextResultTemplateId into bigtextResultDescriptionTemp
+ from bigtextResultDescriptionHaveEmpty in bigtextResultDescriptionTemp.DefaultIfEmpty()
+ where itemBigtextResultType.ItemId == input.ItemId
+ orderby bigtextResultTemplate.DisplayOrder ascending
+ select new
+ {
+ bigtextResultTypeName = bigtextResultType.DisplayName,
+ bigtextResultTemplateName = bigtextResultTemplate.DisplayName,
+ bigtextResultTemplateId = bigtextResultTemplate.Id,
+ bigtextResultConclusionHaveEmpty,
+ bigtextResultDescriptionHaveEmpty
+ }).ToList();
+
+ var bigtextResultTemplateGroup = query.GroupBy(g => g.bigtextResultTemplateId);
+
+ var entListDto = bigtextResultTemplateGroup.Select(s => new GetBigtextResultTemplateWithDetailDto
+ {
+ BigtextResultTypeName = s.FirstOrDefault().bigtextResultTypeName,
+ BigtextResultTemplateName = s.FirstOrDefault().bigtextResultTemplateName,
+ bigtextResultDescription = string.Join(";", s.Where(m => m.bigtextResultDescriptionHaveEmpty != null).Select(ss => ss.bigtextResultDescriptionHaveEmpty.Description).Distinct()),
+ bigtextResultConclusion = string.Join(";", s.Where(m => m.bigtextResultConclusionHaveEmpty != null).Select(ss => ss.bigtextResultConclusionHaveEmpty.Conclusion).Distinct())
+ }).ToList();
+
+ return entListDto;
+ }
+
}
}