From 37e225e4563fe1b0f24a3bc4fa84a51e595a3d01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=86=9B?= <2357729423@qq.com> Date: Wed, 28 Feb 2024 11:40:15 +0800 Subject: [PATCH] =?UTF-8?q?change=20=E7=BB=93=E6=9E=84=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/SJZY.Track.Api/SJZYTrackApiModule.cs | 13 +- .../AutoMapper/AutoMapperProfile.cs | 8 +- .../TrackTemplateAutoMapperProfile.cs | 25 +- .../Dtos/ProvideServices/CreateOrderInput.cs | 14 +- .../Dtos/ProvideServices/LinkOrderInput.cs | 23 +- .../Services/Demo/InterFaceDemoService.cs | 444 +++++++++--------- .../Services/ProvideServices/OrderService.cs | 34 +- .../ProvideServices/TrackQueryService.cs | 8 +- .../TrackStatus/TrackStatusService.cs | 126 +++-- .../TrackTemplates/TrackTemplateService.cs | 19 +- .../DemoAggregate/DemoDetailEntity.cs | 4 +- .../DemoAggregate/DemoEntity.cs | 5 +- .../DemoAggregate/IDemoRepository.cs | 4 +- .../OrderAggregate/IOrderRepository.cs | 4 +- .../OrderAggregate/OrderEntity.cs | 28 +- .../OrderAggregate/OrderLinkEntity.cs | 15 +- .../OrderAggregate/OrderTemplateEntity.cs | 5 +- .../ITrackContentRepository.cs | 5 + .../TrackContentEntity.cs | 4 +- .../TrackContentMapEntity.cs | 4 +- .../ITrackDetailsRepository.cs | 5 +- .../TrackDetailsIndex.cs | 4 +- .../ITrackFlagRepository.cs | 2 +- .../TrackFlagAggregate/TrackFlagEntity.cs | 4 +- .../ITrackPullConfigRepository.cs | 3 +- .../TrackPullConfigEntity.cs | 6 +- .../TrackPullContentConfigEntity.cs | 6 +- .../TrackPushPullParamsConfigEntity.cs | 4 +- .../ITrackPushConfigRepository.cs | 2 +- .../TrackPushConfigEntity.cs | 4 +- .../TrackPushContentConfigEntity.cs | 4 +- .../ITrackStatusRepository.cs | 3 +- .../TrackStatusAggregate/TrackStatusEntity.cs | 4 +- .../ITrackTemplateRepository.cs | 7 +- .../TrackTemplateContentEntity.cs | 4 +- .../TrackTemplateEntity.cs | 6 +- .../DemoAggregate/Dtos/DemoValueObject.cs | 18 - .../Dtos/Demo/DemoValueObject.cs | 16 + .../Dtos => Dtos/Order}/OrderTemplateDto.cs | 2 +- .../TrackDetails}/TrackDetailsQueryInput.cs | 2 +- .../TrackTemplate}/GetPageTrackTemplateVO.cs | 2 +- .../GetTrackTemplateContentDetailOutputVO.cs | 41 ++ .../GetTrackTemplateContentPageInputVO.cs | 2 +- .../GetTrackTemplateContentPageOutputVO.cs | 2 +- .../GetTrackTemplateDetailVO.cs | 2 +- .../Dtos/TrackTemplate/TemplateContentDto.cs | 5 + src/SJZY.Track.Domain/GlobalUsings.cs | 1 + src/SJZY.Track.Domain/IBasicQuery.cs | 38 ++ src/SJZY.Track.Domain/IBasicRepository.cs | 34 +- .../SJZY.Track.Domain.csproj | 7 +- .../SeedWork/IAggregateRoot.cs | 5 + src/SJZY.Track.Domain/SeedWork/IEntity.cs | 5 + .../ITrackContentRepository.cs | 6 - .../GetTrackTemplateContentDetailOutputVO.cs | 42 -- .../Dtos/TemplateContentDto.cs | 6 - src/SJZY.Track.Repository/BasicQuery.cs | 25 + src/SJZY.Track.Repository/BasicRepository.cs | 24 +- src/SJZY.Track.Repository/DemoRepository.cs | 330 ++++++------- src/SJZY.Track.Repository/OrderRepository.cs | 4 +- .../SJZYTrackRepositoryModule.cs | 13 +- .../TrackContentRepository.cs | 2 +- .../TrackDetailsRepository.cs | 5 +- .../TrackFlagRepository.cs | 2 +- .../TrackPullConfigRepository.cs | 5 +- .../TrackPushConfigRepository.cs | 5 +- .../Entitys/TrackPushRecordEntity.cs | 8 +- .../Entitys/TrackPushRecordDetailsEntity.cs | 8 +- .../TrackStatusRepository.cs | 4 +- .../TrackTemplateRepository.cs | 148 +++--- 69 files changed, 875 insertions(+), 804 deletions(-) rename src/SJZY.Track.Domain/{ => Aggregates}/DemoAggregate/DemoDetailEntity.cs (82%) rename src/SJZY.Track.Domain/{ => Aggregates}/DemoAggregate/DemoEntity.cs (85%) rename src/SJZY.Track.Domain/{ => Aggregates}/DemoAggregate/IDemoRepository.cs (89%) rename src/SJZY.Track.Domain/{ => Aggregates}/OrderAggregate/IOrderRepository.cs (85%) rename src/SJZY.Track.Domain/{ => Aggregates}/OrderAggregate/OrderEntity.cs (75%) rename src/SJZY.Track.Domain/{ => Aggregates}/OrderAggregate/OrderLinkEntity.cs (92%) rename src/SJZY.Track.Domain/{ => Aggregates}/OrderAggregate/OrderTemplateEntity.cs (86%) create mode 100644 src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/ITrackContentRepository.cs rename src/SJZY.Track.Domain/{ => Aggregates}/TrackContentAggregate/TrackContentEntity.cs (89%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackContentAggregate/TrackContentMapEntity.cs (81%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackDetailsAggregate/ITrackDetailsRepository.cs (65%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackDetailsAggregate/TrackDetailsIndex.cs (94%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackFlagAggregate/ITrackFlagRepository.cs (55%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackFlagAggregate/TrackFlagEntity.cs (83%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackPullAggregate/ITrackPullConfigRepository.cs (59%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackPullAggregate/TrackPullConfigEntity.cs (88%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackPullAggregate/TrackPullContentConfigEntity.cs (96%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackPullAggregate/TrackPushPullParamsConfigEntity.cs (96%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackPushAggregate/ITrackPushConfigRepository.cs (59%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackPushAggregate/TrackPushConfigEntity.cs (88%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackPushAggregate/TrackPushContentConfigEntity.cs (96%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackStatusAggregate/ITrackStatusRepository.cs (56%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackStatusAggregate/TrackStatusEntity.cs (87%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackTemplateAggregate/ITrackTemplateRepository.cs (85%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackTemplateAggregate/TrackTemplateContentEntity.cs (93%) rename src/SJZY.Track.Domain/{ => Aggregates}/TrackTemplateAggregate/TrackTemplateEntity.cs (82%) delete mode 100644 src/SJZY.Track.Domain/DemoAggregate/Dtos/DemoValueObject.cs create mode 100644 src/SJZY.Track.Domain/Dtos/Demo/DemoValueObject.cs rename src/SJZY.Track.Domain/{OrderAggregate/Dtos => Dtos/Order}/OrderTemplateDto.cs (82%) rename src/SJZY.Track.Domain/{TrackDetailsAggregate/Dtos => Dtos/TrackDetails}/TrackDetailsQueryInput.cs (76%) rename src/SJZY.Track.Domain/{TrackTemplateAggregate/Dtos => Dtos/TrackTemplate}/GetPageTrackTemplateVO.cs (88%) create mode 100644 src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTrackTemplateContentDetailOutputVO.cs rename src/SJZY.Track.Domain/{TrackTemplateAggregate/Dtos => Dtos/TrackTemplate}/GetTrackTemplateContentPageInputVO.cs (74%) rename src/SJZY.Track.Domain/{TrackTemplateAggregate/Dtos => Dtos/TrackTemplate}/GetTrackTemplateContentPageOutputVO.cs (95%) rename src/SJZY.Track.Domain/{TrackTemplateAggregate/Dtos => Dtos/TrackTemplate}/GetTrackTemplateDetailVO.cs (95%) create mode 100644 src/SJZY.Track.Domain/Dtos/TrackTemplate/TemplateContentDto.cs create mode 100644 src/SJZY.Track.Domain/IBasicQuery.cs create mode 100644 src/SJZY.Track.Domain/SeedWork/IAggregateRoot.cs create mode 100644 src/SJZY.Track.Domain/SeedWork/IEntity.cs delete mode 100644 src/SJZY.Track.Domain/TrackContentAggregate/ITrackContentRepository.cs delete mode 100644 src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetTrackTemplateContentDetailOutputVO.cs delete mode 100644 src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/TemplateContentDto.cs create mode 100644 src/SJZY.Track.Repository/BasicQuery.cs diff --git a/src/SJZY.Track.Api/SJZYTrackApiModule.cs b/src/SJZY.Track.Api/SJZYTrackApiModule.cs index 9db64785..93e04188 100644 --- a/src/SJZY.Track.Api/SJZYTrackApiModule.cs +++ b/src/SJZY.Track.Api/SJZYTrackApiModule.cs @@ -19,14 +19,15 @@ using Volo.Abp.Json; using Volo.Abp.Modularity; [assembly: HostingStartup(typeof(HostingStartup))] + namespace SJZY.Track.Api { [DependsOn( typeof(AbpAutofacModule), typeof(SjzyAbpCodeModule), - typeof(ApplicationModule), typeof(AbpAspNetCoreMvcModule), typeof(AbpAspNetCoreSerilogModule), + typeof(ApplicationModule), typeof(SJZYTrackRepositoryModule) )] public class SJZYTrackApiModule : AbpModule @@ -49,7 +50,9 @@ namespace SJZY.Track.Api //Json格式化全局处理 context.Services.Configure(options => { - options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();//.DefaultContractResolver(); + options.SerializerSettings.ContractResolver = + new Newtonsoft.Json.Serialization. + CamelCasePropertyNamesContractResolver(); //.DefaultContractResolver(); options.SerializerSettings.Converters.Add(new DateTimeJsonConverter("yyyy-MM-dd HH:mm:ss")); options.SerializerSettings.Converters.Add(new LongJsonConverter()); }); @@ -59,7 +62,6 @@ namespace SJZY.Track.Api context.Services.AddRedis(); - } public override void OnApplicationInitialization(ApplicationInitializationContext context) @@ -79,6 +81,7 @@ namespace SJZY.Track.Api app.UsePrometheus(); #region 启动提示 + Console.WriteLine($@" +-------------------------------------------------------+ | | @@ -89,8 +92,8 @@ namespace SJZY.Track.Api | | +-------------------------------------------------------+ "); + #endregion } } - -} +} \ No newline at end of file diff --git a/src/SJZY.Track.Application/AutoMapper/AutoMapperProfile.cs b/src/SJZY.Track.Application/AutoMapper/AutoMapperProfile.cs index e2f97051..b315446d 100644 --- a/src/SJZY.Track.Application/AutoMapper/AutoMapperProfile.cs +++ b/src/SJZY.Track.Application/AutoMapper/AutoMapperProfile.cs @@ -1,7 +1,7 @@ using AutoMapper; using SJZY.Track.Application.Dtos.Demo; -using SJZY.Track.Domain.DemoAggregate; -using SJZY.Track.Domain.DemoAggregate.Dtos; +using SJZY.Track.Domain.Aggregates.DemoAggregate; +using SJZY.Track.Domain.Dtos.Demo; namespace SJZY.Track.Application.AutoMapper; @@ -12,7 +12,8 @@ internal class AutoMapperProfile : Profile CreateMap, UnifyPageResultDto>(MemberList.None); CreateMap(MemberList.None).ReverseMap(); - CreateMap, UnifyPageResultDto>(MemberList.None).ReverseMap(); + CreateMap, UnifyPageResultDto>(MemberList.None) + .ReverseMap(); /* 代码说明: MemberList.None的意思是,忽略源对象和目标对象的属性匹配检查,其他可选值:MemberList.Source(检查是否映射了所有源成员)、MemberList.Destination(检查是否映射了所有目标成员) @@ -28,6 +29,5 @@ internal class AutoMapperProfile : Profile CreateMap(MemberList.None).ReverseMap(); CreateMap(MemberList.None); CreateMap(MemberList.None).ReverseMap(); - } } \ No newline at end of file diff --git a/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs b/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs index bd6d7f2b..79a142eb 100644 --- a/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs +++ b/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs @@ -1,22 +1,21 @@ using AutoMapper; using SJZY.Track.Application.Dtos.TrackTemplates; -using SJZY.Track.Domain.TrackTemplateAggregate; -using SJZY.Track.Domain.TrackTemplateAggregate.Dtos; +using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; +using SJZY.Track.Domain.Dtos.TrackTemplate; -namespace SJZY.Track.Application.AutoMapper +namespace SJZY.Track.Application.AutoMapper; + +/// +/// 轨迹模版自动映射 +/// +public class TrackTemplateAutoMapperProfile : Profile { - /// - /// 轨迹模版自动映射 - /// - public class TrackTemplateAutoMapperProfile : Profile + public TrackTemplateAutoMapperProfile() { - public TrackTemplateAutoMapperProfile() - { - CreateMap(MemberList.None); + CreateMap(MemberList.None); - //CreateMap, UnifyResultDto>(MemberList.None); + //CreateMap, UnifyResultDto>(MemberList.None); - CreateMap(MemberList.None); - } + CreateMap(MemberList.None); } } \ No newline at end of file diff --git a/src/SJZY.Track.Application/Dtos/ProvideServices/CreateOrderInput.cs b/src/SJZY.Track.Application/Dtos/ProvideServices/CreateOrderInput.cs index 52d9545f..d099eaaa 100644 --- a/src/SJZY.Track.Application/Dtos/ProvideServices/CreateOrderInput.cs +++ b/src/SJZY.Track.Application/Dtos/ProvideServices/CreateOrderInput.cs @@ -1,4 +1,5 @@ using System.ComponentModel.DataAnnotations; +using SJZY.Track.Domain.Aggregates.OrderAggregate; namespace SJZY.Track.Application.Dtos.ProvideServices; @@ -22,7 +23,6 @@ public class CreateOrderInput public OrderDetails Details { get; set; } } - public class OrderTemplateInfo { /// @@ -43,22 +43,22 @@ public class OrderDetails /// 目的港口 /// public string? ArrivalPort { get; set; } - + /// /// 起运港口 /// public string? LeavePort { get; set; } - + /// /// 目的国家,必填 /// public string ArrivalCountry { get; set; } - + /// /// 起运国家,必填 /// public string LeaveCountry { get; set; } - + /// /// 目的城市,必填 /// @@ -68,7 +68,7 @@ public class OrderDetails /// 起运城市,必填 /// public string LeaveCity { get; set; } - + public List FligthInfos { get; set; } } @@ -78,7 +78,7 @@ public class FligthInfo /// 航班号 /// public string FlightNo { get; set; } - + /// /// 班期 /// diff --git a/src/SJZY.Track.Application/Dtos/ProvideServices/LinkOrderInput.cs b/src/SJZY.Track.Application/Dtos/ProvideServices/LinkOrderInput.cs index 0d3a972a..460c506d 100644 --- a/src/SJZY.Track.Application/Dtos/ProvideServices/LinkOrderInput.cs +++ b/src/SJZY.Track.Application/Dtos/ProvideServices/LinkOrderInput.cs @@ -1,26 +1,15 @@ -using System.ComponentModel.DataAnnotations; +using SJZY.Track.Domain.Aggregates.OrderAggregate; namespace SJZY.Track.Application.Dtos.ProvideServices; public class LinkOrderInput { + /// + /// false解绑,true关联,必填 + /// + public bool IsLink { get; set; } + public NoInfo NoInfo { get; set; } public List LinkedOrderInfos { get; set; } -} - - -public class NoInfo -{ - /// - /// 订单类型 - /// - public int NoType { get; set; } - - /// - /// 订单号 - /// - [Required] - [MaxLength(100)] - public string OrderNo { get; set; } } \ No newline at end of file diff --git a/src/SJZY.Track.Application/Services/Demo/InterFaceDemoService.cs b/src/SJZY.Track.Application/Services/Demo/InterFaceDemoService.cs index f8170079..6402f596 100644 --- a/src/SJZY.Track.Application/Services/Demo/InterFaceDemoService.cs +++ b/src/SJZY.Track.Application/Services/Demo/InterFaceDemoService.cs @@ -1,79 +1,45 @@ using SJZY.Expand.ABP.Core.Common; using SJZY.Track.Application.Dtos.Demo; -using SJZY.Track.Domain.DemoAggregate; -using SJZY.Track.Domain.DemoAggregate.Dtos; +using SJZY.Track.Domain.Aggregates.DemoAggregate; +using SJZY.Track.Domain.Dtos.Demo; -namespace SJZY.Track.Application.Services.Demo +namespace SJZY.Track.Application.Services.Demo; + +/// +/// 接口请求完整样例 +/// +[ApiExplorerSettings(GroupName = "Demo")] +public class InterFaceDemoService : ApplicationService { - /// - /// 接口请求完整样例 - /// - [ApiExplorerSettings(GroupName = "Demo")] - public class InterFaceDemoService : ApplicationService + #region 构造函数 + + private readonly IDemoRepository _demoRepository; + + public InterFaceDemoService(IDemoRepository demoRepository) { - #region 构造函数 - private readonly IDemoRepository _demoRepository; - public InterFaceDemoService(IDemoRepository demoRepository) + _demoRepository = demoRepository; + } + + #endregion + + #region 增删改 + + /// + /// 增删改 + /// + /// + /// + [HttpPost("InterFace/Edit")] + public async Task Edit(DemoInput input) + { + var res = new LongIdBaseDto(); + + if (input.Option == OptionType.新增) { - _demoRepository = demoRepository; + var entity = ObjectMapper.Map(input); + res.Id = await _demoRepository.InsertReturnIdentityAsync(entity); } - #endregion - - #region 增删改 - /// - /// 增删改 - /// - /// - /// - [HttpPost("InterFace/Edit")] - public async Task Edit(DemoInput input) - { - var res = new LongIdBaseDto(); - - if (input.Option == OptionType.新增) - { - var entity = ObjectMapper.Map(input); - res.Id = await _demoRepository.InsertReturnIdentityAsync(entity); - } - else if (input.Option == OptionType.修改 || input.Option == OptionType.删除) - { - - var demoInfo = await _demoRepository.GetById1(input.Id); - if (demoInfo == null) - { - //校验数据是否存在... - throw new BusinessException(message: "未找到指定编号下的数据"); - } - - res.Id = demoInfo.Id; - if (input.Option == OptionType.删除) - { - //await _demoRepository.DeleteAsync(demoInfo); //真删除 - - //软删除 - demoInfo.IsDeleted = true; - await _demoRepository.UpdateAsync(demoInfo); - } - else - { - var entity = ObjectMapper.Map(input, demoInfo); - await _demoRepository.UpdateAsync(entity); - } - } - return res; - } - - #endregion - - #region 局部更新最佳实践 - /// - /// 局部更新最佳实践 - /// - /// - /// - /// - [HttpPost("InterFace/UpdatePartColumns")] - public async Task UpdatePartColumns(DemoInput input) + else if (input.Option == OptionType.修改 || input.Option == OptionType.删除) { var demoInfo = await _demoRepository.GetById1(input.Id); if (demoInfo == null) @@ -82,152 +48,204 @@ namespace SJZY.Track.Application.Services.Demo throw new BusinessException(message: "未找到指定编号下的数据"); } - //更新同时忽略某几项参数 - await _demoRepository.UpdatePartColumns(demoInfo); + res.Id = demoInfo.Id; + if (input.Option == OptionType.删除) + { + //await _demoRepository.DeleteAsync(demoInfo); //真删除 - return new IdBaseDto() { Id = input.Id }; - } - #endregion - - #region 分页查询接口 - /// - /// 分页查询 - /// - /// - /// - [HttpPost("InterFace/GetListByPage")] - public async Task> GetListByPage(GetDemoListByPageInput input) - { - //分页时返回值统一用 PageResultDto<> 类型 - var list = await _demoRepository.GetListByPage(input.PageSize, input.PageIndex, input.Name); - - var res = ObjectMapper.Map, UnifyPageResultDto>(list); - - return res; - } - #endregion - - #region 入参转换 - /// - /// 入参转换 - /// - /// - /// - [HttpPost("InterFace/InputToValueObject")] - public async Task> InputToValueObject(GetDemoListByPageInput input) - { - var obj = ObjectMapper.Map(input); - var list = await _demoRepository.InputToValueObject(obj); - - var res = ObjectMapper.Map, List>(list); - return res; - } - #endregion - - #region 原生sql - - /// - /// 原生sql - /// - /// - /// - [HttpPost("InterFace/OriginalSql")] - public async Task> OriginalSql(DemoValueObject obj) - { - var list = await _demoRepository.OriginalSql(obj); - return list; + //软删除 + demoInfo.IsDeleted = true; + await _demoRepository.UpdateAsync(demoInfo); + } + else + { + var entity = ObjectMapper.Map(input, demoInfo); + await _demoRepository.UpdateAsync(entity); + } } - #endregion - - #region 自定义返回结果格式 - /// - /// 自定义返回结果格式 - /// - /// - /// - [HttpPost("Demo/CustomerResult")] - [CustomerResult] - public async Task GetListAsync() - { - /* - 说明: - 理论上我们有全公司级别的返回值约定,不管是前端调后端,还是后端微服务间的调用,都应完全遵循该规范。 - 但不排除有些特殊情况下,必须要返回自定义格式的场景。 - */ - - var res = new MyCustomerResultOutput(); - res.Code = "200"; - res.Message = "这是一个自定义返回结果"; - - return res; - } - #endregion - - #region 约定类型下返回null - /// - /// 约定类型下返回null - /// - /// - /// - [HttpPost("Demo/ReturnNull")] - public async Task ReturnNull() - { - MyCustomerResultOutput res = null; - return res; - } - #endregion - - #region - /// - /// 没有返回值 - /// - /// - /// - [HttpPost("Demo/WithoutReturnObject")] - public async Task WithoutReturnObject() - { - return null; - } - #endregion - - #region 主从关系实体存储 - /// - /// 主从关系实体存储 - /// - /// - /// - [HttpPost("InterFace/EntityRelationSave")] - public async Task EntityRelationSave(DemoDetailSaveInput input) - { - var obj = ObjectMapper.Map(input); - var res = await _demoRepository.EntityRelationSave(obj); - - return new UnifyResultDto(res); - } - - #endregion - - #region 数据缓存 - /// - /// 数据缓存 - /// - /// - /// - [HttpPost("InterFace/GetDataCache")] - public async Task GetDataCache(IdBaseDto input) - { - var res = await _demoRepository.GetDataCache(input.Id); - return res; - } - #endregion - - //[HttpPost("InterFace/AAAA")] - //public async Task AAAA() - //{ - // var result = await _httpClientProxy.Service.GetSystemTokenAsync("Track"); - - // return result; - //} + return res; } + + #endregion + + #region 局部更新最佳实践 + + /// + /// 局部更新最佳实践 + /// + /// + /// + /// + [HttpPost("InterFace/UpdatePartColumns")] + public async Task UpdatePartColumns(DemoInput input) + { + var demoInfo = await _demoRepository.GetById1(input.Id); + if (demoInfo == null) + { + //校验数据是否存在... + throw new BusinessException(message: "未找到指定编号下的数据"); + } + + //更新同时忽略某几项参数 + await _demoRepository.UpdatePartColumns(demoInfo); + + return new IdBaseDto() { Id = input.Id }; + } + + #endregion + + #region 分页查询接口 + + /// + /// 分页查询 + /// + /// + /// + [HttpPost("InterFace/GetListByPage")] + public async Task> GetListByPage(GetDemoListByPageInput input) + { + //分页时返回值统一用 PageResultDto<> 类型 + var list = await _demoRepository.GetListByPage(input.PageSize, input.PageIndex, input.Name); + + var res = ObjectMapper.Map, UnifyPageResultDto>(list); + + return res; + } + + #endregion + + #region 入参转换 + + /// + /// 入参转换 + /// + /// + /// + [HttpPost("InterFace/InputToValueObject")] + public async Task> InputToValueObject(GetDemoListByPageInput input) + { + var obj = ObjectMapper.Map(input); + var list = await _demoRepository.InputToValueObject(obj); + + var res = ObjectMapper.Map, List>(list); + return res; + } + + #endregion + + #region 原生sql + + /// + /// 原生sql + /// + /// + /// + [HttpPost("InterFace/OriginalSql")] + public async Task> OriginalSql(DemoValueObject obj) + { + var list = await _demoRepository.OriginalSql(obj); + return list; + } + + #endregion + + #region 自定义返回结果格式 + + /// + /// 自定义返回结果格式 + /// + /// + /// + [HttpPost("Demo/CustomerResult")] + [CustomerResult] + public async Task GetListAsync() + { + /* + 说明: + 理论上我们有全公司级别的返回值约定,不管是前端调后端,还是后端微服务间的调用,都应完全遵循该规范。 + 但不排除有些特殊情况下,必须要返回自定义格式的场景。 + */ + + var res = new MyCustomerResultOutput(); + res.Code = "200"; + res.Message = "这是一个自定义返回结果"; + + return res; + } + + #endregion + + #region 约定类型下返回null + + /// + /// 约定类型下返回null + /// + /// + /// + [HttpPost("Demo/ReturnNull")] + public async Task ReturnNull() + { + MyCustomerResultOutput res = null; + return res; + } + + #endregion + + #region + + /// + /// 没有返回值 + /// + /// + /// + [HttpPost("Demo/WithoutReturnObject")] + public async Task WithoutReturnObject() + { + return null; + } + + #endregion + + #region 主从关系实体存储 + + /// + /// 主从关系实体存储 + /// + /// + /// + [HttpPost("InterFace/EntityRelationSave")] + public async Task EntityRelationSave(DemoDetailSaveInput input) + { + var obj = ObjectMapper.Map(input); + var res = await _demoRepository.EntityRelationSave(obj); + + return new UnifyResultDto(res); + } + + #endregion + + #region 数据缓存 + + /// + /// 数据缓存 + /// + /// + /// + [HttpPost("InterFace/GetDataCache")] + public async Task GetDataCache(IdBaseDto input) + { + var res = await _demoRepository.GetDataCache(input.Id); + return res; + } + + #endregion + + //[HttpPost("InterFace/AAAA")] + //public async Task AAAA() + //{ + // var result = await _httpClientProxy.Service.GetSystemTokenAsync("Track"); + + // return result; + //} } \ No newline at end of file diff --git a/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs b/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs index 27ebcbb5..cb0f68ef 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/OrderService.cs @@ -1,7 +1,7 @@ using Newtonsoft.Json; using SJZY.Track.Application.Dtos.ProvideServices; using SJZY.Track.Domain; -using SJZY.Track.Domain.OrderAggregate; +using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.UserCenter.HttpApi.Services; namespace SJZY.Track.Application.Services.ProvideServices; @@ -10,13 +10,15 @@ namespace SJZY.Track.Application.Services.ProvideServices; /// 订单服务 /// [ApiExplorerSettings(GroupName = "提供接口")] -public class OrderService: ApplicationService +public class OrderService : ApplicationService { private readonly IOrderRepository _orderRepository; + private readonly IBasicQuery _orderLinkQuery; - public OrderService(IOrderRepository orderRepository) + public OrderService(IOrderRepository orderRepository, IBasicQuery orderLinkQuery) { _orderRepository = orderRepository; + _orderLinkQuery = orderLinkQuery; } /// @@ -44,10 +46,10 @@ public class OrderService: ApplicationService }; using var tran = TransactionHelper.GetReadCommitted(); - + // 创建订单 var orderId = await _orderRepository.InsertReturnIdentityAsync(order); - + // 创建订单模板 var templates = input.Templates.Select(x => new OrderTemplateEntity { @@ -60,7 +62,7 @@ public class OrderService: ApplicationService return true; } - + /// /// 关联订单 /// @@ -69,13 +71,23 @@ public class OrderService: ApplicationService [HttpPost("Order/Link")] public async Task LinkOrderAsync(LinkOrderInput input) { - // var distinctOrderNos = input.LinkedOrderInfos.Distinct().ToList(); - // + //todo:去重 + var distinctOrderInfos = input.LinkedOrderInfos.Distinct().ToList(); + + if (await _orderRepository.IsAnyAsync(x => x.IsEqual(input.NoInfo))) + { + } + // var links = input.LinkedOrderInfos.Select(x => new OrderLinkEntity // { - // LinkOrderId = x., - // OrderId = 0 - // }) + // OrderNo = x.OrderNo, + // OrderType = x.NoType + // }).ToList(); + // + // foreach (var link in links) + // { + // if (await _orderLinkQuery.IsAnyAsync(x => x.)) + // } // _orderRepository.LinkOrderAsync(); return true; diff --git a/src/SJZY.Track.Application/Services/ProvideServices/TrackQueryService.cs b/src/SJZY.Track.Application/Services/ProvideServices/TrackQueryService.cs index ad8640fe..e768cbab 100644 --- a/src/SJZY.Track.Application/Services/ProvideServices/TrackQueryService.cs +++ b/src/SJZY.Track.Application/Services/ProvideServices/TrackQueryService.cs @@ -1,9 +1,7 @@ using SJZY.Track.Application.Dtos.ProvideServices; -using SJZY.Track.Domain; -using SJZY.Track.Domain.OrderAggregate; -using SJZY.Track.Domain.TrackTemplateAggregate; -using SJZY.Track.Application.Dtos.ProvideServices; -using SJZY.Track.Repository.TrackDetails; +using SJZY.Track.Domain.Aggregates.OrderAggregate; +using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; +using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; namespace SJZY.Track.Application.Services.ProvideServices; diff --git a/src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs b/src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs index 432cabad..b5a94b5d 100644 --- a/src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs +++ b/src/SJZY.Track.Application/Services/TrackStatus/TrackStatusService.cs @@ -1,72 +1,66 @@ using SJZY.Track.Application.Dtos.TrackStatus; -using SJZY.Track.Application.Dtos.TrackTemplates; -using SJZY.Track.Domain.TrackStatusAggregate; -using SJZY.Track.Domain.TrackTemplateAggregate; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using SJZY.Track.Domain.Aggregates.TrackStatusAggregate; using Volo.Abp.DependencyInjection; -namespace SJZY.Track.Application.Services.TrackStatus +namespace SJZY.Track.Application.Services.TrackStatus; + +/// +/// 轨迹状态 +/// +[ApiExplorerSettings(GroupName = "轨迹状态")] +[Route("/Track/Status")] +public class TrackStatusService : ApplicationService, ITransientDependency { - /// - /// 轨迹状态 - /// - [ApiExplorerSettings(GroupName = "轨迹状态")] - [Route("/Track/Status")] - public class TrackStatusService : ApplicationService, ITransientDependency + private readonly ITrackStatusRepository _trackStatusRepository; + + public TrackStatusService( + ITrackStatusRepository trackStatusRepository + ) { - private readonly ITrackStatusRepository _trackStatusRepository; - - public TrackStatusService( - ITrackStatusRepository trackStatusRepository - ) - { - this._trackStatusRepository=trackStatusRepository; - } - - /// - /// 轨迹状态编辑 - /// - /// - [HttpPost("Edit")] - public async Task EditAsync(EditTrackStatusInput input) - { - return input.Options switch - { - OptionType.新增 => await AddAsync(input), - OptionType.修改 => await UpdateAsync(input), - OptionType.删除 => await DeleteAsync(input), - _ => throw new BusinessException(message: "当前操作动作不合法") - }; - } - - #region 私有方法 - private async Task AddAsync(EditTrackStatusInput input) - { - var entity = ObjectMapper.Map(input); - var isTrue = await _trackStatusRepository.InsertAsync(entity); - - return new UnifyResultDto("200", "新增成功", isTrue); - } - - private async Task UpdateAsync(EditTrackStatusInput input) - { - var templateEntity = await _trackStatusRepository.GetFirstAsync(a => a.Id == input.Id); - ObjectMapper.Map(input, templateEntity); - var isTrue = await _trackStatusRepository.UpdateAsync(templateEntity); - - return new UnifyResultDto("200", "修改成功", isTrue); - } - - private async Task DeleteAsync(EditTrackStatusInput input) - { - var isTrue = await _trackStatusRepository.SoftDeleteAsync(x => x.Id == input.Id); - - return new UnifyResultDto("200", "删除成功", isTrue); - } - #endregion + this._trackStatusRepository = trackStatusRepository; } -} + + /// + /// 轨迹状态编辑 + /// + /// + [HttpPost("Edit")] + public async Task EditAsync(EditTrackStatusInput input) + { + return input.Options switch + { + OptionType.新增 => await AddAsync(input), + OptionType.修改 => await UpdateAsync(input), + OptionType.删除 => await DeleteAsync(input), + _ => throw new BusinessException(message: "当前操作动作不合法") + }; + } + + #region 私有方法 + + private async Task AddAsync(EditTrackStatusInput input) + { + var entity = ObjectMapper.Map(input); + var isTrue = await _trackStatusRepository.InsertAsync(entity); + + return new UnifyResultDto("200", "新增成功", isTrue); + } + + private async Task UpdateAsync(EditTrackStatusInput input) + { + var templateEntity = await _trackStatusRepository.GetFirstAsync(a => a.Id == input.Id); + ObjectMapper.Map(input, templateEntity); + var isTrue = await _trackStatusRepository.UpdateAsync(templateEntity); + + return new UnifyResultDto("200", "修改成功", isTrue); + } + + private async Task DeleteAsync(EditTrackStatusInput input) + { + var isTrue = await _trackStatusRepository.SoftDeleteAsync(x => x.Id == input.Id); + + return new UnifyResultDto("200", "删除成功", isTrue); + } + + #endregion +} \ No newline at end of file diff --git a/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs b/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs index e4f875dc..b2df6211 100644 --- a/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs +++ b/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs @@ -1,10 +1,10 @@ -using Microsoft.Extensions.Localization; +using System.Linq.Expressions; +using Microsoft.Extensions.Localization; using SJZY.Expand.ABP.Core.Localization; using SJZY.Track.Application.Dtos.TrackTemplates; using SJZY.Track.Application.Localization; -using SJZY.Track.Domain.TrackTemplateAggregate; -using SJZY.Track.Domain.TrackTemplateAggregate.Dtos; -using System.Linq.Expressions; +using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; +using SJZY.Track.Domain.Dtos.TrackTemplate; using Volo.Abp.DependencyInjection; namespace SJZY.Track.Application.Services.TrackTemplates; @@ -113,7 +113,8 @@ public class TrackTemplateService : ApplicationService, ITransientDependency /// /// [HttpPost("GetContentPage")] - public async Task> GetContentPageAsync([FromBody] GetTrackTemplateContentPageInputVO input) + public async Task> GetContentPageAsync( + [FromBody] GetTrackTemplateContentPageInputVO input) { return await _trackTemplateRepository.GetContentPageAsync(input); } @@ -140,7 +141,7 @@ public class TrackTemplateService : ApplicationService, ITransientDependency if (input.Options != OptionTypeNoNull.删除) { Expression> isAnyExp = x => - x.TrackTemplateId == input.TrackTemplateId && x.TrackContentId == input.TrackContentId; + x.TrackTemplateId == input.TrackTemplateId && x.TrackContentId == input.TrackContentId; if (input.Options == OptionTypeNoNull.修改) isAnyExp.And(x => x.Id != input.Id); if (await _trackTemplateRepository.IsAnyAsync(isAnyExp)) @@ -159,7 +160,8 @@ public class TrackTemplateService : ApplicationService, ITransientDependency case OptionTypeNoNull.修改: - var oldEntity = await _trackTemplateRepository.GetByIdAsync(input.Id!.Value) ?? throw new BusinessException(message: _stringLocalizer["NotFindData"]); + var oldEntity = await _trackTemplateRepository.GetByIdAsync(input.Id!.Value) ?? + throw new BusinessException(message: _stringLocalizer["NotFindData"]); ObjectMapper.Map(input, oldEntity); @@ -174,7 +176,8 @@ public class TrackTemplateService : ApplicationService, ITransientDependency break; default: - throw new BusinessException(message: _stringLocalizer[SjzyBasicLocalization.Validation_IsInEnum, nameof(EditTrackTemplateContentInput.Options)]); + throw new BusinessException(message: _stringLocalizer[SjzyBasicLocalization.Validation_IsInEnum, + nameof(EditTrackTemplateContentInput.Options)]); } return true; diff --git a/src/SJZY.Track.Domain/DemoAggregate/DemoDetailEntity.cs b/src/SJZY.Track.Domain/Aggregates/DemoAggregate/DemoDetailEntity.cs similarity index 82% rename from src/SJZY.Track.Domain/DemoAggregate/DemoDetailEntity.cs rename to src/SJZY.Track.Domain/Aggregates/DemoAggregate/DemoDetailEntity.cs index 1399ed5c..65734437 100644 --- a/src/SJZY.Track.Domain/DemoAggregate/DemoDetailEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/DemoAggregate/DemoDetailEntity.cs @@ -1,7 +1,7 @@ -namespace SJZY.Track.Domain.DemoAggregate; +namespace SJZY.Track.Domain.Aggregates.DemoAggregate; [SugarTable("t_demo_detail")] -public class DemoDetailEntity +public class DemoDetailEntity : IEntity { /// /// Id diff --git a/src/SJZY.Track.Domain/DemoAggregate/DemoEntity.cs b/src/SJZY.Track.Domain/Aggregates/DemoAggregate/DemoEntity.cs similarity index 85% rename from src/SJZY.Track.Domain/DemoAggregate/DemoEntity.cs rename to src/SJZY.Track.Domain/Aggregates/DemoAggregate/DemoEntity.cs index 256eb7ae..44d7d6eb 100644 --- a/src/SJZY.Track.Domain/DemoAggregate/DemoEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/DemoAggregate/DemoEntity.cs @@ -1,10 +1,10 @@ -namespace SJZY.Track.Domain.DemoAggregate; +namespace SJZY.Track.Domain.Aggregates.DemoAggregate; /// /// 测试表 /// [SugarTable("t_demo")] -public class DemoEntity : IFullAuditedBasicEntitys +public class DemoEntity : IFullAuditedBasicEntitys, IAggregateRoot { /// /// Id @@ -33,5 +33,4 @@ public class DemoEntity : IFullAuditedBasicEntitys [Navigate(NavigateType.OneToMany, nameof(DemoDetailEntity.DemoId))] public List DemoDetailList { get; set; } - } \ No newline at end of file diff --git a/src/SJZY.Track.Domain/DemoAggregate/IDemoRepository.cs b/src/SJZY.Track.Domain/Aggregates/DemoAggregate/IDemoRepository.cs similarity index 89% rename from src/SJZY.Track.Domain/DemoAggregate/IDemoRepository.cs rename to src/SJZY.Track.Domain/Aggregates/DemoAggregate/IDemoRepository.cs index b8abaef7..207cc3b3 100644 --- a/src/SJZY.Track.Domain/DemoAggregate/IDemoRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/DemoAggregate/IDemoRepository.cs @@ -1,6 +1,6 @@ -using SJZY.Track.Domain.DemoAggregate.Dtos; +using SJZY.Track.Domain.Dtos.Demo; -namespace SJZY.Track.Domain.DemoAggregate +namespace SJZY.Track.Domain.Aggregates.DemoAggregate { public interface IDemoRepository { diff --git a/src/SJZY.Track.Domain/OrderAggregate/IOrderRepository.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs similarity index 85% rename from src/SJZY.Track.Domain/OrderAggregate/IOrderRepository.cs rename to src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs index 84ca93a2..fb130780 100644 --- a/src/SJZY.Track.Domain/OrderAggregate/IOrderRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/IOrderRepository.cs @@ -1,6 +1,6 @@ -using SJZY.Track.Domain.OrderAggregate.Dtos; +using SJZY.Track.Domain.Dtos.Order; -namespace SJZY.Track.Domain.OrderAggregate; +namespace SJZY.Track.Domain.Aggregates.OrderAggregate; public interface IOrderRepository : IBasicRepository { diff --git a/src/SJZY.Track.Domain/OrderAggregate/OrderEntity.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs similarity index 75% rename from src/SJZY.Track.Domain/OrderAggregate/OrderEntity.cs rename to src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs index cb593bf3..2faa141f 100644 --- a/src/SJZY.Track.Domain/OrderAggregate/OrderEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs @@ -1,12 +1,13 @@ -namespace SJZY.Track.Domain.OrderAggregate; +using System.ComponentModel.DataAnnotations; + +namespace SJZY.Track.Domain.Aggregates.OrderAggregate; /// /// 轨迹订单主表 /// [SugarTable("t_order")] -public class OrderEntity : IFullAuditedBasicEntitys +public class OrderEntity : IFullAuditedBasicEntitys, IAggregateRoot { - /// /// 自增主键 /// @@ -67,4 +68,25 @@ public class OrderEntity : IFullAuditedBasicEntitys [SugarColumn(ColumnName = "SubSystemId")] public int SubSystemId { get; set; } + + public bool IsEqual(NoInfo noInfo) + { + return OrderType == noInfo.NoType && OrderNo == noInfo.OrderNo; + } +} + +public struct NoInfo +{ + /// + /// 订单类型,必填 + /// + [Required] + public int NoType { get; set; } + + /// + /// 订单号,必填 + /// + [Required] + [MaxLength(100)] + public string OrderNo { get; set; } } \ No newline at end of file diff --git a/src/SJZY.Track.Domain/OrderAggregate/OrderLinkEntity.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderLinkEntity.cs similarity index 92% rename from src/SJZY.Track.Domain/OrderAggregate/OrderLinkEntity.cs rename to src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderLinkEntity.cs index 7f8cbb5d..96c005b5 100644 --- a/src/SJZY.Track.Domain/OrderAggregate/OrderLinkEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderLinkEntity.cs @@ -1,13 +1,12 @@ -namespace SJZY.Track.Domain.OrderAggregate; +namespace SJZY.Track.Domain.Aggregates.OrderAggregate; /// /// 轨迹订单关联表(1:N) /// [SugarTable("t_order_link")] public class OrderLinkEntity : ICreateBaicEntity, - ISoftDeleteBasicEntity + ISoftDeleteBasicEntity, IEntity { - /// /// 自增主键 /// @@ -19,19 +18,19 @@ public class OrderLinkEntity : ICreateBaicEntity, /// [SugarColumn(ColumnName = "OrderType")] public int OrderType { get; set; } - + /// /// 订单号 /// [SugarColumn(ColumnName = "OrderNo")] public string OrderNo { get; set; } - + /// /// 关联的订单类型 /// [SugarColumn(ColumnName = "LinkOrderType")] public int LinkOrderType { get; set; } - + /// /// 关联的订单号 /// @@ -42,12 +41,12 @@ public class OrderLinkEntity : ICreateBaicEntity, /// 创建人 /// public int CreateUserId { get; set; } - + /// /// 创建时间 /// public DateTime? CreateTime { get; set; } - + /// /// 是否删除(已解绑) /// diff --git a/src/SJZY.Track.Domain/OrderAggregate/OrderTemplateEntity.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderTemplateEntity.cs similarity index 86% rename from src/SJZY.Track.Domain/OrderAggregate/OrderTemplateEntity.cs rename to src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderTemplateEntity.cs index fcff4ede..91219904 100644 --- a/src/SJZY.Track.Domain/OrderAggregate/OrderTemplateEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderTemplateEntity.cs @@ -1,12 +1,11 @@ -namespace SJZY.Track.Domain.OrderAggregate; +namespace SJZY.Track.Domain.Aggregates.OrderAggregate; /// /// 轨迹订单模板表(1:N) /// [SugarTable("t_order_template")] -public class OrderTemplateEntity : ICreateBaicEntity +public class OrderTemplateEntity : ICreateBaicEntity, IEntity { - /// /// 自增主键 /// diff --git a/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/ITrackContentRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/ITrackContentRepository.cs new file mode 100644 index 00000000..b343163b --- /dev/null +++ b/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/ITrackContentRepository.cs @@ -0,0 +1,5 @@ +namespace SJZY.Track.Domain.Aggregates.TrackContentAggregate; + +public interface ITrackContentRepository : IBasicRepository +{ +} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/TrackContentAggregate/TrackContentEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/TrackContentEntity.cs similarity index 89% rename from src/SJZY.Track.Domain/TrackContentAggregate/TrackContentEntity.cs rename to src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/TrackContentEntity.cs index baaa22de..adf4b23b 100644 --- a/src/SJZY.Track.Domain/TrackContentAggregate/TrackContentEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/TrackContentEntity.cs @@ -1,10 +1,10 @@ -namespace SJZY.Track.Domain.TrackContentAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackContentAggregate; /// /// 轨迹内容 /// [SugarTable("t_track_content")] -public class TrackContentEntity : IFullAuditedBasicEntitys +public class TrackContentEntity : IFullAuditedBasicEntitys, IAggregateRoot { /// /// 自增主键 diff --git a/src/SJZY.Track.Domain/TrackContentAggregate/TrackContentMapEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/TrackContentMapEntity.cs similarity index 81% rename from src/SJZY.Track.Domain/TrackContentAggregate/TrackContentMapEntity.cs rename to src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/TrackContentMapEntity.cs index d09351b9..fbeb2e9c 100644 --- a/src/SJZY.Track.Domain/TrackContentAggregate/TrackContentMapEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackContentAggregate/TrackContentMapEntity.cs @@ -1,10 +1,10 @@ -namespace SJZY.Track.Domain.TrackContentAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackContentAggregate; /// /// 轨迹内容映射表 /// [SugarTable("t_track_content_map")] -public class TrackContentMapEntity : IFullAuditedBasicEntitys +public class TrackContentMapEntity : IFullAuditedBasicEntitys, IEntity { /// /// 自增主键 diff --git a/src/SJZY.Track.Domain/TrackDetailsAggregate/ITrackDetailsRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsRepository.cs similarity index 65% rename from src/SJZY.Track.Domain/TrackDetailsAggregate/ITrackDetailsRepository.cs rename to src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsRepository.cs index 54588768..5e83c476 100644 --- a/src/SJZY.Track.Domain/TrackDetailsAggregate/ITrackDetailsRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/ITrackDetailsRepository.cs @@ -1,7 +1,6 @@ -using SJZY.Track.Domain.TrackDetailsAggregate; -using SJZY.Track.Repository.TrackDetails.Dtos; +using SJZY.Track.Domain.Dtos.TrackDetails; -namespace SJZY.Track.Repository.TrackDetails; +namespace SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; public interface ITrackDetailsRepository { diff --git a/src/SJZY.Track.Domain/TrackDetailsAggregate/TrackDetailsIndex.cs b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs similarity index 94% rename from src/SJZY.Track.Domain/TrackDetailsAggregate/TrackDetailsIndex.cs rename to src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs index d82c1cfc..9040ecc2 100644 --- a/src/SJZY.Track.Domain/TrackDetailsAggregate/TrackDetailsIndex.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackDetailsAggregate/TrackDetailsIndex.cs @@ -1,9 +1,9 @@ using Nest; using SJZY.Expand.ElasticSearch; -namespace SJZY.Track.Domain.TrackDetailsAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; -[ElasticsearchType(Name = IndexName)] +[ElasticsearchType(RelationName = IndexName)] public class TrackDetailsIndex : IdBaseIndex { public const string IndexName = "sjzy_track_details"; diff --git a/src/SJZY.Track.Domain/TrackFlagAggregate/ITrackFlagRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackFlagAggregate/ITrackFlagRepository.cs similarity index 55% rename from src/SJZY.Track.Domain/TrackFlagAggregate/ITrackFlagRepository.cs rename to src/SJZY.Track.Domain/Aggregates/TrackFlagAggregate/ITrackFlagRepository.cs index 1242e908..f465cb25 100644 --- a/src/SJZY.Track.Domain/TrackFlagAggregate/ITrackFlagRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackFlagAggregate/ITrackFlagRepository.cs @@ -1,4 +1,4 @@ -namespace SJZY.Track.Domain.TrackFlagAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackFlagAggregate; public interface ITrackFlagRepository : IBasicRepository { diff --git a/src/SJZY.Track.Domain/TrackFlagAggregate/TrackFlagEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackFlagAggregate/TrackFlagEntity.cs similarity index 83% rename from src/SJZY.Track.Domain/TrackFlagAggregate/TrackFlagEntity.cs rename to src/SJZY.Track.Domain/Aggregates/TrackFlagAggregate/TrackFlagEntity.cs index 5a74c55e..6f689e51 100644 --- a/src/SJZY.Track.Domain/TrackFlagAggregate/TrackFlagEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackFlagAggregate/TrackFlagEntity.cs @@ -1,10 +1,10 @@ -namespace SJZY.Track.Domain.TrackFlagAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackFlagAggregate; /// /// 轨迹标记表 /// [SugarTable("t_track_flag")] -public class TrackFlagEntity : IFullAuditedBasicEntitys +public class TrackFlagEntity : IFullAuditedBasicEntitys, IAggregateRoot { /// /// 自增主键 diff --git a/src/SJZY.Track.Domain/TrackPullAggregate/ITrackPullConfigRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/ITrackPullConfigRepository.cs similarity index 59% rename from src/SJZY.Track.Domain/TrackPullAggregate/ITrackPullConfigRepository.cs rename to src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/ITrackPullConfigRepository.cs index 5ef232c9..3b0b8441 100644 --- a/src/SJZY.Track.Domain/TrackPullAggregate/ITrackPullConfigRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/ITrackPullConfigRepository.cs @@ -1,6 +1,5 @@ -namespace SJZY.Track.Domain.TrackPullAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackPullAggregate; public interface ITrackPullConfigRepository : IBasicRepository { - } \ No newline at end of file diff --git a/src/SJZY.Track.Domain/TrackPullAggregate/TrackPullConfigEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPullConfigEntity.cs similarity index 88% rename from src/SJZY.Track.Domain/TrackPullAggregate/TrackPullConfigEntity.cs rename to src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPullConfigEntity.cs index 090e8078..1a672799 100644 --- a/src/SJZY.Track.Domain/TrackPullAggregate/TrackPullConfigEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPullConfigEntity.cs @@ -1,12 +1,11 @@ -namespace SJZY.Track.Domain.TrackPullAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackPullAggregate; /// /// 轨迹拉取配置表 /// [SugarTable("t_track_pull_config")] -public class TrackPullConfigEntity : IFullAuditedBasicEntitys +public class TrackPullConfigEntity : IFullAuditedBasicEntitys, IAggregateRoot { - /// /// 自增主键 /// @@ -42,5 +41,4 @@ public class TrackPullConfigEntity : IFullAuditedBasicEntitys /// [SugarColumn(ColumnName = "TrackTemplateId")] public int TrackTemplateId { get; set; } - } \ No newline at end of file diff --git a/src/SJZY.Track.Domain/TrackPullAggregate/TrackPullContentConfigEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPullContentConfigEntity.cs similarity index 96% rename from src/SJZY.Track.Domain/TrackPullAggregate/TrackPullContentConfigEntity.cs rename to src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPullContentConfigEntity.cs index f4194d72..f9de867c 100644 --- a/src/SJZY.Track.Domain/TrackPullAggregate/TrackPullContentConfigEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPullContentConfigEntity.cs @@ -1,12 +1,11 @@ -namespace SJZY.Track.Domain.TrackPullAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackPullAggregate; /// /// 轨迹拉取内容配置表 /// [SugarTable("t_track_pull_content_config")] -public class TrackPullContentConfigEntity : IFullAuditedBasicEntitys +public class TrackPullContentConfigEntity : IFullAuditedBasicEntitys, IEntity { - /// /// 自增主键 /// @@ -66,5 +65,4 @@ public class TrackPullContentConfigEntity : IFullAuditedBasicEntitys /// [SugarColumn(ColumnName = "TrackTimeZone")] public string TrackTimeZone { get; set; } - } \ No newline at end of file diff --git a/src/SJZY.Track.Domain/TrackPullAggregate/TrackPushPullParamsConfigEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPushPullParamsConfigEntity.cs similarity index 96% rename from src/SJZY.Track.Domain/TrackPullAggregate/TrackPushPullParamsConfigEntity.cs rename to src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPushPullParamsConfigEntity.cs index 7473bf76..8187c651 100644 --- a/src/SJZY.Track.Domain/TrackPullAggregate/TrackPushPullParamsConfigEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPushPullParamsConfigEntity.cs @@ -1,10 +1,10 @@ -namespace SJZY.Track.Domain.TrackPullAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackPullAggregate; /// /// 轨迹拉取/推送参数配置 /// [SugarTable("t_track_push_pull_params_config")] -public class TrackPushPullParamsConfigEntity : IFullAuditedBasicEntitys +public class TrackPushPullParamsConfigEntity : IFullAuditedBasicEntitys, IEntity { /// /// 自增主键 diff --git a/src/SJZY.Track.Domain/TrackPushAggregate/ITrackPushConfigRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/ITrackPushConfigRepository.cs similarity index 59% rename from src/SJZY.Track.Domain/TrackPushAggregate/ITrackPushConfigRepository.cs rename to src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/ITrackPushConfigRepository.cs index 6f3474b0..abceffa6 100644 --- a/src/SJZY.Track.Domain/TrackPushAggregate/ITrackPushConfigRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/ITrackPushConfigRepository.cs @@ -1,4 +1,4 @@ -namespace SJZY.Track.Domain.TrackPushAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackPushAggregate; public interface ITrackPushConfigRepository : IBasicRepository { diff --git a/src/SJZY.Track.Domain/TrackPushAggregate/TrackPushConfigEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushConfigEntity.cs similarity index 88% rename from src/SJZY.Track.Domain/TrackPushAggregate/TrackPushConfigEntity.cs rename to src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushConfigEntity.cs index 334b93c1..00088ccd 100644 --- a/src/SJZY.Track.Domain/TrackPushAggregate/TrackPushConfigEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushConfigEntity.cs @@ -1,10 +1,10 @@ -namespace SJZY.Track.Domain.TrackPushAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackPushAggregate; /// /// 轨迹推送配置表 /// [SugarTable("t_track_push_config")] -public class TrackPushConfigEntity : IFullAuditedBasicEntitys +public class TrackPushConfigEntity : IFullAuditedBasicEntitys, IAggregateRoot { /// /// 自增主键 diff --git a/src/SJZY.Track.Domain/TrackPushAggregate/TrackPushContentConfigEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushContentConfigEntity.cs similarity index 96% rename from src/SJZY.Track.Domain/TrackPushAggregate/TrackPushContentConfigEntity.cs rename to src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushContentConfigEntity.cs index db2e408b..a1223bb0 100644 --- a/src/SJZY.Track.Domain/TrackPushAggregate/TrackPushContentConfigEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackPushAggregate/TrackPushContentConfigEntity.cs @@ -1,10 +1,10 @@ -namespace SJZY.Track.Domain.TrackPushAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackPushAggregate; /// /// 轨迹推送内容配置表 /// [SugarTable("t_track_push_content_config")] -public class TrackPushContentConfigEntity : IFullAuditedBasicEntitys +public class TrackPushContentConfigEntity : IFullAuditedBasicEntitys, IEntity { /// /// 自增主键 diff --git a/src/SJZY.Track.Domain/TrackStatusAggregate/ITrackStatusRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/ITrackStatusRepository.cs similarity index 56% rename from src/SJZY.Track.Domain/TrackStatusAggregate/ITrackStatusRepository.cs rename to src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/ITrackStatusRepository.cs index 34cb832b..9d17663e 100644 --- a/src/SJZY.Track.Domain/TrackStatusAggregate/ITrackStatusRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/ITrackStatusRepository.cs @@ -1,6 +1,5 @@ -namespace SJZY.Track.Domain.TrackStatusAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackStatusAggregate; public interface ITrackStatusRepository : IBasicRepository { - } \ No newline at end of file diff --git a/src/SJZY.Track.Domain/TrackStatusAggregate/TrackStatusEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/TrackStatusEntity.cs similarity index 87% rename from src/SJZY.Track.Domain/TrackStatusAggregate/TrackStatusEntity.cs rename to src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/TrackStatusEntity.cs index f23c8340..7d1b1a0d 100644 --- a/src/SJZY.Track.Domain/TrackStatusAggregate/TrackStatusEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackStatusAggregate/TrackStatusEntity.cs @@ -1,10 +1,10 @@ -namespace SJZY.Track.Domain.TrackStatusAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackStatusAggregate; /// /// 轨迹状态表 /// [SugarTable("t_track_status")] -public class TrackStatusEntity : IFullAuditedBasicEntitys +public class TrackStatusEntity : IFullAuditedBasicEntitys, IAggregateRoot { /// /// 自增主键 diff --git a/src/SJZY.Track.Domain/TrackTemplateAggregate/ITrackTemplateRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/ITrackTemplateRepository.cs similarity index 85% rename from src/SJZY.Track.Domain/TrackTemplateAggregate/ITrackTemplateRepository.cs rename to src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/ITrackTemplateRepository.cs index 41f4fbf3..a20f2ced 100644 --- a/src/SJZY.Track.Domain/TrackTemplateAggregate/ITrackTemplateRepository.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/ITrackTemplateRepository.cs @@ -1,6 +1,6 @@ -using SJZY.Track.Domain.TrackTemplateAggregate.Dtos; +using SJZY.Track.Domain.Dtos.TrackTemplate; -namespace SJZY.Track.Domain.TrackTemplateAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; public interface ITrackTemplateRepository : IBasicRepository { @@ -15,7 +15,8 @@ public interface ITrackTemplateRepository : IBasicRepository /// /// - Task> GetContentPageAsync(GetTrackTemplateContentPageInputVO input); + Task> GetContentPageAsync( + GetTrackTemplateContentPageInputVO input); /// /// 轨迹模板内容详情 diff --git a/src/SJZY.Track.Domain/TrackTemplateAggregate/TrackTemplateContentEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/TrackTemplateContentEntity.cs similarity index 93% rename from src/SJZY.Track.Domain/TrackTemplateAggregate/TrackTemplateContentEntity.cs rename to src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/TrackTemplateContentEntity.cs index 95f666ae..3d8ba38a 100644 --- a/src/SJZY.Track.Domain/TrackTemplateAggregate/TrackTemplateContentEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/TrackTemplateContentEntity.cs @@ -1,10 +1,10 @@ -namespace SJZY.Track.Domain.TrackTemplateAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; /// /// 轨迹模板内容表(1:N) /// [SugarTable("t_track_template_content")] -public class TrackTemplateContentEntity : IFullAuditedBasicEntitys +public class TrackTemplateContentEntity : IFullAuditedBasicEntitys, IEntity { /// /// 自增主键 diff --git a/src/SJZY.Track.Domain/TrackTemplateAggregate/TrackTemplateEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/TrackTemplateEntity.cs similarity index 82% rename from src/SJZY.Track.Domain/TrackTemplateAggregate/TrackTemplateEntity.cs rename to src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/TrackTemplateEntity.cs index a8fa9718..ce861050 100644 --- a/src/SJZY.Track.Domain/TrackTemplateAggregate/TrackTemplateEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/TrackTemplateEntity.cs @@ -1,12 +1,11 @@ -namespace SJZY.Track.Domain.TrackTemplateAggregate; +namespace SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; /// /// 轨迹模板表 /// [SugarTable("t_track_template")] -public class TrackTemplateEntity : IFullAuditedBasicEntitys +public class TrackTemplateEntity : IFullAuditedBasicEntitys, IAggregateRoot { - /// /// 自增主键 /// @@ -30,5 +29,4 @@ public class TrackTemplateEntity : IFullAuditedBasicEntitys /// [SugarColumn(ColumnName = "SubSystemId")] public int SubSystemId { get; set; } - } \ No newline at end of file diff --git a/src/SJZY.Track.Domain/DemoAggregate/Dtos/DemoValueObject.cs b/src/SJZY.Track.Domain/DemoAggregate/Dtos/DemoValueObject.cs deleted file mode 100644 index 1c09d547..00000000 --- a/src/SJZY.Track.Domain/DemoAggregate/Dtos/DemoValueObject.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace SJZY.Track.Domain.DemoAggregate.Dtos -{ - public class DemoValueObject - { - - public string Name { get; set; } - - /// - /// 当前页码 - /// - public int PageIndex { get; set; } - - /// - /// 每页大小 - /// - public int PageSize { get; set; } - } -} diff --git a/src/SJZY.Track.Domain/Dtos/Demo/DemoValueObject.cs b/src/SJZY.Track.Domain/Dtos/Demo/DemoValueObject.cs new file mode 100644 index 00000000..aa5db1e2 --- /dev/null +++ b/src/SJZY.Track.Domain/Dtos/Demo/DemoValueObject.cs @@ -0,0 +1,16 @@ +namespace SJZY.Track.Domain.Dtos.Demo; + +public class DemoValueObject +{ + public string Name { get; set; } + + /// + /// 当前页码 + /// + public int PageIndex { get; set; } + + /// + /// 每页大小 + /// + public int PageSize { get; set; } +} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/OrderAggregate/Dtos/OrderTemplateDto.cs b/src/SJZY.Track.Domain/Dtos/Order/OrderTemplateDto.cs similarity index 82% rename from src/SJZY.Track.Domain/OrderAggregate/Dtos/OrderTemplateDto.cs rename to src/SJZY.Track.Domain/Dtos/Order/OrderTemplateDto.cs index 7cf444f2..df433d5d 100644 --- a/src/SJZY.Track.Domain/OrderAggregate/Dtos/OrderTemplateDto.cs +++ b/src/SJZY.Track.Domain/Dtos/Order/OrderTemplateDto.cs @@ -1,4 +1,4 @@ -namespace SJZY.Track.Domain.OrderAggregate.Dtos; +namespace SJZY.Track.Domain.Dtos.Order; public class OrderTemplateDto { diff --git a/src/SJZY.Track.Domain/TrackDetailsAggregate/Dtos/TrackDetailsQueryInput.cs b/src/SJZY.Track.Domain/Dtos/TrackDetails/TrackDetailsQueryInput.cs similarity index 76% rename from src/SJZY.Track.Domain/TrackDetailsAggregate/Dtos/TrackDetailsQueryInput.cs rename to src/SJZY.Track.Domain/Dtos/TrackDetails/TrackDetailsQueryInput.cs index 680a0806..3a7b4d0d 100644 --- a/src/SJZY.Track.Domain/TrackDetailsAggregate/Dtos/TrackDetailsQueryInput.cs +++ b/src/SJZY.Track.Domain/Dtos/TrackDetails/TrackDetailsQueryInput.cs @@ -1,4 +1,4 @@ -namespace SJZY.Track.Repository.TrackDetails.Dtos; +namespace SJZY.Track.Domain.Dtos.TrackDetails; public class TrackDetailsQueryInput : PageInfoInput { diff --git a/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetPageTrackTemplateVO.cs b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetPageTrackTemplateVO.cs similarity index 88% rename from src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetPageTrackTemplateVO.cs rename to src/SJZY.Track.Domain/Dtos/TrackTemplate/GetPageTrackTemplateVO.cs index c0c26bfe..e4fa7963 100644 --- a/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetPageTrackTemplateVO.cs +++ b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetPageTrackTemplateVO.cs @@ -1,4 +1,4 @@ -namespace SJZY.Track.Domain.TrackTemplateAggregate.Dtos; +namespace SJZY.Track.Domain.Dtos.TrackTemplate; public class GetPageTrackTemplateVO : PageInfoInput { diff --git a/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTrackTemplateContentDetailOutputVO.cs b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTrackTemplateContentDetailOutputVO.cs new file mode 100644 index 00000000..4e8a8f45 --- /dev/null +++ b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTrackTemplateContentDetailOutputVO.cs @@ -0,0 +1,41 @@ +namespace SJZY.Track.Domain.Dtos.TrackTemplate; + +public class GetTrackTemplateContentDetailOutputVO +{ + public int Id { get; set; } + + /// + /// 是否可删 + /// + public bool IsCanDelete { get; set; } + + /// + /// 是否对外 + /// + public bool IsExternal { get; set; } + + /// + /// 排序 + /// + public int Sort { get; set; } + + /// + /// 轨迹内容 + /// + public string TrackContent { get; set; } + + /// + /// 轨迹内容id + /// + public int TrackContentId { get; set; } + + /// + /// 轨迹状态 + /// + public string TrackStatus { get; set; } + + /// + /// 轨迹状态id + /// + public int TrackStatusId { get; set; } +} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetTrackTemplateContentPageInputVO.cs b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTrackTemplateContentPageInputVO.cs similarity index 74% rename from src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetTrackTemplateContentPageInputVO.cs rename to src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTrackTemplateContentPageInputVO.cs index 01f0d8ad..d08ad492 100644 --- a/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetTrackTemplateContentPageInputVO.cs +++ b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTrackTemplateContentPageInputVO.cs @@ -1,4 +1,4 @@ -namespace SJZY.Track.Domain.TrackTemplateAggregate.Dtos; +namespace SJZY.Track.Domain.Dtos.TrackTemplate; public class GetTrackTemplateContentPageInputVO : PageInfoInput { diff --git a/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetTrackTemplateContentPageOutputVO.cs b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTrackTemplateContentPageOutputVO.cs similarity index 95% rename from src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetTrackTemplateContentPageOutputVO.cs rename to src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTrackTemplateContentPageOutputVO.cs index d5159437..dd3a27d4 100644 --- a/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetTrackTemplateContentPageOutputVO.cs +++ b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTrackTemplateContentPageOutputVO.cs @@ -1,4 +1,4 @@ -namespace SJZY.Track.Domain.TrackTemplateAggregate.Dtos; +namespace SJZY.Track.Domain.Dtos.TrackTemplate; public class GetTrackTemplateContentPageOutputVO { diff --git a/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetTrackTemplateDetailVO.cs b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTrackTemplateDetailVO.cs similarity index 95% rename from src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetTrackTemplateDetailVO.cs rename to src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTrackTemplateDetailVO.cs index 72e19fcf..1fa28d92 100644 --- a/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetTrackTemplateDetailVO.cs +++ b/src/SJZY.Track.Domain/Dtos/TrackTemplate/GetTrackTemplateDetailVO.cs @@ -1,4 +1,4 @@ -namespace SJZY.Track.Domain.TrackTemplateAggregate.Dtos; +namespace SJZY.Track.Domain.Dtos.TrackTemplate; /// /// 获取轨迹模版明细 diff --git a/src/SJZY.Track.Domain/Dtos/TrackTemplate/TemplateContentDto.cs b/src/SJZY.Track.Domain/Dtos/TrackTemplate/TemplateContentDto.cs new file mode 100644 index 00000000..4d82a4d5 --- /dev/null +++ b/src/SJZY.Track.Domain/Dtos/TrackTemplate/TemplateContentDto.cs @@ -0,0 +1,5 @@ +namespace SJZY.Track.Domain.Dtos.TrackTemplate; + +public class TemplateContentDto +{ +} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/GlobalUsings.cs b/src/SJZY.Track.Domain/GlobalUsings.cs index 439aa8ea..deaf0047 100644 --- a/src/SJZY.Track.Domain/GlobalUsings.cs +++ b/src/SJZY.Track.Domain/GlobalUsings.cs @@ -7,3 +7,4 @@ global using System; global using System.Collections.Generic; global using System.Linq.Expressions; global using System.Threading.Tasks; +global using SJZY.Track.Domain.SeedWork; \ No newline at end of file diff --git a/src/SJZY.Track.Domain/IBasicQuery.cs b/src/SJZY.Track.Domain/IBasicQuery.cs new file mode 100644 index 00000000..0ddba65d --- /dev/null +++ b/src/SJZY.Track.Domain/IBasicQuery.cs @@ -0,0 +1,38 @@ +namespace SJZY.Track.Domain; + +public interface IBasicQuery where T : IEntity +{ + /// + /// top 1 + /// + /// + /// + Task GetFirstAsync(Expression> whereExpression); + + Task GetFirstAsync(Expression> whereExpression, + Expression> resultExpression); + + /// + /// get list + /// + /// + /// + Task> GetListAsync(Expression> whereExpression); + + Task> GetListAsync(Expression> whereExpression, + Expression> resultExpression); + + /// + /// count + /// + /// + /// + Task CountAsync(Expression> exp); + + /// + /// exists + /// + /// + /// + Task IsAnyAsync(Expression> exp); +} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/IBasicRepository.cs b/src/SJZY.Track.Domain/IBasicRepository.cs index 05560f86..b085429b 100644 --- a/src/SJZY.Track.Domain/IBasicRepository.cs +++ b/src/SJZY.Track.Domain/IBasicRepository.cs @@ -1,39 +1,7 @@ namespace SJZY.Track.Domain; -public interface IBasicRepository +public interface IBasicRepository : IBasicQuery where T : IAggregateRoot { - /// - /// top 1 - /// - /// - /// - Task GetFirstAsync(Expression> whereExpression); - - Task GetFirstAsync(Expression> whereExpression, Expression> resultExpression); - - /// - /// get list - /// - /// - /// - Task> GetListAsync(Expression> whereExpression); - - Task> GetListAsync(Expression> whereExpression, Expression> resultExpression); - - /// - /// count - /// - /// - /// - Task CountAsync(Expression> exp); - - /// - /// exists - /// - /// - /// - Task IsAnyAsync(Expression> exp); - /// /// update /// diff --git a/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj b/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj index 69cf9fb3..b40c78be 100644 --- a/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj +++ b/src/SJZY.Track.Domain/SJZY.Track.Domain.csproj @@ -12,12 +12,7 @@ - - - - - - + diff --git a/src/SJZY.Track.Domain/SeedWork/IAggregateRoot.cs b/src/SJZY.Track.Domain/SeedWork/IAggregateRoot.cs new file mode 100644 index 00000000..613c8055 --- /dev/null +++ b/src/SJZY.Track.Domain/SeedWork/IAggregateRoot.cs @@ -0,0 +1,5 @@ +namespace SJZY.Track.Domain.SeedWork; + +public interface IAggregateRoot : IEntity +{ +} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/SeedWork/IEntity.cs b/src/SJZY.Track.Domain/SeedWork/IEntity.cs new file mode 100644 index 00000000..06cf92fc --- /dev/null +++ b/src/SJZY.Track.Domain/SeedWork/IEntity.cs @@ -0,0 +1,5 @@ +namespace SJZY.Track.Domain.SeedWork; + +public interface IEntity +{ +} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/TrackContentAggregate/ITrackContentRepository.cs b/src/SJZY.Track.Domain/TrackContentAggregate/ITrackContentRepository.cs deleted file mode 100644 index 110f297e..00000000 --- a/src/SJZY.Track.Domain/TrackContentAggregate/ITrackContentRepository.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace SJZY.Track.Domain.TrackContentAggregate -{ - public interface ITrackContentRepository : IBasicRepository - { - } -} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetTrackTemplateContentDetailOutputVO.cs b/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetTrackTemplateContentDetailOutputVO.cs deleted file mode 100644 index eb787aef..00000000 --- a/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/GetTrackTemplateContentDetailOutputVO.cs +++ /dev/null @@ -1,42 +0,0 @@ -namespace SJZY.Track.Domain.TrackTemplateAggregate.Dtos -{ - public class GetTrackTemplateContentDetailOutputVO - { - public int Id { get; set; } - - /// - /// 是否可删 - /// - public bool IsCanDelete { get; set; } - - /// - /// 是否对外 - /// - public bool IsExternal { get; set; } - - /// - /// 排序 - /// - public int Sort { get; set; } - - /// - /// 轨迹内容 - /// - public string TrackContent { get; set; } - - /// - /// 轨迹内容id - /// - public int TrackContentId { get; set; } - - /// - /// 轨迹状态 - /// - public string TrackStatus { get; set; } - - /// - /// 轨迹状态id - /// - public int TrackStatusId { get; set; } - } -} \ No newline at end of file diff --git a/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/TemplateContentDto.cs b/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/TemplateContentDto.cs deleted file mode 100644 index 0906d25a..00000000 --- a/src/SJZY.Track.Domain/TrackTemplateAggregate/Dtos/TemplateContentDto.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace SJZY.Track.Domain.TrackTemplateAggregate.Dtos; - -public class TemplateContentDto -{ - -} \ No newline at end of file diff --git a/src/SJZY.Track.Repository/BasicQuery.cs b/src/SJZY.Track.Repository/BasicQuery.cs new file mode 100644 index 00000000..0e0d8874 --- /dev/null +++ b/src/SJZY.Track.Repository/BasicQuery.cs @@ -0,0 +1,25 @@ +using System.Linq.Expressions; +using SJZY.Track.Domain; +using SJZY.Track.Domain.SeedWork; + +namespace SJZY.Track.Repository; + +public class BasicQuery : SimpleClient, IBasicQuery where T : class, IEntity, new() +{ + public BasicQuery() + { + Context = SqlsugarScopeBasic.GetContextSafely("default"); + } + + public async Task GetFirstAsync(Expression> whereExpression, + Expression> resultExpression) + { + return await Context.Queryable().Where(whereExpression).Select(resultExpression).FirstAsync(); + } + + public async Task> GetListAsync(Expression> whereExpression, + Expression> resultExpression) + { + return await Context.Queryable().Where(whereExpression).Select(resultExpression).ToListAsync(); + } +} \ No newline at end of file diff --git a/src/SJZY.Track.Repository/BasicRepository.cs b/src/SJZY.Track.Repository/BasicRepository.cs index d6ed5564..a4616860 100644 --- a/src/SJZY.Track.Repository/BasicRepository.cs +++ b/src/SJZY.Track.Repository/BasicRepository.cs @@ -1,5 +1,6 @@ -using SJZY.Track.Domain; -using System.Linq.Expressions; +using System.Linq.Expressions; +using SJZY.Track.Domain; +using SJZY.Track.Domain.SeedWork; using Volo.Abp; namespace SJZY.Track.Repository; @@ -8,25 +9,8 @@ namespace SJZY.Track.Repository; /// 仓储基类实现 /// /// -public class BasicRepository : SimpleClient, IBasicRepository where T : class, new() +public class BasicRepository : BasicQuery, IBasicRepository where T : class, IAggregateRoot, new() { - public BasicRepository() - { - Context = SqlsugarScopeBasic.GetContextSafely("default"); - } - - public async Task GetFirstAsync(Expression> whereExpression, - Expression> resultExpression) - { - return await Context.Queryable().Where(whereExpression).Select(resultExpression).FirstAsync(); - } - - public async Task> GetListAsync(Expression> whereExpression, - Expression> resultExpression) - { - return await Context.Queryable().Where(whereExpression).Select(resultExpression).ToListAsync(); - } - public async Task UpdateAsync(T entity, Expression> ignoreColumns) { return await Context.Updateable(entity) diff --git a/src/SJZY.Track.Repository/DemoRepository.cs b/src/SJZY.Track.Repository/DemoRepository.cs index 3d8135f9..18a8d5da 100644 --- a/src/SJZY.Track.Repository/DemoRepository.cs +++ b/src/SJZY.Track.Repository/DemoRepository.cs @@ -1,84 +1,87 @@ -using SJZY.Track.Domain.DemoAggregate; -using SJZY.Track.Domain.DemoAggregate.Dtos; -using System.Transactions; +using System.Transactions; +using SJZY.Track.Domain.Aggregates.DemoAggregate; +using SJZY.Track.Domain.Dtos.Demo; -namespace SJZY.Track.Repository +namespace SJZY.Track.Repository; + +public class DemoRepository : BasicRepository, IDemoRepository, IScopedDependency { - public class DemoRepository : BasicRepository, IDemoRepository, IScopedDependency + /* + 一般情况下常规的增删改方法不需要自己实现,只需要按照 BasicRepository 中的格式原封不动的暴露出去即可, + 比如这里接口 只声明了 UpdateAsync 和 InsertReturnIdentityAsync 接口的定义,但是这两个方法的实现我们不用写,直接交给父类实现即可 + */ + + #region 根据主键获取单条数据 + + /// + /// 根据主键获取单条数据 + /// + /// + /// + public Task GetById1(int id) { /* - 一般情况下常规的增删改方法不需要自己实现,只需要按照 BasicRepository 中的格式原封不动的暴露出去即可, - 比如这里接口 只声明了 UpdateAsync 和 InsertReturnIdentityAsync 接口的定义,但是这两个方法的实现我们不用写,直接交给父类实现即可 + + //以下两种方法都不会因为没找到数据而抛异常 + var model1 = base.GetFirst(m => m.Id == 0); + var model = base.GetSingle(m => m.Id == 0); + + + + //同样的写法在linq下,如果不加 OrDefault 一定会报错 + var model = base.GetList().Single(m => m.Id == 0); + var model1 = base.GetList().First(m => m.Id == 0); + */ + return base.GetSingleAsync(it => it.Id == id); + } - #region 根据主键获取单条数据 + #endregion - /// - /// 根据主键获取单条数据 - /// - /// - /// - public Task GetById1(int id) - { - /* - - //以下两种方法都不会因为没找到数据而抛异常 - var model1 = base.GetFirst(m => m.Id == 0); - var model = base.GetSingle(m => m.Id == 0); - + #region 分页获取 + /// + /// 分页获取 + /// + /// + /// + public async Task> GetListByPage(int pageSize, int pageindex, string name) + { + var list = await AsQueryable() + .WhereIF(!string.IsNullOrEmpty(name), a => a.Name.Contains(name)) + .ToPagedListAsync(pageindex, pageSize); - //同样的写法在linq下,如果不加 OrDefault 一定会报错 - var model = base.GetList().Single(m => m.Id == 0); - var model1 = base.GetList().First(m => m.Id == 0); + return list; + } - */ - return base.GetSingleAsync(it => it.Id == id); - } + #endregion - #endregion + #region 参数为实体 - #region 分页获取 + /// + /// 参数很多的时候,定义模型接受参数 + /// + /// + /// + public async Task> InputToValueObject(DemoValueObject obj) + { + var list = await AsQueryable().ToListAsync(); + return list; + } - /// - /// 分页获取 - /// - /// - /// - public async Task> GetListByPage(int pageSize, int pageindex, string name) - { - var list = await AsQueryable() - .WhereIF(!string.IsNullOrEmpty(name), a => a.Name.Contains(name)) - .ToPagedListAsync(pageindex, pageSize); + #endregion - return list; - } - #endregion + #region 执行原生sql语句 - #region 参数为实体 - - /// - /// 参数很多的时候,定义模型接受参数 - /// - /// - /// - public async Task> InputToValueObject(DemoValueObject obj) - { - var list = await AsQueryable().ToListAsync(); - return list; - } - #endregion - - #region 执行原生sql语句 - /// - /// 执行原生sql语句 - /// - /// - /// - public async Task> OriginalSql(DemoValueObject obj) - { - var parameters = new List(); - var sql = @$" + /// + /// 执行原生sql语句 + /// + /// + /// + public async Task> OriginalSql(DemoValueObject obj) + { + var parameters = new List(); + var sql = @$" select a.id, a.Name, @@ -89,110 +92,117 @@ namespace SJZY.Track.Repository {" and a.Name like @Name ".WhereIF(!string.IsNullOrEmpty(obj.Name), obj.Name, ref parameters)} order by a.id desc "; - var list = await Context.SqlQueryable(sql) - .AddParameters(parameters) - .ToPagedListAsync(obj.PageIndex, obj.PageSize); + var list = await Context.SqlQueryable(sql) + .AddParameters(parameters) + .ToPagedListAsync(obj.PageIndex, obj.PageSize); - return list; - } + return list; + } - #endregion + #endregion - #region 简单事务 - public async Task Transaction() + #region 简单事务 + + public async Task Transaction() + { + using (var ts = new TransactionScope()) { + await base.InsertAsync(new DemoEntity { Name = "1111" }); + await base.InsertAsync(new DemoEntity { Name = "222" }); + await base.InsertAsync(new DemoEntity { Name = "3333" }); - using (var ts = new TransactionScope()) - { + //throw new BusinessException("E05632","手动抛异常"); + await base.InsertAsync(new DemoEntity { Name = "4444" }); - await base.InsertAsync(new DemoEntity { Name = "1111" }); - await base.InsertAsync(new DemoEntity { Name = "222" }); - await base.InsertAsync(new DemoEntity { Name = "3333" }); - - //throw new BusinessException("E05632","手动抛异常"); - await base.InsertAsync(new DemoEntity { Name = "4444" }); - - ts.Complete(); - } + ts.Complete(); } - #endregion + } - #region 夸方法事务 - public async Task MultipleMethodTrans1() + #endregion + + #region 夸方法事务 + + public async Task MultipleMethodTrans1() + { + await base.InsertAsync(new DemoEntity { Name = "---" }); + await base.InsertAsync(new DemoEntity { Name = "+++" }); + } + + public async Task MultipleMethodTrans2() + { + //throw new BusinessException(message: "手动抛出异常"); + await base.InsertAsync(new DemoEntity { Name = "xxx" }); + } + + #endregion + + #region 事务嵌套 + + public async Task InternalTrans() + { + using (var ts = new TransactionScope()) { - await base.InsertAsync(new DemoEntity { Name = "---" }); - await base.InsertAsync(new DemoEntity { Name = "+++" }); - } - - public async Task MultipleMethodTrans2() - { - + await Transaction(); + await MultipleMethodTrans1(); //throw new BusinessException(message: "手动抛出异常"); await base.InsertAsync(new DemoEntity { Name = "xxx" }); + + ts.Complete(); } - #endregion - - #region 事务嵌套 - public async Task InternalTrans() - { - using (var ts = new TransactionScope()) - { - await Transaction(); - await MultipleMethodTrans1(); - //throw new BusinessException(message: "手动抛出异常"); - await base.InsertAsync(new DemoEntity { Name = "xxx" }); - - ts.Complete(); - } - } - #endregion - - #region 局部更新 - public async Task UpdatePartColumns(DemoEntity entity) - { - Context.Updateable(entity).UpdateColumns(m => new { m.Description, m.Name }).ExecuteCommand(); - // UPDATE `test` SET `Name`= 'string',`Description`= 'string' WHERE `id`= 5 - - Context.Updateable(entity).IgnoreColumns(m => new { m.CreateUserId, m.Age }).ExecuteCommand(); - // UPDATE `test` SET`IsDeleted`= 0,`Name`= 'string',`Description`= 'string',`EnabledMark`= 0,`DeleteUserId`= 0,`DeleteTime`= '2022/8/13 23:42:36',`CreateTime`= '2015/5/12 0:00:00',`UpdateUserId`= 0,`UpdateTime`= '2022/8/13 23:55:27' WHERE `id`= 5 - } - #endregion - - #region 导航属性 - /// - /// 导航属性 - /// - /// - /// - /// - public async Task EntityRelationSave(DemoEntity entity) - { - var res = await Context.InsertNav(entity).Include(m => m.DemoDetailList).ExecuteCommandAsync(); - return res; - } - #endregion - - #region 缓存 - /// - /// 获取数据包含缓存 - /// - /// - /// - public async Task GetDataCache(int id) - { - var redisKey = $"Demo:Endity:{id}"; - var demo = await RedisHelper.Client.GetAsync(redisKey); - if (demo != null) - return demo; - - var aa = Context.Ado.Connection; - demo = await base.GetSingleAsync(m => m.Id == id); - - await RedisHelper.Client.SetAsync(redisKey, demo, 60 * 20); - - return demo; - } - #endregion - } -} + + #endregion + + #region 局部更新 + + public async Task UpdatePartColumns(DemoEntity entity) + { + Context.Updateable(entity).UpdateColumns(m => new { m.Description, m.Name }).ExecuteCommand(); + // UPDATE `test` SET `Name`= 'string',`Description`= 'string' WHERE `id`= 5 + + Context.Updateable(entity).IgnoreColumns(m => new { m.CreateUserId, m.Age }).ExecuteCommand(); + // UPDATE `test` SET`IsDeleted`= 0,`Name`= 'string',`Description`= 'string',`EnabledMark`= 0,`DeleteUserId`= 0,`DeleteTime`= '2022/8/13 23:42:36',`CreateTime`= '2015/5/12 0:00:00',`UpdateUserId`= 0,`UpdateTime`= '2022/8/13 23:55:27' WHERE `id`= 5 + } + + #endregion + + #region 导航属性 + + /// + /// 导航属性 + /// + /// + /// + /// + public async Task EntityRelationSave(DemoEntity entity) + { + var res = await Context.InsertNav(entity).Include(m => m.DemoDetailList).ExecuteCommandAsync(); + return res; + } + + #endregion + + #region 缓存 + + /// + /// 获取数据包含缓存 + /// + /// + /// + public async Task GetDataCache(int id) + { + var redisKey = $"Demo:Endity:{id}"; + var demo = await RedisHelper.Client.GetAsync(redisKey); + if (demo != null) + return demo; + + var aa = Context.Ado.Connection; + demo = await base.GetSingleAsync(m => m.Id == id); + + await RedisHelper.Client.SetAsync(redisKey, demo, 60 * 20); + + return demo; + } + + #endregion +} \ No newline at end of file diff --git a/src/SJZY.Track.Repository/OrderRepository.cs b/src/SJZY.Track.Repository/OrderRepository.cs index 1aa6978b..77d83641 100644 --- a/src/SJZY.Track.Repository/OrderRepository.cs +++ b/src/SJZY.Track.Repository/OrderRepository.cs @@ -1,5 +1,5 @@ -using SJZY.Track.Domain.OrderAggregate; -using SJZY.Track.Domain.OrderAggregate.Dtos; +using SJZY.Track.Domain.Aggregates.OrderAggregate; +using SJZY.Track.Domain.Dtos.Order; namespace SJZY.Track.Repository; diff --git a/src/SJZY.Track.Repository/SJZYTrackRepositoryModule.cs b/src/SJZY.Track.Repository/SJZYTrackRepositoryModule.cs index 2d26e40d..08cdcbb0 100644 --- a/src/SJZY.Track.Repository/SJZYTrackRepositoryModule.cs +++ b/src/SJZY.Track.Repository/SJZYTrackRepositoryModule.cs @@ -21,7 +21,8 @@ public class SJZYTrackRepositoryModule : AbpModule context.Services.AddSqlsugar(options => { - options.AddRange(new List { + options.AddRange(new List + { new() { ConnectionString = configuration["ConnectionStrings:DefaultConnection"], @@ -33,10 +34,6 @@ public class SJZYTrackRepositoryModule : AbpModule ); }, DataBaseContext.OnExcutingAction, "SJZY.Track.Repository"); - - context.Services.AddScoped(typeof(IBasicRepository<>), typeof(BasicRepository<>)); - - context.Services.AddElasticSearch(options => { options.NodeUrls = configuration.GetSection("ElasticSearch:NodeUrls").Get>(); @@ -45,4 +42,10 @@ public class SJZYTrackRepositoryModule : AbpModule options.Base64PassPassword = configuration["ElasticSearch:Base64PassPassword"]; }); } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddTransient(typeof(IBasicQuery<>), typeof(BasicQuery<>)); + context.Services.AddTransient(typeof(IBasicRepository<>), typeof(BasicRepository<>)); + } } \ No newline at end of file diff --git a/src/SJZY.Track.Repository/TrackContentRepository.cs b/src/SJZY.Track.Repository/TrackContentRepository.cs index 8214de10..1bf04097 100644 --- a/src/SJZY.Track.Repository/TrackContentRepository.cs +++ b/src/SJZY.Track.Repository/TrackContentRepository.cs @@ -1,4 +1,4 @@ -using SJZY.Track.Domain.TrackContentAggregate; +using SJZY.Track.Domain.Aggregates.TrackContentAggregate; namespace SJZY.Track.Repository; diff --git a/src/SJZY.Track.Repository/TrackDetailsRepository.cs b/src/SJZY.Track.Repository/TrackDetailsRepository.cs index 2b16dde8..3a0677b9 100644 --- a/src/SJZY.Track.Repository/TrackDetailsRepository.cs +++ b/src/SJZY.Track.Repository/TrackDetailsRepository.cs @@ -2,9 +2,8 @@ using Nest; using SJZY.Expand.ABP.Core.Logger; using SJZY.Expand.ABP.Core.PublicMethords; using SJZY.Expand.ElasticSearch.Services; -using SJZY.Track.Domain.TrackDetailsAggregate; -using SJZY.Track.Repository.TrackDetails; -using SJZY.Track.Repository.TrackDetails.Dtos; +using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; +using SJZY.Track.Domain.Dtos.TrackDetails; namespace SJZY.Track.Repository; diff --git a/src/SJZY.Track.Repository/TrackFlagRepository.cs b/src/SJZY.Track.Repository/TrackFlagRepository.cs index 360c71fd..4c4d623f 100644 --- a/src/SJZY.Track.Repository/TrackFlagRepository.cs +++ b/src/SJZY.Track.Repository/TrackFlagRepository.cs @@ -1,4 +1,4 @@ -using SJZY.Track.Domain.TrackFlagAggregate; +using SJZY.Track.Domain.Aggregates.TrackFlagAggregate; namespace SJZY.Track.Repository; diff --git a/src/SJZY.Track.Repository/TrackPullConfigRepository.cs b/src/SJZY.Track.Repository/TrackPullConfigRepository.cs index 85723f1e..d63120b7 100644 --- a/src/SJZY.Track.Repository/TrackPullConfigRepository.cs +++ b/src/SJZY.Track.Repository/TrackPullConfigRepository.cs @@ -1,7 +1,8 @@ -using SJZY.Track.Domain.TrackPullAggregate; +using SJZY.Track.Domain.Aggregates.TrackPullAggregate; namespace SJZY.Track.Repository; -public class TrackPullConfigRepository : BasicRepository, ITrackPullConfigRepository, IScopedDependency +public class TrackPullConfigRepository : BasicRepository, ITrackPullConfigRepository, + IScopedDependency { } \ No newline at end of file diff --git a/src/SJZY.Track.Repository/TrackPushConfigRepository.cs b/src/SJZY.Track.Repository/TrackPushConfigRepository.cs index b47db5ee..32c71905 100644 --- a/src/SJZY.Track.Repository/TrackPushConfigRepository.cs +++ b/src/SJZY.Track.Repository/TrackPushConfigRepository.cs @@ -1,7 +1,8 @@ -using SJZY.Track.Domain.TrackPushAggregate; +using SJZY.Track.Domain.Aggregates.TrackPushAggregate; namespace SJZY.Track.Repository; -public class TrackPushConfigRepository : BasicRepository, ITrackPushConfigRepository, IScopedDependency +public class TrackPushConfigRepository : BasicRepository, ITrackPushConfigRepository, + IScopedDependency { } \ No newline at end of file diff --git a/src/SJZY.Track.Repository/TrackPushRecord/Entitys/TrackPushRecordEntity.cs b/src/SJZY.Track.Repository/TrackPushRecord/Entitys/TrackPushRecordEntity.cs index 0eeca89e..9b45f7c2 100644 --- a/src/SJZY.Track.Repository/TrackPushRecord/Entitys/TrackPushRecordEntity.cs +++ b/src/SJZY.Track.Repository/TrackPushRecord/Entitys/TrackPushRecordEntity.cs @@ -1,12 +1,13 @@ -namespace SJZY.Track.Repository.TrackPushRecord.Entitys +using SJZY.Track.Domain.SeedWork; + +namespace SJZY.Track.Repository.TrackPushRecord.Entitys { /// /// 轨迹推送记录 /// [SugarTable("t_track_push_record")] - public class TrackPushRecordEntity + public class TrackPushRecordEntity : IAggregateRoot { - /// /// 自增主键 /// @@ -54,6 +55,5 @@ /// [SugarColumn(ColumnName = "TrackTotal")] public string TrackTotal { get; set; } - } } \ No newline at end of file diff --git a/src/SJZY.Track.Repository/TrackPushRecordDetails/Entitys/TrackPushRecordDetailsEntity.cs b/src/SJZY.Track.Repository/TrackPushRecordDetails/Entitys/TrackPushRecordDetailsEntity.cs index 73140fd9..64208102 100644 --- a/src/SJZY.Track.Repository/TrackPushRecordDetails/Entitys/TrackPushRecordDetailsEntity.cs +++ b/src/SJZY.Track.Repository/TrackPushRecordDetails/Entitys/TrackPushRecordDetailsEntity.cs @@ -1,12 +1,13 @@ -namespace SJZY.Track.Repository.TrackPushRecordDetails.Entitys +using SJZY.Track.Domain.SeedWork; + +namespace SJZY.Track.Repository.TrackPushRecordDetails.Entitys { /// /// 轨迹推送明细表 /// [SugarTable("t_track_push_record_details")] - public class TrackPushRecordDetailsEntity + public class TrackPushRecordDetailsEntity : IAggregateRoot { - /// /// 自增主键 /// @@ -42,6 +43,5 @@ /// [SugarColumn(ColumnName = "PushRecordId")] public int PushRecordId { get; set; } - } } \ No newline at end of file diff --git a/src/SJZY.Track.Repository/TrackStatusRepository.cs b/src/SJZY.Track.Repository/TrackStatusRepository.cs index bb13b376..c54bf511 100644 --- a/src/SJZY.Track.Repository/TrackStatusRepository.cs +++ b/src/SJZY.Track.Repository/TrackStatusRepository.cs @@ -1,4 +1,4 @@ -using SJZY.Track.Domain.TrackStatusAggregate; +using SJZY.Track.Domain.Aggregates.TrackStatusAggregate; namespace SJZY.Track.Repository; @@ -7,6 +7,4 @@ public class TrackStatusRepository : BasicRepository, ITrackS public TrackStatusRepository() { } - - } \ No newline at end of file diff --git a/src/SJZY.Track.Repository/TrackTemplateRepository.cs b/src/SJZY.Track.Repository/TrackTemplateRepository.cs index 55c78505..1424b6df 100644 --- a/src/SJZY.Track.Repository/TrackTemplateRepository.cs +++ b/src/SJZY.Track.Repository/TrackTemplateRepository.cs @@ -1,13 +1,12 @@ -using SJZY.Expand.ABP.Core.Common.Dto; +using System.Linq.Expressions; using SJZY.Expand.ABP.Core.PublicMethords; -using SJZY.Track.Domain.TrackContentAggregate; -using SJZY.Track.Domain.TrackFlagAggregate; -using SJZY.Track.Domain.TrackStatusAggregate; -using SJZY.Track.Domain.TrackTemplateAggregate; -using SJZY.Track.Domain.TrackTemplateAggregate.Dtos; +using SJZY.Track.Domain.Aggregates.TrackContentAggregate; +using SJZY.Track.Domain.Aggregates.TrackFlagAggregate; +using SJZY.Track.Domain.Aggregates.TrackStatusAggregate; +using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; +using SJZY.Track.Domain.Dtos.TrackTemplate; using SJZY.Track.Domain.VEntities; using SJZY.Track.Repository.Enum; -using System.Linq.Expressions; namespace SJZY.Track.Repository; @@ -26,17 +25,18 @@ public class TrackTemplateRepository : BasicRepository, ITr /// public async Task GetDetailAsync(int id) { - var detail = await Context.Queryable().LeftJoin((a, b) => a.SubSystemId == b.Id) + var detail = await Context.Queryable() + .LeftJoin((a, b) => a.SubSystemId == b.Id) .Where((a, b) => a.Id == id) .Select((a, b) => new GetTrackTemplateDetailVO - { - Id = a.Id, - Code = a.Code, - Name = a.Name, - SubSystemId = a.SubSystemId, - SubSystem = b.CnName - }).FirstAsync(); + { + Id = a.Id, + Code = a.Code, + Name = a.Name, + SubSystemId = a.SubSystemId, + SubSystem = b.CnName + }).FirstAsync(); return detail; } @@ -49,44 +49,47 @@ public class TrackTemplateRepository : BasicRepository, ITr public async Task> GetPageTrackTemplate(GetPageTrackTemplateVO input) { UnifyPageResultDto pagedList = new UnifyPageResultDto(); - pagedList = await Context.Queryable().LeftJoin((a, b) => a.SubSystemId == b.Id) - .WhereIF(input.SubSystemId > 0, (a, b) => a.SubSystemId == input.SubSystemId) - .WhereIF(!input.Keywords.IsNullOrWhiteSpace(), (a, b) => a.Name.Contains(input.Keywords) || a.Code.Contains(input.Keywords)) - .Select((a, b) => new GetTrackTemplateListVO - { - Id = a.Id, - Code = a.Code, - CreateTime = a.CreateTime, - Name = a.Name, - SubSystem = b.CnName - }) - .ToPagedListAsync(input.PageIndex, input.PageSize); - //如果轨迹模版id传值了,就置顶在第一条 - if (input.TrackTemplateId>0&& (!pagedList.List.IsNullOrEmpty())) - { - if (input.PageIndex==1) + pagedList = await Context.Queryable() + .LeftJoin((a, b) => a.SubSystemId == b.Id) + .WhereIF(input.SubSystemId > 0, (a, b) => a.SubSystemId == input.SubSystemId) + .WhereIF(!input.Keywords.IsNullOrWhiteSpace(), + (a, b) => a.Name.Contains(input.Keywords) || a.Code.Contains(input.Keywords)) + .Select((a, b) => new GetTrackTemplateListVO { - bool existCurrent = pagedList.List.Any(x => x.Id==input.TrackTemplateId); + Id = a.Id, + Code = a.Code, + CreateTime = a.CreateTime, + Name = a.Name, + SubSystem = b.CnName + }) + .ToPagedListAsync(input.PageIndex, input.PageSize); + //如果轨迹模版id传值了,就置顶在第一条 + if (input.TrackTemplateId > 0 && (!pagedList.List.IsNullOrEmpty())) + { + if (input.PageIndex == 1) + { + bool existCurrent = pagedList.List.Any(x => x.Id == input.TrackTemplateId); if (existCurrent) { - var item = pagedList.List.FirstOrDefault(x => x.Id==input.TrackTemplateId); + var item = pagedList.List.FirstOrDefault(x => x.Id == input.TrackTemplateId); pagedList.List.Remove(item); pagedList.List.Insert(0, item); } else { - var item = await Context.Queryable().LeftJoin((a, b) => a.SubSystemId == b.Id) - .Where((a, b) => a.Id==input.TrackTemplateId) - .Select((a, b) => new GetTrackTemplateListVO - { - Id = a.Id, - Code = a.Code, - CreateTime = a.CreateTime, - Name = a.Name, - SubSystem = b.CnName - }) - .FirstAsync(); - if (item!=null) + var item = await Context.Queryable() + .LeftJoin((a, b) => a.SubSystemId == b.Id) + .Where((a, b) => a.Id == input.TrackTemplateId) + .Select((a, b) => new GetTrackTemplateListVO + { + Id = a.Id, + Code = a.Code, + CreateTime = a.CreateTime, + Name = a.Name, + SubSystem = b.CnName + }) + .FirstAsync(); + if (item != null) { var removeItem = pagedList.List.LastOrDefault(); pagedList.List.Remove(removeItem); @@ -100,28 +103,39 @@ public class TrackTemplateRepository : BasicRepository, ITr } /// - public async Task> GetContentPageAsync(GetTrackTemplateContentPageInputVO input) + public async Task> GetContentPageAsync( + GetTrackTemplateContentPageInputVO input) { return await Context.Queryable() - .InnerJoin((templateContent, trackContent) => templateContent.TrackContentId == trackContent.Id && !trackContent.IsDeleted) - .LeftJoin((templateContent, trackContent, trackStatus) => trackContent.TrackStatusId == trackStatus.Id && !trackStatus.IsDeleted) - .LeftJoin((templateContent, trackContent, trackStatus, enumValue) => enumValue.Property == EnumPropertyEnums.节点.GetDescription() && trackStatus.Node == enumValue.Enumkey && !enumValue.IsDeleted) - .LeftJoin((templateContent, trackContent, trackStatus, enumValue, trackFlag) => trackContent.TrackFlagId == trackFlag.Id && !trackFlag.IsDeleted) - .LeftJoin((templateContent, trackContent, trackStatus, enumValue, trackFlag, createUser) => templateContent.CreateUserId == createUser.Id && !createUser.IsDeleted) - .LeftJoin((templateContent, trackContent, trackStatus, enumValue, trackFlag, createUser, updateUser) => templateContent.UpdateUserId == updateUser.Id && !updateUser.IsDeleted) + .InnerJoin((templateContent, trackContent) => + templateContent.TrackContentId == trackContent.Id && !trackContent.IsDeleted) + .LeftJoin((templateContent, trackContent, trackStatus) => + trackContent.TrackStatusId == trackStatus.Id && !trackStatus.IsDeleted) + .LeftJoin((templateContent, trackContent, trackStatus, enumValue) => + enumValue.Property == EnumPropertyEnums.节点.GetDescription() && trackStatus.Node == enumValue.Enumkey && + !enumValue.IsDeleted) + .LeftJoin((templateContent, trackContent, trackStatus, enumValue, trackFlag) => + trackContent.TrackFlagId == trackFlag.Id && !trackFlag.IsDeleted) + .LeftJoin((templateContent, trackContent, trackStatus, enumValue, trackFlag, createUser) => + templateContent.CreateUserId == createUser.Id && !createUser.IsDeleted) + .LeftJoin( + (templateContent, trackContent, trackStatus, enumValue, trackFlag, createUser, updateUser) => + templateContent.UpdateUserId == updateUser.Id && !updateUser.IsDeleted) .Filter(null, true) - .Where(templateContent => templateContent.TrackTemplateId == input.TrackTemplateId && !templateContent.IsDeleted) - .Select((templateContent, trackContent, trackStatus, enumValue, trackFlag, createUser, updateUser) => new GetTrackTemplateContentPageOutputVO - { - Id = templateContent.Id, - TrackStatus = trackStatus.Status, - Node = enumValue.Disp, - TrackFlag = trackFlag.Name, - CreateTime = templateContent.CreateTime, - CreateUser = createUser.Name, - UpdateTime = templateContent.UpdateTime, - UpdateUser = updateUser.Name - }, true) + .Where(templateContent => + templateContent.TrackTemplateId == input.TrackTemplateId && !templateContent.IsDeleted) + .Select((templateContent, trackContent, trackStatus, enumValue, trackFlag, createUser, updateUser) => + new GetTrackTemplateContentPageOutputVO + { + Id = templateContent.Id, + TrackStatus = trackStatus.Status, + Node = enumValue.Disp, + TrackFlag = trackFlag.Name, + CreateTime = templateContent.CreateTime, + CreateUser = createUser.Name, + UpdateTime = templateContent.UpdateTime, + UpdateUser = updateUser.Name + }, true) .ToPagedListAsync(input.PageIndex, input.PageSize); } @@ -129,8 +143,10 @@ public class TrackTemplateRepository : BasicRepository, ITr public async Task GetContentDetailAsync(int id) { return await Context.Queryable() - .InnerJoin((templateContent, trackContent) => templateContent.TrackContentId == trackContent.Id && !trackContent.IsDeleted) - .LeftJoin((templateContent, trackContent, trackStatus) => trackContent.TrackStatusId == trackStatus.Id && !trackStatus.IsDeleted) + .InnerJoin((templateContent, trackContent) => + templateContent.TrackContentId == trackContent.Id && !trackContent.IsDeleted) + .LeftJoin((templateContent, trackContent, trackStatus) => + trackContent.TrackStatusId == trackStatus.Id && !trackStatus.IsDeleted) .Filter(null, true) .Where(templateContent => templateContent.Id == id && !templateContent.IsDeleted) .Select((templateContent, trackContent, trackStatus) => new GetTrackTemplateContentDetailOutputVO