diff --git a/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs b/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs index 9c872bf2..9490f1d3 100644 --- a/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs +++ b/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs @@ -7,6 +7,7 @@ using SJZY.Track.Application.Contract.Dtos.TrackPull; using SJZY.Track.Application.Localization; using SJZY.Track.Domain.Aggregates.TrackContentAggregate; using SJZY.Track.Domain.Aggregates.TrackPullAggregate; +using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; using SJZY.Track.Domain.Dtos.TrackContents; using SJZY.Track.Domain.Queries; using System.Linq.Expressions; @@ -24,16 +25,19 @@ namespace SJZY.Track.Application.Services.TrackContents private readonly IStringLocalizer _stringLocalizer; private readonly ITrackContentRepository _trackContentRepository; private readonly IBasicQuery _trackContentMapBasicQuery; + private readonly IBasicQuery _trackTemplateContentBasicQuery; public TrackContentService( IStringLocalizer stringLocalizer, ITrackContentRepository trackContentRepository, - IBasicQuery trackContentMapBasicQuery + IBasicQuery trackContentMapBasicQuery, + IBasicQuery trackTemplateContentBasicQuery ) { this._stringLocalizer = stringLocalizer; this._trackContentRepository = trackContentRepository; this._trackContentMapBasicQuery=trackContentMapBasicQuery; + this._trackTemplateContentBasicQuery=trackTemplateContentBasicQuery; } /// @@ -161,6 +165,13 @@ namespace SJZY.Track.Application.Services.TrackContents { #region 业务校验 + //查询是否关联了轨迹模版内容 + var trackTemplateContents = await _trackTemplateContentBasicQuery.GetListAsync(a => a.TrackContentId==input.Id); + if (trackTemplateContents.Any()) + { + throw new BusinessException(message: "该轨迹内容关联轨迹模板,禁止删除"); + } + //需要加个判断,存在内容映射,则出提示 var trackContentMapEntities = await _trackContentMapBasicQuery.GetListAsync(a => a.TrackContentId==input.Id|| a.MapTrackContentId==input.Id); if (trackContentMapEntities.Any()) diff --git a/src/SJZY.Track.Application/Validations/TrackContents/EditTrackContentMapInputValidation.cs b/src/SJZY.Track.Application/Validations/TrackContents/EditTrackContentMapInputValidation.cs index b4cf3ed8..90a334a9 100644 --- a/src/SJZY.Track.Application/Validations/TrackContents/EditTrackContentMapInputValidation.cs +++ b/src/SJZY.Track.Application/Validations/TrackContents/EditTrackContentMapInputValidation.cs @@ -12,7 +12,7 @@ public class EditTrackContentMapInputValidation : AbstractValidator x.Options).IsInEnum().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_IsInEnum, nameof(EditTrackContentMapInput.Options)]); - RuleFor(x => x.Id).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackContentMapInput.Id), 0]); + //RuleFor(x => x.Id).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackContentMapInput.Id), 0]); RuleFor(x => x.MapSubSystemId).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackContentMapInput.MapSubSystemId), 0]); @@ -22,10 +22,10 @@ public class EditTrackContentMapInputValidation : AbstractValidator x.TrackContentId).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackContentMapInput.TrackContentId), 0]); - When(x => x.Options != OptionTypeNoNull.新增, () => - { - RuleFor(x => x.Id).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackContentMapInput.Id)]); - }); + //When(x => x.Options != OptionTypeNoNull.新增, () => + //{ + // RuleFor(x => x.Id).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackContentMapInput.Id)]); + //}); When(x => x.Options != OptionTypeNoNull.删除, () => {