Commit Graph
21 Commits
Author SHA1 Message Date
张名锐 d5a4eab2ec Revert "feat(风控引擎): RiskRuleService/RiskRuleController 权限控制及需求对齐"
This reverts commit a259b745ce.
2026-07-02 16:14:04 +08:00
张名锐 d01253a5da Revert "feat: 规则双模式公式表达式(RuleExpr)& 字段精简重构"
This reverts commit 28ed20e527.
2026-07-02 16:13:41 +08:00
张名锐 4ac18c4810 Revert "feat(risk-engine): 完善风控规则种子数据与 CRUD 接口优化"
This reverts commit c2fc699e57.
2026-07-02 16:05:42 +08:00
张名锐 dae112d199 Revert "fix(risk-engine): 修复多个风控引擎问题"
This reverts commit d7c09c793a.
2026-07-02 16:02:49 +08:00
张名锐 d1804710f3 Revert "优化字段类型"
This reverts commit 10b08f8f21.
2026-07-02 16:02:49 +08:00
尹峰 10b08f8f21 优化字段类型 2026-06-29 18:34:46 +08:00
尹峰 94da9748a2 Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-06-29 18:10:13 +08:00
尹峰 d7c09c793a fix(risk-engine): 修复多个风控引擎问题
- ScopeIsGlobal 类型由 bool 改为 int 以兼容前端传输 0/1
- 修复 QueryApplicationList 中 Status 投影 EF Core enum 转换失败
- 新增 Scope 字段查询支持(逗号分隔集合精确匹配)
- 新增变量列表 DataType 筛选
- 修复审计日志日期查询范围(EndDate 纳入整天数据)
- 统一 Application 审计日志 OperationType 前缀(APP_xxx)
- 审计日志 OperationDetail 枚举值映射为中文
2026-06-29 18:09:19 +08:00
ruisu 9777698a9a feat:修改互换交易样式以支持展示新风控内容,将rule与application加载前移到系统启动时 2026-06-29 17:29:36 +08:00
ruisu 0c2a4b3afb feat:打通前后端链路。老风控新风控映射:禁止=》Error,需审批=》RiskWarning(新状态,需二次确认,并记录日志),提示、通过=》Success(提示增加TIpMessage) 2026-06-26 17:01:21 +08:00
ruisu 32b7de93e2 Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-06-25 17:26:48 +08:00
ruisu 7747d26ed0 支持从数据库读取rule与application,进行匹配校验,以及拼接返回值 2026-06-25 17:25:47 +08:00
尹峰 193123a9bf Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-06-24 18:24:15 +08:00
尹峰 c2fc699e57 feat(risk-engine): 完善风控规则种子数据与 CRUD 接口优化
1. 新增 21 条通用风控规则及应用配置种子数据(seed_rules.sql / seed_applications.sql)
2. 新增 9 个风控变量(偏离度类、执行价、最低保证金率、参考价格)
3. DTO 字段重命名:ExpectedVersion → Version,Keyword → RuleName/VariableName
4. 规则列表返回 ConditionJson 和 RuleExpr 字段
5. 应用列表查询支持按规则名称数据库级筛选(替代内存过滤)
6. 启用/停用操作不再递增 Version 号
7. RiskEngineService 单例构造使用 SystemUser 替代 null
8. RiskRuleService 移除冗余实例字段,改用 GetInstance() 直接调用
2026-06-24 18:23:43 +08:00
ruisu fb9c7430e9 Merge branch 'feature/p132_74-risk-engine' of https://gitee.glmszq.com/gsty/onederiv/trs into feature/p132_74-risk-engine 2026-06-24 15:44:07 +08:00
ruisu 1fa7a8b79c 将Application与编译独立,跑通基础链路 2026-06-24 15:05:24 +08:00
尹峰 28ed20e527 feat: 规则双模式公式表达式(RuleExpr)& 字段精简重构
- 新增 RuleExpr 字段,支持结构化拼接和自由文本两种模式,二选一互斥
- 删除 RuleCode/FormulaText/ApplicationCode/SourceExpression/IsImplemented/VariableCode/TargetCode
- 重命名 FormulaJson→ConditionJson, FormulaExpr→RuleExpr, ImplementationScript→VariableExpr, RuleDescription→RuleText
- RuleId(bigint)→RuleIds(varchar) 多规则支持
- FormulaCondition: variableCode(string)→variableId(long), thresholdVariableCode→thresholdVariableId
- 新增 44 条变量池 seed 数据
- 设计文档同步更新
2026-06-24 09:44:13 +08:00
尹峰 5b77bbf53e merge and fix conflict 2026-06-23 16:06:01 +08:00
尹峰 a259b745ce feat(风控引擎): RiskRuleService/RiskRuleController 权限控制及需求对齐
【权限控制】
  - FunctionRight.xml 注册 16 个风控引擎权限标识(规则/应用/变量/日志 四类 Tab+操作权限)
  - RiskRuleController 28 个 Action 均添加 [MyAuthorize] 校验
  - 权限管理员角色自动获得全部风控权限(UserInfo.cs)

【需求对齐】对照 v1.15 需求文档修复差异:
  - 审计日志操作类型命名对齐:APPLICATION_* → APP_*,VARIABLE_* → VAR_*
  - 规则列表新增按变量编码筛选(QueryRiskRuleReq.VariableCode → FormulaJson.Contains)
  - 变量列表新增分页支持(QueryRiskVariableReq 继承 BaseSearchReq,QueryVariableList → SearchListResult)
  - 需求文档同步至 v1.16
2026-06-23 16:01:31 +08:00
陈斐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