feat: 批量操作交互逻辑统一&解耦规则与应用的状态

This commit is contained in:
尹峰
2026-07-27 16:54:06 +08:00
parent 3651d3d2df
commit ca77a71f2c
16 changed files with 487 additions and 172 deletions
@@ -1,3 +1,4 @@
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Text.Json.Serialization;
@@ -31,6 +32,11 @@ namespace YLErp.Modules.RiskEngine.Dto
public BatchOperationItemStatus Status { get; set; }
public string Code { get; set; }
public string Message { get; set; }
/// <summary>操作影响到的应用 ID(不代表应用状态发生变化)</summary>
public List<long> AffectedApplicationIds { get; set; } = new List<long>();
/// <summary>操作后不再包含任何启用规则的应用 ID</summary>
public List<long> CausedNoAvailableRuleApplicationIds { get; set; } = new List<long>();
/// <summary>旧版级联字段,解耦后始终为空,仅为兼容旧客户端保留</summary>
public List<long> CascadedApplicationIds { get; set; } = new List<long>();
}
@@ -43,6 +49,11 @@ namespace YLErp.Modules.RiskEngine.Dto
public int FailedCount { get; set; }
public bool HasChanges { get; set; }
public List<BatchOperationItemResult> Items { get; set; } = new List<BatchOperationItemResult>();
/// <summary>所有请求项影响到的应用 ID 去重并集</summary>
public List<long> AffectedApplicationIds { get; set; } = new List<long>();
/// <summary>操作后不再包含任何启用规则的应用 ID 去重并集</summary>
public List<long> CausedNoAvailableRuleApplicationIds { get; set; } = new List<long>();
/// <summary>旧版级联字段,解耦后始终为空,仅为兼容旧客户端保留</summary>
public List<long> CascadedApplicationIds { get; set; } = new List<long>();
}
}
@@ -0,0 +1,19 @@
using System.Collections.Generic;
namespace YLErp.Modules.RiskEngine.Dto
{
/// <summary>
/// 删除规则结果
/// </summary>
public class DeleteRuleResult
{
/// <summary>规则 ID</summary>
public long RuleId { get; set; }
/// <summary>删除前引用该规则的启用中应用数量</summary>
public int AffectedActiveAppCount { get; set; }
/// <summary>删除后不再包含任何启用规则的应用 ID</summary>
public List<long> CausedNoAvailableRuleAppIds { get; set; } = new List<long>();
}
}
@@ -1,5 +1,3 @@
using System.Collections.Generic;
namespace YLErp.Modules.RiskEngine.Dto
{
/// <summary>
@@ -7,7 +5,10 @@ namespace YLErp.Modules.RiskEngine.Dto
/// </summary>
public class DisableRuleResult
{
/// <summary>级联停用的应用 ID 列表</summary>
public List<long> CascadedApplicationIds { get; set; } = new List<long>();
/// <summary>规则 ID</summary>
public long RuleId { get; set; }
/// <summary>引用该规则的启用中应用数量</summary>
public int AffectedActiveAppCount { get; set; }
}
}
@@ -14,5 +14,7 @@ namespace YLErp.Modules.RiskEngine.Dto
public RiskVariableDataType? DataType { get; set; }
/// <summary>变量名称</summary>
public string VariableName { get; set; }
/// <summary>状态筛选(不传则返回非 Deleted 的全部)</summary>
public RiskRuleStatus? Status { get; set; }
}
}
@@ -14,6 +14,18 @@ namespace YLErp.Modules.RiskEngine.Dto
public string RuleIds { get; set; }
/// <summary>应用说明</summary>
public string Description { get; set; }
/// <summary>关联规则数(不含已删除规则)</summary>
public int AssociatedRuleCount { get; set; }
/// <summary>生效规则数(关联规则中已启用的数量)</summary>
public int EffectiveRuleCount { get; set; }
/// <summary>当前状态下是否允许启用</summary>
public bool CanEnable { get; set; }
/// <summary>当前状态下是否允许停用</summary>
public bool CanDisable { get; set; }
/// <summary>启用按钮不可用时的提示</summary>
public string EnableButtonTooltip { get; set; }
/// <summary>停用按钮不可用时的提示</summary>
public string DisableButtonTooltip { get; set; }
/// <summary>应用配置状态</summary>
public RiskRuleStatus Status { get; set; }
/// <summary>风控策略</summary>
@@ -14,6 +14,18 @@ namespace YLErp.Modules.RiskEngine.Dto
public string RuleIds { get; set; }
/// <summary>应用说明</summary>
public string Description { get; set; }
/// <summary>关联规则数(不含已删除规则)</summary>
public int AssociatedRuleCount { get; set; }
/// <summary>生效规则数(关联规则中已启用的数量)</summary>
public int EffectiveRuleCount { get; set; }
/// <summary>当前状态下是否允许启用</summary>
public bool CanEnable { get; set; }
/// <summary>当前状态下是否允许停用</summary>
public bool CanDisable { get; set; }
/// <summary>启用按钮不可用时的提示</summary>
public string EnableButtonTooltip { get; set; }
/// <summary>停用按钮不可用时的提示</summary>
public string DisableButtonTooltip { get; set; }
/// <summary>应用配置状态</summary>
public int Status { get; set; }
/// <summary>风控策略</summary>
@@ -28,6 +28,8 @@ namespace YLErp.Modules.RiskEngine.Dto
public int Version { get; set; }
/// <summary>排序序号</summary>
public int SortOrder { get; set; }
/// <summary>状态</summary>
public RiskRuleStatus Status { get; set; }
/// <summary>创建人姓名</summary>
public string OptName { get; set; }
/// <summary>创建时间</summary>
@@ -27,5 +27,7 @@ namespace YLErp.Modules.RiskEngine.Dto
public int Version { get; set; }
/// <summary>排序序号</summary>
public int SortOrder { get; set; }
/// <summary>状态</summary>
public RiskRuleStatus Status { get; set; }
}
}
@@ -19,5 +19,7 @@ namespace YLErp.Modules.RiskEngine.Dto
public string Unit { get; set; }
/// <summary>取值表达式</summary>
public string VariableExpr { get; set; }
/// <summary>状态</summary>
public RiskRuleStatus Status { get; set; }
}
}