Files
loan-pricing/openspec/changes/split-pricing-creation-interface/proposal.md
2026-02-02 15:25:38 +08:00

3.8 KiB
Raw Blame History

Proposal: 拆分个人和企业利率定价发起接口

概述

将现有的统一利率定价发起接口 (POST /loanPricing/workflow/create) 拆分为两个独立的接口:

  • 个人客户发起接口 (POST /loanPricing/workflow/create/personal)
  • 企业客户发起接口 (POST /loanPricing/workflow/create/corporate)

背景

当前系统中,LoanPricingWorkflow 实体包含了个人和企业客户的所有字段。当发起流程时根据客户类型custType的不同需要填写的字段存在差异

  • 个人客户:需要填写个人特有字段(如是否有经营佐证、循环功能等)
  • 企业客户:需要填写企业特有字段(如贸易和建筑业企业标识、省农担担保贷款、绿色贷款、科技型企业、贷款期限等)

将接口拆分可以带来以下好处:

  1. 接口契约更清晰:每个接口只包含对应客户类型的字段
  2. 验证更精确:可以在 DTO 层面进行字段验证
  3. 文档更友好API 文档可以分别展示个人和企业的字段
  4. 维护性更好:字段变更不会影响另一类型的客户

影响范围

后端变更

  • 创建新的 DTO 类:PersonalLoanPricingCreateDTOCorporateLoanPricingCreateDTO
  • LoanPricingWorkflowController 中添加两个新接口
  • 修改 ILoanPricingWorkflowService 接口,添加两个新的创建方法
  • 实现 LoanPricingWorkflowServiceImpl 中的新方法
  • 保留原有接口以保持向后兼容(可选,建议标记为 Deprecated

前端变更

注:本次变更仅涉及后端,前端暂不修改

数据库变更

需要向 loan_pricing_workflow 表添加以下字段:

字段名 类型 说明 适用客户
id_num varchar(100) 证件号码 个人、企业
loan_loop varchar(10) 循环功能 个人
is_trade_construction varchar(10) 贸易和建筑业企业标识抵质押类上调20BP 企业
is_green_loan varchar(10) 绿色贷款最多下降5BP 企业
is_tech_ent varchar(10) 科技型企业最多下降5BP 企业
loan_term varchar(50) 贷款期限 企业

迁移脚本位置: sql/add_missing_fields.sql

同时需要更新 LoanPricingWorkflow Entity 类,添加对应的属性和字段映射注解。

设计方案

详见 design.md

风险和考虑

  1. 向后兼容性:原有接口 POST /loanPricing/workflow/create 继续保留

    • 原有接口不做标记为 Deprecated 的处理
    • 新旧接口共存,供前端自由选择使用
  2. 数据迁移:需要执行数据库迁移脚本添加新字段,但不涉及现有数据的迁移

  3. 测试覆盖:需要为新接口编写测试用例

依赖关系

  • 数据库迁移必须最先执行:所有后端开发依赖于新字段添加完成
  • 依赖现有的 LoanPricingWorkflow 实体
  • 依赖现有的 ILoanPricingWorkflowService 服务层

验收标准

  1. 数据库变更:所有新字段成功添加到数据库表,且可以正确存储和检索数据
  2. Entity 类更新LoanPricingWorkflow 实体类包含所有新增字段的属性和映射
  3. 个人客户接口:个人客户发起接口只接受个人相关的字段
  4. 企业客户接口:企业客户发起接口只接受企业相关的字段
  5. 接口功能:两个接口都能成功创建利率定价流程记录,包括新增字段的保存
  6. 字段验证:字段验证正确生效
  7. API 文档API 文档正确显示两个接口的差异