diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackContents/EditTrackContentMapInput.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackContents/EditTrackContentMapInput.cs
index e952cc62..e207654d 100644
--- a/src/SJZY.Track.Application.Contract/Dtos/TrackContents/EditTrackContentMapInput.cs
+++ b/src/SJZY.Track.Application.Contract/Dtos/TrackContents/EditTrackContentMapInput.cs
@@ -7,17 +7,17 @@ public class EditTrackContentMapInput
///
/// 映射子系统id
///
- public int MapSubSystemId { get; set; }
+ public int? MapSubSystemId { get; set; }
///
/// 映射轨迹内容代码
///
- public string MapTrackContentCode { get; set; }
+ public string? MapTrackContentCode { get; set; }
///
/// 映射轨迹内容id
///
- public int MapTrackContentId { get; set; }
+ public int? MapTrackContentId { get; set; }
///
/// 操作类型
@@ -27,15 +27,15 @@ public class EditTrackContentMapInput
///
/// 源子系统id
///
- public int SubSystemId { get; set; }
+ public int? SubSystemId { get; set; }
///
/// 源轨迹内容代码
///
- public string TrackContentCode { get; set; }
+ public string? TrackContentCode { get; set; }
///
/// 源轨迹内容id
///
- public int TrackContentId { get; set; }
+ public int? TrackContentId { get; set; }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackPull/EditTrackPullConfigInput.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackPull/EditTrackPullConfigInput.cs
index f525e755..2803a4b3 100644
--- a/src/SJZY.Track.Application.Contract/Dtos/TrackPull/EditTrackPullConfigInput.cs
+++ b/src/SJZY.Track.Application.Contract/Dtos/TrackPull/EditTrackPullConfigInput.cs
@@ -17,22 +17,22 @@ public class EditTrackPullConfigInput
///
/// 返参解析对象
///
- public int ParseMethod { get; set; }
+ public int? ParseMethod { get; set; }
///
/// 定时任务(分钟)
///
- public int PullInterval { get; set; }
+ public int? PullInterval { get; set; }
///
/// 服务商id
///
- public int ServiceProviderId { get; set; }
+ public int? ServiceProviderId { get; set; }
///
/// 子系统id
///
- public int SubSystemId { get; set; }
+ public int? SubSystemId { get; set; }
///
/// 拉取轨迹时区
@@ -62,7 +62,7 @@ public class EditTrackPullConfigInput
///
/// 轨迹模板id
///
- public int TrackTemplateId { get; set; }
+ public int? TrackTemplateId { get; set; }
///
/// 拉取轨迹发生时间
diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackTemplates/EditTrackTemplateContentInput.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackTemplates/EditTrackTemplateContentInput.cs
index 0c7144fc..62ae5922 100644
--- a/src/SJZY.Track.Application.Contract/Dtos/TrackTemplates/EditTrackTemplateContentInput.cs
+++ b/src/SJZY.Track.Application.Contract/Dtos/TrackTemplates/EditTrackTemplateContentInput.cs
@@ -14,25 +14,20 @@ public class EditTrackTemplateContentInput
///
/// 是否可删
///
- public bool IsCanDelete { get; set; }
+ public bool? IsCanDelete { get; set; }
///
/// 是否对外
///
- public bool IsExternal { get; set; }
-
- ///
- /// 排序
- ///
- public int Sort { get; set; }
+ public bool? IsExternal { get; set; }
///
/// 轨迹内容id
///
- public int TrackContentId { get; set; }
+ public int? TrackContentId { get; set; }
///
/// 轨迹模板id
///
- public int TrackTemplateId { get; set; }
+ public int? TrackTemplateId { get; set; }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs b/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs
index 2e2b8ae7..97c1c0fc 100644
--- a/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs
+++ b/src/SJZY.Track.Application/Services/TrackContents/TrackContentService.cs
@@ -120,6 +120,7 @@ namespace SJZY.Track.Application.Services.TrackContents
//throw new BusinessException(message: _stringLocalizer["TrackContentExist"]);
throw new BusinessException(message: "当前子系统下,轨迹代码或轨迹内容或轨迹内容英文存在");
}
+
#endregion 业务逻辑校验
//更新的时候需要覆盖内容映射轨迹代码
@@ -158,6 +159,7 @@ namespace SJZY.Track.Application.Services.TrackContents
private async Task DeleteAsync(EditTrackContentInput input)
{
#region 业务校验
+
//需要加个判断,存在内容映射,则出提示
#endregion 业务校验
@@ -201,12 +203,14 @@ namespace SJZY.Track.Application.Services.TrackContents
{
if (input.Options != OptionTypeNoNull.删除)
{
+ if (input.TrackContentId == input.MapTrackContentId) throw new BusinessException(message: _stringLocalizer["IsTrackContentMapAny"]);
+
Expression> isMapAnyExp = x =>
x.TrackContentId == input.TrackContentId && x.MapTrackContentId == input.MapTrackContentId;
if (input.Options == OptionTypeNoNull.修改) isMapAnyExp.And(x => x.Id != input.Id);
if (await _trackContentRepository.IsMapAnyAsync(isMapAnyExp))
- throw new BusinessException(message: _stringLocalizer["IsTrackContentMapAny"]);
+ throw new BusinessException(message: _stringLocalizer["NotAllowedToMapOneself"]);
}
switch (input.Options)
diff --git a/src/SJZY.Track.Application/Validations/TrackContents/EditTrackContentMapInputValidation.cs b/src/SJZY.Track.Application/Validations/TrackContents/EditTrackContentMapInputValidation.cs
new file mode 100644
index 00000000..b4cf3ed8
--- /dev/null
+++ b/src/SJZY.Track.Application/Validations/TrackContents/EditTrackContentMapInputValidation.cs
@@ -0,0 +1,45 @@
+using FluentValidation;
+using Microsoft.Extensions.Localization;
+using SJZY.Expand.ABP.Core.Localization;
+using SJZY.Track.Application.Contract.Dtos.TrackContents;
+using SJZY.Track.Application.Localization;
+
+namespace SJZY.Track.Application.Validations.TrackContents;
+
+public class EditTrackContentMapInputValidation : AbstractValidator, IValidationEnabled
+{
+ public EditTrackContentMapInputValidation(IStringLocalizer stringLocalizer)
+ {
+ RuleFor(x => 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.MapSubSystemId).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackContentMapInput.MapSubSystemId), 0]);
+
+ RuleFor(x => x.MapTrackContentId).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackContentMapInput.MapTrackContentId), 0]);
+
+ RuleFor(x => x.SubSystemId).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackContentMapInput.SubSystemId), 0]);
+
+ RuleFor(x => 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.MapSubSystemId).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackContentMapInput.MapSubSystemId)]);
+
+ RuleFor(x => x.MapTrackContentCode).NotEmpty().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotEmpty, nameof(EditTrackContentMapInput.MapTrackContentCode)]);
+
+ RuleFor(x => x.MapTrackContentId).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackContentMapInput.MapTrackContentId)]);
+
+ RuleFor(x => x.SubSystemId).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackContentMapInput.SubSystemId)]);
+
+ RuleFor(x => x.TrackContentCode).NotEmpty().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotEmpty, nameof(EditTrackContentMapInput.TrackContentCode)]);
+
+ RuleFor(x => x.TrackContentId).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackContentMapInput.TrackContentId)]);
+ });
+ }
+}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application/Validations/TrackPull/EditTrackPullConfigInputValidation.cs b/src/SJZY.Track.Application/Validations/TrackPull/EditTrackPullConfigInputValidation.cs
new file mode 100644
index 00000000..fc540b38
--- /dev/null
+++ b/src/SJZY.Track.Application/Validations/TrackPull/EditTrackPullConfigInputValidation.cs
@@ -0,0 +1,64 @@
+using FluentValidation;
+using Microsoft.Extensions.Localization;
+using SJZY.Expand.ABP.Core.Localization;
+using SJZY.Track.Application.Contract.Dtos.TrackPull;
+using SJZY.Track.Application.Localization;
+
+namespace SJZY.Track.Application.Validations.TrackPull;
+
+public class EditTrackPullConfigInputValidation : AbstractValidator, IValidationEnabled
+{
+ public EditTrackPullConfigInputValidation(IStringLocalizer stringLocalizer)
+ {
+ RuleFor(x => x.Options).IsInEnum().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_IsInEnum, nameof(EditTrackPullConfigInput.Options)]);
+
+ RuleFor(x => x.Id).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackPullConfigInput.Id), 0]);
+
+ RuleFor(x => x.ParseMethod).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackPullConfigInput.ParseMethod), 0]);
+
+ RuleFor(x => x.PullInterval).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackPullConfigInput.PullInterval), 0]);
+
+ RuleFor(x => x.SubSystemId).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackPullConfigInput.SubSystemId), 0]);
+
+ RuleFor(x => x.ServiceProviderId).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackPullConfigInput.ServiceProviderId), 0]);
+
+ RuleFor(x => x.SubSystemId).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackPullConfigInput.SubSystemId), 0]);
+
+ RuleFor(x => x.TrackTemplateId).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackPullConfigInput.TrackTemplateId), 0]);
+
+ When(x => x.Options != OptionTypeNoNull.新增, () =>
+ {
+ RuleFor(x => x.Id).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackPullConfigInput.Id)]);
+ });
+
+ When(x => x.Options != OptionTypeNoNull.删除, () =>
+ {
+ RuleFor(x => x.SubSystemId).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackPullConfigInput.SubSystemId)]);
+
+ RuleFor(x => x.ServiceProviderId).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackPullConfigInput.ServiceProviderId)]);
+
+ RuleFor(x => x.TrackTemplateId).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackPullConfigInput.TrackTemplateId)]);
+
+ RuleFor(x => x.PullInterval).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackPullConfigInput.PullInterval)]);
+
+ RuleFor(x => x.ParseMethod).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackPullConfigInput.ParseMethod)]);
+
+ RuleFor(x => x.OrderNoName).NotEmpty().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotEmpty, nameof(EditTrackPullConfigInput.OrderNoName)]);
+
+ When(x => x.ParseMethod == 1, () =>
+ {
+ RuleFor(x => x.TackTimeZoneName).NotEmpty().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotEmpty, nameof(EditTrackPullConfigInput.TackTimeZoneName)]);
+
+ RuleFor(x => x.TrackContentCodeName).NotEmpty().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotEmpty, nameof(EditTrackPullConfigInput.TrackContentCodeName)]);
+
+ RuleFor(x => x.TrackContentName).NotEmpty().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotEmpty, nameof(EditTrackPullConfigInput.TrackContentName)]);
+
+ RuleFor(x => x.TrackPlaceName).NotEmpty().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotEmpty, nameof(EditTrackPullConfigInput.TrackPlaceName)]);
+
+ RuleFor(x => x.TrackStatusName).NotEmpty().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotEmpty, nameof(EditTrackPullConfigInput.TrackStatusName)]);
+
+ RuleFor(x => x.TrackTimeName).NotEmpty().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotEmpty, nameof(EditTrackPullConfigInput.TrackTimeName)]);
+ });
+ });
+ }
+}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application/Validations/TrackTemplates/EditTrackTemplateContentInputValidation.cs b/src/SJZY.Track.Application/Validations/TrackTemplates/EditTrackTemplateContentInputValidation.cs
new file mode 100644
index 00000000..c23984d4
--- /dev/null
+++ b/src/SJZY.Track.Application/Validations/TrackTemplates/EditTrackTemplateContentInputValidation.cs
@@ -0,0 +1,37 @@
+using FluentValidation;
+using Microsoft.Extensions.Localization;
+using SJZY.Expand.ABP.Core.Localization;
+using SJZY.Track.Application.Contract.Dtos.TrackTemplates;
+using SJZY.Track.Application.Localization;
+
+namespace SJZY.Track.Application.Validations.TrackTemplates;
+
+public class EditTrackTemplateContentInputValidation : AbstractValidator, IValidationEnabled
+{
+ public EditTrackTemplateContentInputValidation(IStringLocalizer stringLocalizer)
+ {
+ RuleFor(x => x.Options).IsInEnum().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_IsInEnum, nameof(EditTrackTemplateContentInput.Options)]);
+
+ RuleFor(x => x.Id).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackTemplateContentInput.Id), 0]);
+
+ RuleFor(x => x.TrackContentId).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackTemplateContentInput.TrackContentId), 0]);
+
+ RuleFor(x => x.TrackTemplateId).GreaterThan(0).WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_GreaterThan, nameof(EditTrackTemplateContentInput.TrackTemplateId), 0]);
+
+ When(x => x.Options != OptionTypeNoNull.新增, () =>
+ {
+ RuleFor(x => x.Id).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackTemplateContentInput.Id)]);
+ });
+
+ When(x => x.Options != OptionTypeNoNull.删除, () =>
+ {
+ RuleFor(x => x.IsCanDelete).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackTemplateContentInput.IsCanDelete)]);
+
+ RuleFor(x => x.IsExternal).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackTemplateContentInput.IsExternal)]);
+
+ RuleFor(x => x.TrackContentId).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackTemplateContentInput.TrackContentId)]);
+
+ RuleFor(x => x.TrackTemplateId).NotNull().WithMessage(stringLocalizer[SjzyBasicLocalization.Validation_NotNull, nameof(EditTrackTemplateContentInput.TrackTemplateId)]);
+ });
+ }
+}
\ No newline at end of file