feat: 风控批量操作前后端统一改造,允许部分成功并优化提示信息

This commit is contained in:
尹峰
2026-07-21 15:05:15 +08:00
parent cd170faf8d
commit 165ab4e695
11 changed files with 407 additions and 467 deletions
@@ -0,0 +1,36 @@
using YLErp.Modules.RiskEngine.Dto;
namespace YLErp.Modules.RiskEngine
{
[TestClass]
public class RiskApplicationQueryContractTest
{
[TestMethod]
public void QueryRequest_UsesFrontendParameterNames()
{
var request = new QueryRiskApplicationReq
{
page = 1,
rows = 20,
Keyword = "本金",
ControlStrategy = (RiskControlStrategy)2,
Status = (RiskRuleStatus)1,
ScopeAssetBookIds = "2000041",
ScopeClientIds = "1000017",
ScopeUnderlyingTypes = "深交所债券ETF",
ScopeTradeTypes = "收益互换"
};
Assert.AreEqual("本金", request.Keyword);
Assert.AreEqual(RiskControlStrategy.Approval, request.ControlStrategy);
Assert.AreEqual(RiskRuleStatus.Active, request.Status);
Assert.AreEqual("2000041", request.ScopeAssetBookIds);
Assert.AreEqual("1000017", request.ScopeClientIds);
Assert.AreEqual("深交所债券ETF", request.ScopeUnderlyingTypes);
Assert.AreEqual("收益互换", request.ScopeTradeTypes);
Assert.IsNull(typeof(QueryRiskApplicationReq).GetProperty("RuleName"));
Assert.IsNull(typeof(QueryRiskApplicationReq).GetProperty("Strategy"));
}
}
}
@@ -0,0 +1,23 @@
using System.ComponentModel.DataAnnotations;
using System.Reflection;
namespace YLErp.Modules.RiskEngine
{
[TestClass]
public class RiskConcurrencyTokenTest
{
[DataTestMethod]
[DataRow(typeof(glms_risk_rule))]
[DataRow(typeof(glms_risk_rule_application))]
[DataRow(typeof(glms_risk_variable))]
public void Version_IsConfiguredAsConcurrencyToken(Type entityType)
{
var versionProperty = entityType.GetProperty("Version", BindingFlags.Instance | BindingFlags.Public);
Assert.IsNotNull(versionProperty, $"{entityType.Name} 缺少 Version 属性");
Assert.IsNotNull(
versionProperty.GetCustomAttribute<ConcurrencyCheckAttribute>(),
$"{entityType.Name}.Version 未配置为 EF concurrency token");
}
}
}
@@ -0,0 +1,22 @@
namespace YLErp.Modules.RiskEngine
{
[TestClass]
public class RiskRuleDefaultStatusTest
{
[TestMethod]
public void NewRiskRule_DefaultStatus_IsDisabled()
{
var rule = new glms_risk_rule();
Assert.AreEqual(RiskRuleStatus.Disabled, rule.Status);
}
[TestMethod]
public void NewRiskRuleApplication_DefaultStatus_IsDisabled()
{
var application = new glms_risk_rule_application();
Assert.AreEqual(RiskRuleStatus.Disabled, application.Status);
}
}
}