using System; namespace YLErp.Modules.RiskEngine { /// /// 风控规则定义。 /// 只描述“规则是什么”,不包含状态、策略、触发时点、适用范围等应用配置。 /// 这些执行维度由 RiskRuleApplication 承载。 /// public class RiskRule { // === 基础信息 === public int Id { get; set; } public string RuleCode { get; set; } public string RuleName { get; set; } public string Description { get; set; } /// /// 【核心】用户输入的规则内容字符串,如"名义本金>1亿" /// 在规则创建/加载时由 RuleCompiler 解析并编译为 CompiledScript /// public string FormulaText { get; set; } /// /// 【核心】公式 JSON(条件列表的结构化存储),如 /// {"conditions":[{"variableCode":"trade.StockEqvNotional","operator":">","value":100000000}]} /// 由 RuleCompiler 解析并编译为 CompiledScript /// public string FormulaJson { get; set; } // === 生命周期 === public int Version { get; set; } public bool IsDeleted { get; set; } // === 审计字段 === public int OptId { get; set; } public string OptName { get; set; } public DateTime OptDate { get; set; } public int UpdateOptId { get; set; } public string UpdateOptName { get; set; } public DateTime UpdateDate { get; set; } // === 运行时内存字段(不持久化到数据库)=== /// /// 【核心】预编译的可执行委托 /// 在规则创建/加载时由 RuleCompiler.Compile(this) 生成 /// 判风控时直接调用:rule.CompiledScript(context) → bool /// public Func CompiledScript { get; set; } } }