定价引擎知识文档
NY 定价引擎(CtPrice)的规则源码是定价 DSL 规则源码,语法类似 Java,由定价引擎解释执行,不可当作普通 Java 编译。
"**性质**:定价 **DSL 规则源码**(语法类 Java,由定价引擎解释执行,不可当普通 Java 编译)"
定价引擎根据客户、商户、场景等输入,输出多档期数下的产品号、期数、各类费率、利率与 TagLabel,每档为数组下标,最多 20 档。
"根据客户、商户、场景等输入,输出**多档期数**下的产品号、期数、各类费率、利率与 TagLabel(每档为数组下标,最多 20 档)"
定价引擎有两条产品线:CL 基础定价(产品 9022)与 PL 定价(含 CT / Non-CT / MVP,产品 9012)。
"**两条产品线**:CL 基础定价(产品 9022)与 PL 定价(CT / Non-CT / MVP,产品 9012)"
PriceEngineID 是定价活动码,取值 DJ001…DJ089,是最核心的分流字段。
"`PriceEngineID` | 定价活动码(DJ001…DJ089),最核心的分流字段"
客群标签表示客群风险分层(取值如 A000…A145 等),基础定价表按客群标签出多档费率。
"`客群标签` | 客群风险分层(A000…A145 等),基础定价表按它出多档费率"
IfTryCalcTag 是是否走试算的标记,取值 "Y" 表示试算。
"`IfTryCalcTag` | 是否走试算标记("Y"=试算)"
CreditlLimit 字段表示授信额度,源码拼写为 Creditl(非 Credit)。
"`CreditlLimit` | 授信额度(注意源码拼写 Creditl,非 Credit)"
试算可用额度按公式计算:可用额度 = 授信额度(或质押额度)× TryCalcLevelPer − 已用余额(LoanBalance)。
"可用额度 = 授信额度(或质押额度) × TryCalcLevelPer − 已用余额(LoanBalance)"
主流程在阶段 105 判断是否走试算:当 IfTryCalcTag="Y" 时走试算。
"【105 是否走试算?(IfTryCalcTag="Y")】"
走试算后在阶段 108 判断是否需要试算档位:当 Crosta03TermRestraint ≤ 1 时需要试算档位。
"108 是否需要试算档位?(Crosta03TermRestraint ≤ 1)"
在阶段 104 判断是否直接输出定价:当客群标签属于 {A121, A122, A221} 时直接输出定价。
"104 是否直接输出定价?(客群标签 ∈ {A121,A122,A221})"
贷后试算子流程在阶段 106 判断是否贷后试算:当 IfTryCalcTag≠"Y" 且 PriceEngineID 匹配 DJ 加三位数字时进入贷后试算。
"【106 是否贷后试算?(IfTryCalcTag≠"Y" 且 PriceEngineID~DJ\d{3})】"
当 IfTryCalcTag = "Y" 时判定为走试算。
"105 IF Try cal | 是否走试算 | `IfTryCalcTag = "Y"`"
当 Crosta03TermRestraint ≤ 1 时判定为需要试算档位。
"108 need try cal | 是否需要试算档位 | `Crosta03TermRestraint ≤ 1`"
当客群标签属于 {A121, A122, A221} 时直接输出定价。
"104 pricing directly output | 是否直接输出定价 | `客群标签 ∈ {A121, A122, A221}`"
当 PriceEngineID 不匹配 DJ\d{3} 且 PayLater 满足开户时长窗口时判定为 MVP2 版本活动(有效期永久)。
"107 IF MVP2 | 是否 MVP2 版本活动 | `非(PriceEngineID~DJ\d{3})` 且 PayLater 满足开户时长窗口(有效期永久)"
当收单号="93600426" 且商户号属于白名单时判定为 CT 企业商户。
"ifctcorp | 是否 CT 企业商户 | `收单号="93600426"` 且 `商户号 ∈ {白名单…}`"
当 IfTryCalcTag≠"Y" 且 PriceEngineID 匹配 DJ\d{3} 时判定为贷后试算。
"106 IF Try cal After Loan | 是否贷后试算 | `IfTryCalcTag≠"Y"` 且 `PriceEngineID~DJ\d{3}`"
规则 100 IF MVR Free limit 条件被写死为 1=0(永假),真实逻辑被注释,当前 MVR 免息额度永不生效(强制停用)。
"**100 IF MVR Free limit** | 🔴 **强制停用** | 条件写死为 `1=0`(永假),真实逻辑(线下渠道号前3位∈{011,021,031} 且 PayLater 6 天内)被整段注释。当前 MVR 免息额度**永不生效**。"
规则 109 need try cal 2 price 条件被写死为 1=1(永真),真实日期/期数限制被注释,当前对全部命中强制生效(强制常开)。
"**109 need try cal 2 price** | 🟡 **强制常开** | 条件写死为 `1=1`(永真),注释原话"去掉范围限制,对全部生效",真实日期/期数限制被注释。当前对全部命中**强制生效**。"
规则 103 production PRT test 仅在 2024-09-26 当天(比对 SYSTEMDATE)为真,属生产测试残留,已过期失效。
"**103 production PRT test** | 🟣 **已过期** | 仅在 `2024-09-26` 当天为真(比 SYSTEMDATE),生产测试残留,早已失效。"
规则 998 TSM Cibubur 活动窗口为 2024-09-28~29(比对 SYSTEMDATE),已失效过期。
"**998 TSM Cibubur** | 🟣 **已过期** | 活动窗口 `2024-09-28~29`(比 SYSTEMDATE),已失效。"
999 Metro 鞋类活动与 107/801 MVP2 虽含硬编码日期,但比对的是输入字段(TestCurDate / PayLater)而非系统当天,属数据约束,不判为过期。
"另有 999 Metro 鞋类活动、107/801 MVP2 含硬编码日期,但它们比对的是**输入字段**(TestCurDate / PayLater)而非系统当天,属数据约束、不判过期。"