diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackTemplates/GetTrackDetailDto.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackTemplates/GetTrackDetailDto.cs index 04634cb5..ca3e1777 100644 --- a/src/SJZY.Track.Application.Contract/Dtos/TrackTemplates/GetTrackDetailDto.cs +++ b/src/SJZY.Track.Application.Contract/Dtos/TrackTemplates/GetTrackDetailDto.cs @@ -1,4 +1,4 @@ -namespace SJZY.Track.Application.Contract.Dtos.TrackTemplates; +namespace SJZY.Track.Application.Contract.Dtos.TrackTemplates; /// /// 获取轨迹模版详情 @@ -103,7 +103,12 @@ public class EditTrackTemplateInput public string? Code { set; get; } /// - /// 显示原轨迹 + /// 分类id /// - public bool ShowOrigin { get; set; } + public int CategoryId { get; set; } + + /// + /// 客户id + /// + public int CustomerId { get; set; } } diff --git a/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs b/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs index 4a93668c..2d849b44 100644 --- a/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs +++ b/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs @@ -200,16 +200,18 @@ public class TrackTemplateService : ApplicationService { #region 业务校验 + if (await _trackTemplateRepository.IsAnyAsync(a => + a.SubSystemId == input.SubSystemId && a.Code == input.Code && a.Name == input.Name && + a.CategoryId == input.CategoryId && a.CustomerId == input.CustomerId)) + { + throw new BusinessException(message: "该子系统下该分类的客户模版已存在"); + } + //校验模版代码唯一性 - //var templateEntity = - // await _trackTemplateRepository.GetFirstAsync( - // a => a.SubSystemId == input.SubSystemId && a.Code == input.Code); var templateEntitys = await _trackTemplateRepository.GetListAsync(a => a.SubSystemId == input.SubSystemId && (a.Code == input.Code || a.Name == input.Name)); if (templateEntitys.Any()) { - //throw new BusinessException(message: _stringLocalizer["TemplateExist"]); - //throw new BusinessException(message: "模板代码已存在于当前选择的子系统下"); var trackTemplateCode = templateEntitys.FirstOrDefault(t => t.Code == input.Code); if (trackTemplateCode != null) { @@ -235,6 +237,14 @@ public class TrackTemplateService : ApplicationService { #region 业务校验 + if (await _trackTemplateRepository.IsAnyAsync(a => + a.Id != input.Id && + a.SubSystemId == input.SubSystemId && a.Code == input.Code && a.Name == input.Name && + a.CategoryId == input.CategoryId && a.CustomerId == input.CustomerId)) + { + throw new BusinessException(message: "该子系统下该分类的客户模版已存在"); + } + var templateEntitys = await _trackTemplateRepository.GetListAsync(a => a.Id != input.Id && a.SubSystemId == input.SubSystemId && (a.Code == input.Code || a.Name == input.Name)); if (templateEntitys.Any()) diff --git a/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/TrackTemplateEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/TrackTemplateEntity.cs index e1236990..d525300f 100644 --- a/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/TrackTemplateEntity.cs +++ b/src/SJZY.Track.Domain/Aggregates/TrackTemplateAggregate/TrackTemplateEntity.cs @@ -29,4 +29,16 @@ public class TrackTemplateEntity : IFullAuditedBasicEntitys, IAggregateRoot /// [SugarColumn(ColumnName = "SubSystemId")] public int SubSystemId { get; set; } + + /// + /// 分类id + /// + [SugarColumn(ColumnName = "CategoryId")] + public int CategoryId { get; set; } + + /// + /// 客户id + /// + [SugarColumn(ColumnName = "CustomerId")] + public int CustomerId { get; set; } }