Files
loan-pricing/doc/implementation-report-2026-04-27-model-interface-split.md

42 lines
2.5 KiB
Markdown
Raw Normal View History

# 个人/企业模型接口拆分实施记录
## 修改内容
- 将统一模型接口配置 `model.url` 拆分为 `model.personal-url``model.corporate-url`
- `dev``uat` 环境分别指向本地个人/企业 mock
- `http://localhost:63310/rate/pricing/mock/invokeModel/personal`
- `http://localhost:63310/rate/pricing/mock/invokeModel/corporate`
- `pro` 环境改为从 `MODEL_PERSONAL_URL``MODEL_CORPORATE_URL` 读取真实接口地址。
- `ModelService` 拆分为 `invokePersonalModel``invokeCorporateModel`,分别返回 `ModelRetailOutputFields``ModelCorpOutputFields`
- `LoanPricingModelService` 根据 `custType` 调用对应模型接口,个人只写个人模型输出表,企业只写企业模型输出表。
- mock 控制器拆分为个人、企业两个入口,不再保留统一 mock 路径作为业务调用入口。
## 字段管理
- 个人模型返回字段继续由 `ModelRetailOutputFields``model_retail_output_fields` 管理。
- 企业模型返回字段继续由 `ModelCorpOutputFields``model_corp_output_fields` 管理。
- 未新增统一返回对象,避免个人/企业字段混在同一套结构中。
## 验证记录
- 后端单测:
- `mvn -pl ruoyi-loan-pricing -am -Dtest=LoanPricingModelServiceTest,ModelRetailOutputFieldsTest,ModelCorpOutputFieldsTest -Dsurefire.failIfNoSpecifiedTests=false test`
- 结果:通过,`Tests run: 5, Failures: 0, Errors: 0`
- 后端打包与启动:
- `./bin/restart_java_backend.sh restart`
- 结果:打包成功,提升权限后启动成功,后端监听 `63310`
- 真实接口验证:
- `/login/test` 获取 token 成功。
- 调用 `/loanPricing/workflow/create/personal` 创建个人流程,流水号 `20260427150819677`
- 查询个人详情,返回 `modelRetailOutputFields.finalCalculateRate=6.05``modelCorpOutputFields=null`
- 调用 `/loanPricing/workflow/create/corporate` 创建企业流程,流水号 `20260427150820494`
- 查询企业详情,返回 `modelCorpOutputFields.finalCalculateRate=3.732``modelRetailOutputFields=null`
- 缺少 `custIsn` 的个人创建请求返回 `客户内码不能为空`
- 后端日志确认个人命中 `/rate/pricing/mock/invokeModel/personal`,企业命中 `/rate/pricing/mock/invokeModel/corporate`
- 测试结束后已执行 `./bin/restart_java_backend.sh stop` 停止本次启动的后端进程。
## 注意事项
- 生产环境启动前必须提供 `MODEL_PERSONAL_URL``MODEL_CORPORATE_URL`
- 本次不改前端页面和现有业务接口路径。