修订业务种类与历史利率设计

This commit is contained in:
wkc
2026-04-29 14:46:47 +08:00
parent 86b8704ad9
commit 6dbd56dc52
2 changed files with 40 additions and 1 deletions

View File

@@ -69,9 +69,11 @@ GET /loanPricing/workflow/history-contract?custIsn=...
```yaml
loan-rate-history:
url: http://552f7aff0acd4c09ac3b83dbfee57fa0.apigateway.res.dc-pdt-zj96596.com/shangyu_loan_rate_history?appCode=1a89fa84abda480ba93ed73fd01ffd07&cust_isn=
url: http://552f7aff0acd4c09ac3b83dbfee57fa0.apigateway.res.dc-pdt-zj96596.com/shangyu_loan_rate_history?appCode=1a89fa84abda480ba93ed73fd01ffd07
```
配置值只保存接口基址和固定 `appCode`,不包含 `cust_isn=`。代码统一通过 `UriComponentsBuilder.queryParam("cust_isn", custIsn)` 追加客户内码,避免重复参数或拼接错误。
开发和测试环境可指向本项目 mock 接口;生产配置使用真实外部接口地址。
## 历史合同返回字段
@@ -112,6 +114,13 @@ loan-rate-history:
- `businessType`
- `loanRateHistory`
转换器 `LoanPricingConverter` 需要同步更新:
- `toEntity(PersonalLoanPricingCreateDTO dto)` 映射 `businessType``loanRateHistory`
- `toEntity(CorporateLoanPricingCreateDTO dto)` 映射 `businessType``loanRateHistory`
这两个字段必须先写入 `LoanPricingWorkflow`,后续详情展示和模型入参才会闭环。
数据库 `loan_pricing_workflow` 新增:
```sql
@@ -122,6 +131,16 @@ ALTER TABLE `loan_pricing_workflow`
需要同步更新独立 schema SQL 和生产初始化 SQL 中的 `loan_pricing_workflow` 表结构。
跨字段校验放在创建服务层统一处理,不只依赖 DTO 注解:
- 创建个人流程前校验业务种类。
- 创建企业流程前校验业务种类。
- `businessType` 必须是新客、存量新增、存量转贷之一。
- `businessType=存量转贷` 时,`loanRateHistory` 必须非空。
- 校验通过后才允许入库和触发模型调用。
这样可以拦截绕过前端直接调用创建接口的请求。
## 模型入参
模型入参 `ModelInvokeDTO` 新增:
@@ -193,6 +212,12 @@ GET /rate/pricing/mock/history-contract?cust_isn=...
mock 接口返回 1 条或多条历史合同记录,字段使用历史合同返回字段中的下划线名称。
mock 需要提供固定测试场景:
- 常规 `cust_isn` 返回 1 条或多条带 `loan_rate_history` 的历史合同。
- 固定 `cust_isn` 返回空列表,用于验证“未查询到历史贷款合同”。
- 固定 `cust_isn` 返回记录但 `loan_rate_history` 为空,用于验证前端和后端禁止提交。
开发和测试 profile 的 `loan-rate-history.url` 可配置为本项目 mock 地址。
## 测试方案
@@ -204,6 +229,16 @@ mock 接口返回 1 条或多条历史合同记录,字段使用历史合同返
- 历史合同外部接口返回空列表时,前端可收到空列表并拦截提交。
- 个人创建接口 `businessType=存量转贷` 且缺少 `loanRateHistory` 时返回错误。
- 企业创建接口 `businessType=存量转贷` 且缺少 `loanRateHistory` 时返回错误。
- 个人创建接口 `businessType` 缺失时返回错误。
- 企业创建接口 `businessType` 缺失时返回错误。
- 个人创建接口 `businessType` 非法值时返回错误。
- 企业创建接口 `businessType` 非法值时返回错误。
- 个人创建接口 `businessType=新客` 且无 `loanRateHistory` 时正常保存。
- 企业创建接口 `businessType=新客` 且无 `loanRateHistory` 时正常保存。
- 个人创建接口 `businessType=存量新增` 且无 `loanRateHistory` 时正常保存。
- 企业创建接口 `businessType=存量新增` 且无 `loanRateHistory` 时正常保存。
- 个人创建接口 `businessType=存量转贷``loanRateHistory` 为空字符串时返回错误。
- 企业创建接口 `businessType=存量转贷``loanRateHistory` 为空字符串时返回错误。
- 个人创建接口带业务种类和历史贷款利率时正常保存。
- 企业创建接口带业务种类和历史贷款利率时正常保存。
- 模型调用请求包含 `loanRateHistory`
@@ -219,6 +254,8 @@ mock 接口返回 1 条或多条历史合同记录,字段使用历史合同返
- 历史合同弹窗展示全部 7 个返回字段。
- 历史合同弹窗只允许单选一条。
- 选择历史合同后回填历史贷款利率。
- 历史合同返回空列表时提示“未查询到历史贷款合同”,并禁止提交。
- 历史合同返回记录但 `loan_rate_history` 为空时,不能把空值作为有效选择提交。
- 业务种类从存量转贷切换到新客或存量新增时,清空历史贷款利率。
- 存量转贷未选择历史合同时禁止提交。