# 服务商业务范围下拉 & 企业万里汇uid **日期**: 2026-06-06 **分支**: java --- ## 概述 1. 服务商管理页面(新增/编辑弹窗)的"业务范围标签"从输入框改为下拉框,仅映射"国内" / "国外" 2. 企业入驻/新增企业弹窗中,若选择"国外"标签的服务商,新增"万里汇uid"输入框,该字段落库并在企业详情中回显 --- ## 改动清单 ### 数据库 - `pay_enterprise` 新增列 `wanlihui_uid VARCHAR(128)`(无唯一约束,允许为空) - 新 SQL 迁移文件: `java/sql/007_enterprise_wanlihui_uid.sql` ```sql ALTER TABLE pay_enterprise ADD COLUMN IF NOT EXISTS wanlihui_uid VARCHAR(128); ``` ### 后端 (Java) | 文件 | 改动 | |---|---| | `EnterpriseEntity.java` | 新增 `@TableField("wanlihui_uid") private String wanlihuiUid;` | | `EnterpriseCreateDTO.java` | 新增 `private String wanlihuiUid;` | | `EnterpriseUpdateDTO.java` | 新增 `private String wanlihuiUid;` | | `EnterpriseVO.java` | 新增 `@JsonProperty("wanlihui_uid") private String wanlihuiUid;` | | `EnterpriseService.java` | `create()` / `update()` 处理 `wanlihuiUid` 字段映射 | | `AlipayEnterpriseService.java` | `applyInvite()` 保存 `wanlihuiUid` 到实体 | ### 前端 | 文件 | 改动 | |---|---| | `service_provider/index.vue` | `scope_label` 字段从 `` 改为 ``: `国内`→`DOMESTIC`, `国外`→`OVERSEAS` | | `EnterpriseForm.vue` | 监听 `service_provider_id` 变化,当选中服务商的 `scope_label === 'OVERSEAS'` 时显示万里汇uid输入框;提交时携带 `wanlihui_uid` | | `EnterpriseDetail.vue` | 回显 `wanlihui_uid` 字段 | | `enterprise.ts` | `EnterpriseDetail` 接口补充 `wanlihui_uid` | | `schema.ts` | 补充 `wanlihui_uid` 类型 | --- ## 关键逻辑 ### 服务商表单 scope_label ``` 创建/编辑服务商时: scope_label 字段类型: el-select (替代原 el-input) 选项: { label: '国内', value: 'DOMESTIC' } { label: '国外', value: 'OVERSEAS' } DOMESTIC 保持为默认值 ``` ### 企业表单万里汇uid显隐 ``` EnterpriseForm.vue: watch service_provider_id: → 从 providerOptions 查找选中服务商的 scope_label → formData.scope_label = provider.scope_label computed showWanlihuiUid: → formData.scope_label === 'OVERSEAS' 模板: handleProviderChange(): → 切换服务商时若 scope_label !== 'OVERSEAS',清空 formData.wanlihui_uid ``` ### 数据流 ``` 提交企业: EnterpriseForm → { ..., wanlihui_uid: "xxx" } → EnterpriseAPI.applyInvite(payload) → POST /payment/enterprise/invite → AlipayEnterpriseService.applyInvite() → entity.setWanlihuiUid(dto.getWanlihuiUid()) → enterpriseMapper.insert(entity) → pay_enterprise.wanlihui_uid = "xxx" 回显企业详情: EnterpriseDetail → EnterpriseAPI.detail(id) → GET /payment/enterprise/{id} → EnterpriseService.detail() → enterpriseMapper.selectById(id) → toVO(entity) → EnterpriseVO { wanlihui_uid: "xxx" } → 前端展示 ``` --- ## 测试要点 1. 服务商新增/编辑 → scope_label 下拉框正常展示国内/国外,提交保存正确 2. 选择国外服务商 → 企业表单出现万里汇uid输入框 3. 切换回国内服务商 → 万里汇uid输入框消失并清空值 4. 填写万里汇uid后提交 → 数据成功写入 `pay_enterprise.wanlihui_uid` 5. 企业详情页面 → 万里汇uid正确回显 6. 不填万里汇uid提交 → 不报错(非必填)