From fd1328ba4ca8eca2af693bcd7e3ad0d5ad540cda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=BE=99=20=E7=8E=8B?= Date: Tue, 3 Dec 2024 18:20:01 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E5=A2=9E=E5=8A=A0=E8=BD=A8=E8=BF=B9?= =?UTF-8?q?=E5=86=85=E5=AE=B9=E5=88=86=E9=A1=B5=E6=8F=90=E4=BE=9B=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=8E=A5=E5=8F=A3=E3=80=90/ProviderService/Template/G?= =?UTF-8?q?etTrackTemplateListByPage=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GetPageTrackTemplateListInput.cs | 24 +++++++++++++ .../TrackTemplateAutoMapperProfile.cs | 2 ++ .../ProvideServices/TrackTemplateService.cs | 14 ++++++++ .../ITrackTemplateRepository.cs | 1 + .../GetPageTrackTemplateListInputVo.cs | 24 +++++++++++++ .../Repositories/TrackTemplateRepository.cs | 36 +++++++++++++++++++ 6 files changed, 101 insertions(+) create mode 100644 src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackTemplateListInput.cs create mode 100644 src/SJZY.Track.Domain/Dtos/TrackTemplate/GetPageTrackTemplateListInputVo.cs diff --git a/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackTemplateListInput.cs b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackTemplateListInput.cs new file mode 100644 index 00000000..d193eb8e --- /dev/null +++ b/src/SJZY.Track.Application.Contract/Dtos/ProvideServices/GetPageTrackTemplateListInput.cs @@ -0,0 +1,24 @@ +namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; + +public class GetPageTrackTemplateListInput : PageInfoInput +{ + /// + /// 子系统id + /// + public int SubSystemId { get; set; } + + /// + /// 客户id + /// + public int? CustomerId { get; set; } + + /// + /// 模版分类 + /// + public int? TemplateType { get; set; } + + /// + /// 模板code + /// + public string? TemplateCode { get; set; } +} diff --git a/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs b/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs index 850ff421..f6e6b53b 100644 --- a/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs +++ b/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs @@ -20,6 +20,8 @@ public class TrackTemplateAutoMapperProfile : Profile CreateMap(MemberList.None); CreateMap, UnifyPageResultDto>(MemberList .None); + CreateMap(MemberList.None); + CreateMap, UnifyPageResultDto>(MemberList.None); CreateMap(MemberList.None); CreateMap(MemberList.None); diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackTemplateService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackTemplateService.cs index 838f0397..ae02e06e 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackTemplateService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackTemplateService.cs @@ -33,4 +33,18 @@ public class TrackTemplateService : ApplicationService, ITrackTemplateService var res = ObjectMapper.Map, List>(templates); return res; } + + /// + /// 分页获取轨迹模版列表 + /// + /// + /// + [HttpPost("Template/GetTrackTemplateListByPage")] + public async Task> GetTrackTemplateListByPageAsync(GetPageTrackTemplateListInput input) + { + var inputVo = ObjectMapper.Map(input); + var templates = await _trackTemplateRepository.GetPageTrackTemplateListAsync(inputVo); + var res = ObjectMapper.Map, UnifyPageResultDto>(templates); + return res; + } } diff --git a/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/ITrackTemplateRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/ITrackTemplateRepository.cs index db202083..efae67b2 100644 --- a/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/ITrackTemplateRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/ITrackTemplateRepository.cs @@ -45,5 +45,6 @@ public interface ITrackTemplateRepository : IBasicRepository> whereExpression); Task> GetTrackTemplateListAsync(GetTrackTemplateListInputVo input); + Task> GetPageTrackTemplateListAsync(GetPageTrackTemplateListInputVo input); Task> GetContentByTemplateCodes(string[] codes, int systemId); } diff --git a/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetPageTrackTemplateListInputVo.cs b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetPageTrackTemplateListInputVo.cs new file mode 100644 index 00000000..b6e253a0 --- /dev/null +++ b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetPageTrackTemplateListInputVo.cs @@ -0,0 +1,24 @@ +namespace SJZY.Track.Domain.Dtos.TrackTemplate; + +public class GetPageTrackTemplateListInputVo :PageInfoInput +{ + /// + /// 子系统id + /// + public int SubSystemId { get; set; } + + /// + /// 客户id + /// + public int? CustomerId { get; set; } + + /// + /// 模版分类 + /// + public int? TemplateType { get; set; } + + /// + /// 模板code + /// + public string? TemplateCode { get; set; } +} diff --git a/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs index 24bdc7ea..c7f7c2c4 100644 --- a/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs +++ b/src/SJZY.Track.Repository/Repositories/TrackTemplateRepository.cs @@ -228,6 +228,42 @@ public class TrackTemplateRepository : BasicRepository, ITr return templates; } + public async Task> GetPageTrackTemplateListAsync(GetPageTrackTemplateListInputVo input) + { + var templates = await Context.Queryable() + .Where(x => x.SubSystemId == input.SubSystemId) + .WhereIF(input.CustomerId.HasValue, x => x.CustomerId == input.CustomerId) + .WhereIF(input.TemplateType.HasValue, x => x.CategoryId == input.TemplateType) + .WhereIF(!input.TemplateCode.IsNullOrWhiteSpace(), x => x.Code == input.TemplateCode) + .Select(x => new TrackTemplateOutputVo + { + Id = x.Id, + TemplateName = x.Name, + TemplateCode = x.Code, + }) + .ToListAsync(); + + if (templates == default) return new UnifyPageResultDto(); + var templateIds = templates.Select(x => x.Id).ToArray(); + var contents = await Context.Queryable() + .LeftJoin((a, b) => a.TrackContentId == b.Id) + .LeftJoin((a, b, c) => b.TrackStatusId == c.Id) + .LeftJoin((a, b, c, d) => c.Node == d.Id) + .Where(a => templateIds.Contains(a.TrackTemplateId)) + .Select((a, b, c, d) => new TemplateContentDtoVo + { + TemplateId = a.TrackTemplateId, + Code = b.Code, + ContentCn = b.Content, + ContentEn = b.EnContent, + Status = c.Status, + Node = d.NodeName + }) + .ToPagedListAsync(input.PageIndex, input.PageSize); + + return contents; + } + public async Task> GetContentByTemplateCodes(string[] codes, int systemId) { var sql = @$"