feat:优化变量与代码结构
This commit is contained in:
@@ -519,8 +519,10 @@ namespace YLErp.Modules.RiskEngine
|
||||
/// </summary>
|
||||
private static string BuildBooleanMessage(glms_risk_variable variable, ValueExecuteResult value, bool expected)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(value.DetailMessage))
|
||||
return value.DetailMessage.Trim();
|
||||
|
||||
var parts = new List<string>();
|
||||
AddDetail(parts, value.DetailMessage);
|
||||
parts.Add($"{variable.VariableName}为{FormatDisplayValue(value.Value)}");
|
||||
parts.Add($"期望为{FormatDisplayValue(expected)}");
|
||||
return string.Join(",", parts);
|
||||
|
||||
@@ -4267,9 +4267,10 @@ NOT ((InterestDirection = 1 AND PositionType = 2) OR (InterestDirection = 2 AND
|
||||
|
||||
变量形式:
|
||||
|
||||
变量名:账户授权收支方向不匹配标记
|
||||
DataType:Numeric
|
||||
规则配置:账户授权收支方向不匹配标记 > 0
|
||||
变量名:账户授权收支方向不匹配
|
||||
DataType:Boolean
|
||||
ValueDomain:true/false
|
||||
规则配置:账户授权收支方向不匹配 为是
|
||||
|
||||
变量取值表达式:
|
||||
|
||||
@@ -4333,24 +4334,35 @@ var mismatchItems = directionItems
|
||||
|
||||
var detailItems = directionItems
|
||||
.Select(p => new RiskVariableValueDetailItem(
|
||||
p.IsMismatch ? 1m : 0m,
|
||||
p.IsMismatch,
|
||||
$"浮动端记录ID为{p.FloatPositionId},PosiDirection为{p.PosiDirection},浮动端为{p.PositionTypeName};普通利息端记录ID为{p.InterestPositionId},InterestMode为{p.InterestMode},利息端为{p.InterestDirectionName},{(p.IsMismatch ? "不符合允许场景" : "符合允许场景")}"))
|
||||
.ToList();
|
||||
|
||||
if (mismatchItems.Any())
|
||||
{
|
||||
var matchedItems = directionItems
|
||||
.Where(p => !p.IsMismatch)
|
||||
.ToList();
|
||||
|
||||
var mismatchMessage = string.Join(";", mismatchItems
|
||||
.Select(p => $"浮动端记录ID为{p.FloatPositionId},浮动端为{p.PositionTypeName},普通利息端记录ID为{p.InterestPositionId},利息端为{p.InterestDirectionName}"));
|
||||
|
||||
var matchedMessage = matchedItems.Any()
|
||||
? string.Join(";", matchedItems.Select(p => $"浮动端记录ID为{p.FloatPositionId},浮动端为{p.PositionTypeName},普通利息端记录ID为{p.InterestPositionId},利息端为{p.InterestDirectionName}"))
|
||||
: "无";
|
||||
|
||||
return new RiskVariableValueDetail(
|
||||
1m,
|
||||
$"交易ID {TradeId} 存在账户授权收支方向不匹配组合:{mismatchMessage}。只允许利息端收取且浮动端空头,或利息端支付且浮动端多头",
|
||||
true,
|
||||
$"交易ID {TradeId} 存在账户授权收支方向不匹配组合。不匹配组合:{mismatchMessage}。匹配组合:{matchedMessage}。允许场景:利息端收取且浮动端空头,或利息端支付且浮动端多头",
|
||||
detailItems);
|
||||
}
|
||||
|
||||
var allMatchedMessage = string.Join(";", directionItems
|
||||
.Select(p => $"浮动端记录ID为{p.FloatPositionId},浮动端为{p.PositionTypeName},普通利息端记录ID为{p.InterestPositionId},利息端为{p.InterestDirectionName}"));
|
||||
|
||||
return new RiskVariableValueDetail(
|
||||
0m,
|
||||
$"交易ID {TradeId} 的账户授权收支方向均符合允许场景:浮动端共{floatItems.Count}条,普通利息端共{interestItems.Count}条,已逐条组合检查;只允许利息端收取且浮动端空头,或利息端支付且浮动端多头",
|
||||
false,
|
||||
$"交易ID {TradeId} 的账户授权收支方向均符合允许场景。匹配组合:{allMatchedMessage}。浮动端共{floatItems.Count}条,普通利息端共{interestItems.Count}条,已逐条组合检查",
|
||||
detailItems);
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user