 陈斐andClaude
|
3e357312c2
|
feat: 风控引擎核心重构 - 表达式树编译 + Roslyn Scripting + 规则模型合并
本次提交实现风控引擎从占位代码到可运行版本的核心升级:
【模型合并】
- RiskRule.cs:删除 RiskRuleApplication,将策略/时点/范围合并到 RiskRule
- 新增 FormulaJson 字段,用于 Roslyn 脚本解析
- 新增 CompiledScript 运行时字段(预编译委托,不持久化)
【规则编译器 - RuleCompiler.cs】
- ParseFormulaJson:解析 FormulaJson 条件列表
- BuildScriptCode:生成 Roslyn C# 脚本代码
- CompileScript:用 Roslyn 编译为 Func<RiskContext, bool> 委托
- 支持多条件 AND(逗号分隔自动拆分)
- 变量类型映射:YLErp.DBModels.trade 等
【EvaluateRisk 升级】
- LoadRules → 筛选 TriggerPoint → 执行 CompiledScript → 按策略聚合
- 异常处理:返回 NeedApproval(审批类,可审批通过)
- 示例规则:名义本金>1亿 且 保证金比例>50% → 禁止
【项目依赖】
- 新增 Microsoft.CodeAnalysis.CSharp (4.12.0)
- 升级 System.Text.Encoding.CodePages 6.0.0 → 7.0.0
【验证】
- 簿记交易确认(BOOK_CONFIRM)已接入 QuotaMonitorService
- 编译通过,运行验证通过
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-22 19:31:20 +08:00 |
|
 陈斐andClaude
|
4140293b36
|
feat: 新增风控引擎RiskEngine模块(第一版骨架)
- 新增YLErpDAL/Modules/RiskEngine文件夹,与RiskModule平级隔离
- 新增核心模型:
- RiskContext.cs:风控上下文(TradeId, TriggerPoint, DataMap)
- RiskResult.cs:风控结果(Passed, Blocked, NeedApproval, Warnings, TriggeredRules)
- 新增RiskEngineService:
- Evaluate():1==1占位,验证服务可实例化
- EvaluateRisk(RiskContext, triggerPoint):核心风控检查入口
- 集成到现有流程:
- QuotaMonitorService.QuotaCheck()末尾接入风控引擎
- 触发时点:BOOK_CONFIRM(簿记交易确认)
- 按策略映射回QuotaTrialStatusEnum(Blocked→Error, NeedApproval→Warning)
- 文件头包含完整技术方案与TODO清单
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-06-22 11:23:11 +08:00 |
|