6.9 KiB
6.9 KiB
客户号查询选择客户内码设计
背景
在利率定价流程新增时,现有页面流程为:
- 列表页点击“新增”。
- 选择个人客户或企业客户。
- 直接打开对应新增弹窗。
- 用户手工输入客户内码和客户名称。
新需求要求在选择个人或企业后,先根据客户号调用映射接口查询客户信息,由用户从返回结果中选择一条客户内码,再自动带入新增弹窗。映射接口请求和返回字段以 doc/上虞_客户内码客户_历史利率_映射表.xlsx 的“客户号与客户内码映射”sheet 为准。
本次设计只覆盖客户号映射查询、选择和自动带入,不调整模型测算接口调用逻辑,不新增数据库字段,不改变现有流程创建接口的请求结构。
已确认规则
- 个人和企业分别有客户号映射接口地址。
- 当前先在本项目内新增两个 mock 接口,不直接调用生产网关。
- 配置文件新增客户号映射接口地址,当前配置指向本项目 mock 接口。
- mock 接口随机返回 1 条或多条客户映射数据。
- 后端业务接口返回给前端的字段保持下划线命名。
- 用户选择客户映射记录后,新增弹窗自动填入客户内码和客户名称。
- 新增弹窗中的客户内码和客户名称改为只读。
- 其余新增流程字段和提交接口保持现状。
接口字段
客户号映射请求参数:
| 字段 | 名称 |
|---|---|
cust_id |
客户号 |
客户号映射返回字段:
| 字段 | 名称 | 用途 |
|---|---|---|
cust_id |
客户号 | 前端展示 |
cust_isn |
客户内码 | 用户选择后作为流程创建入参 custIsn |
cust_name |
客户名称 | 用户选择后作为流程创建入参 custName |
faith_day |
用信天数 | 前端展示,辅助判断 |
balance_avg |
存款年日均 | 前端展示,辅助判断 |
loan_count_his |
历史贷款次数 | 前端展示,辅助判断 |
last_loan_date |
上次贷款日期 | 前端展示,辅助判断 |
后端设计
新增客户号映射查询业务接口:
GET /loanPricing/workflow/customer-map/personal?custId=...GET /loanPricing/workflow/customer-map/corporate?custId=...
业务接口职责:
- 校验
custId非空。 - 根据个人或企业读取对应配置地址。
- 使用 GET 调用配置地址,请求 mock 时传参名为
cust_id。 - 解析 mock 返回结果。
- 返回给前端的客户映射数据字段保持下划线,不转 camelCase。
新增 mock 接口:
GET /rate/pricing/mock/customer-map/personal?cust_id=...GET /rate/pricing/mock/customer-map/corporate?cust_id=...
mock 接口职责:
- 校验
cust_id非空。 - 随机生成 1 条或多条客户映射记录。
- 返回字段使用
cust_id、cust_isn、cust_name、faith_day、balance_avg、loan_count_his、last_loan_date。
新增配置节点:
customer-map:
personal-url: http://localhost:63310/rate/pricing/mock/customer-map/personal
corporate-url: http://localhost:63310/rate/pricing/mock/customer-map/corporate
配置节点与现有 model.personal-url、model.corporate-url 分开,避免客户号映射接口和模型测算接口混用。需要启动的 profile 均应包含该配置,当前统一指向本项目 mock 地址。
前端设计
新增一个客户号查询选择弹窗组件,个人和企业共用,通过 customerType 区分调用个人或企业查询接口。
弹窗内容:
- 输入框:客户号。
- 按钮:查询。
- 表格列:客户号、客户内码、客户名称、用信天数、存款年日均、历史贷款次数、上次贷款日期。
- 操作列:选择。
新增流程:
- 列表页点击“新增”。
- 打开现有客户类型选择弹窗。
- 用户选择个人客户或企业客户。
- 打开客户号查询选择弹窗。
- 用户输入客户号并点击查询。
- 前端调用对应业务接口。
- 用户从结果表格选择一条客户映射记录。
- 前端关闭查询选择弹窗,打开对应新增弹窗。
- 新增弹窗将
cust_isn带入custIsn,将cust_name带入custName。 - 新增弹窗中客户内码和客户名称只读。
- 用户继续填写其余字段并提交。
个人和企业新增弹窗需要增加一个入参,用于接收选中的客户映射记录。弹窗重置时清空本次客户选择,下一次新增必须重新查询选择。
现有创建接口保持不变:
POST /loanPricing/workflow/create/personalPOST /loanPricing/workflow/create/corporate
提交时仍只提交现有流程创建字段,不提交 faith_day、balance_avg、loan_count_his、last_loan_date。
异常处理
- 客户号为空:前端拦截,提示“请输入客户号”。
- 后端业务接口收到空
custId:返回参数错误。 - mock 接口收到空
cust_id:返回参数错误。 - 映射接口调用失败:后端返回错误,前端展示接口错误提示。
- 映射接口返回空列表:前端提示“未查询到客户信息”。
- 用户没有选择客户映射记录:不打开新增弹窗。
- 新增弹窗中的客户内码、客户名称虽然只读,但保留必填校验,防止异常状态提交空值。
测试方案
后端验证:
- 个人客户映射查询接口正常返回下划线字段。
- 企业客户映射查询接口正常返回下划线字段。
- 缺少
custId时返回参数错误。 - mock 个人接口返回随机客户映射列表。
- mock 企业接口返回随机客户映射列表。
- 配置读取个人和企业映射地址,不复用模型测算地址。
前端验证:
- 客户号为空时点击查询,提示“请输入客户号”。
- 个人客户类型下调用个人映射查询接口。
- 企业客户类型下调用企业映射查询接口。
- 查询结果表格展示全部返回字段。
- 选择一条结果后,个人新增弹窗自动带入
custIsn、custName,且两项只读。 - 选择一条结果后,企业新增弹窗自动带入
custIsn、custName,且两项只读。 - 关闭新增弹窗后再次新增,需要重新查询客户号。
真实页面验证:
- 启动后端进程,确保最新代码生效。
- 启动前端页面。
- 使用浏览器进入利率定价流程列表。
- 跑通个人客户新增:新增 -> 选择个人 -> 查询客户号 -> 选择客户内码 -> 新增弹窗只读带入 -> 填写其余字段 -> 提交。
- 跑通企业客户新增:新增 -> 选择企业 -> 查询客户号 -> 选择客户内码 -> 新增弹窗只读带入 -> 填写其余字段 -> 提交。
- 验证列表或详情中新增流程存在。
- 测试结束后关闭本次启动的前后端进程。
不在本次范围
- 不新增数据库字段。
- 不修改现有流程创建接口请求结构。
- 不把
faith_day、balance_avg、loan_count_his、last_loan_date写入流程表。 - 不调整模型测算个人/企业接口。
- 不直接调用生产网关地址。