# fix(agency): 删除 admin 公司基础信息「分公司名称」字段

**日期**: 2026-05-06 18:50
**通知对象**: @mmg (前端) — **必须移除「分公司名称」字段的展示和表单输入**
**关联 PR**: wx/HL #1728 (squash 4bddc5b2 已合 dev) / Closes #1727
**关联工单**: #1727

---

## ⚠️ 一句话摘要

**admin 公司详情/编辑/列表接口的响应/请求体不再包含 `companyBranchName` 字段, 小程序 `/mp/agency/primary` 接口同步移除。前端必须删除「分公司名称」展示和表单输入项, 保留会浪费一个无意义字段。**

---

## 一、为什么删

| 时间 | 行为 |
|------|------|
| PR #1573 之前 | agency 不传 companyBranchName, 12301 平台接收正常 |
| 2026-04 PR #1573 hotfix | 12301 上报新增 agency.companyBranchName(可选字段) |
| 2026-05-06 PR #1710 | 旅行社公司管理新模块, DB travel_agency 表落 company_branch_name 列 |
| 2026-05-06 用户反馈 | admin 详情页「分公司名称: 海拉尔区营业部」字段不需要在前端单独维护, 业务上由 agency 名称/地址推导 |
| **2026-05-06 PR #1728 (本次)** | **彻底删除字段: DB DROP COLUMN + Entity/VO/DTO/12301 上报全部移除** |

12301 spec 中 `companyBranchName` 属可选字段, PR #1573 之前一直未传, 平台接受。

---

## 二、影响接口对照表 (前端必改)

### 1. admin 端 - 字段被删

| Method | 路径 | 旧字段 | 新行为 |
|--------|------|--------|--------|
| GET | `/admin/travel-agency/{agencyId}` | `companyBranchName` | **不再返回此字段** |
| GET | `/admin/travel-agency/page` | `records[*].companyBranchName` | **不再返回此字段** |
| POST | `/admin/travel-agency` | `companyBranchName` (body) | 后端忽略, 不入库 (字段已删) |
| PUT | `/admin/travel-agency/{agencyId}` | `companyBranchName` (body) | 后端忽略, 不入库 (字段已删) |

> Round-trip 验证: `GET /admin/travel-agency/2051922156798779394` 响应 40 字段, 无 `companyBranchName` ✓

### 2. 小程序端 - 字段被删

| Method | 路径 | 旧字段 | 新行为 |
|--------|------|--------|--------|
| GET | `/mp/agency/primary` | `companyBranchName` | **不再返回此字段** |

> Round-trip 验证: `GET /mp/agency/primary` 响应 6 字段 (`code/agencyName/licenseNumber/businessLicenseNumber/complaintPhone/agencyAddress`), 无 `companyBranchName` ✓

### 3. 12301 合同上报

后端不再上报 `agency.companyBranchName` 节点, 12301 平台接收正常 (与 PR #1573 之前一致)。前端无感知。

---

## 三、前端改动清单 (mmg)

| 模块 | 改动 |
|------|------|
| `hl-ui` 公司详情页基础信息 tab | 移除「分公司名称」整行 |
| `hl-ui` 公司编辑/新建表单 | 移除「分公司名称」输入框 + 校验 |
| `hl-ui` 公司列表(若有展示) | 移除该列 |
| `hl-ui` 小程序首页/我的页/客服联系页/分享卡片/协议页落款 | 若有用 `companyBranchName` 显示, 移除 |
| API 类型定义 (`*.d.ts` 或 axios response 类型) | 移除该字段定义 |

**关键**: 前端 `companyBranchName` 字段可以一次性 grep 全删, 无业务逻辑分支依赖该字段。

---

## 四、DB 变更

```sql
-- V20260506_009__drop_company_branch_name.sql
ALTER TABLE travel_agency DROP COLUMN company_branch_name;
```

- 测试服: 已通过 Flyway 自动执行 (deploy-panel task `fb0dd936` 18:46 完成滚动部署 8094/8194)
- 正式服: 下一波 release main 走 Flyway 自动执行

---

## 五、Round-trip 验证记录

| 测试 | 路径 | 结果 |
|------|------|------|
| 1 | `GET /admin/travel-agency/2051922156798779394` | ✅ 200, 40 字段, 无 `companyBranchName` |
| 2 | `GET /mp/agency/primary` | ✅ 200, 6 字段, 无 `companyBranchName` |
| 3 | `GET /admin/travel-agency/page?pageNum=1&pageSize=3` | ✅ 200, 3 records, 第一条 40 字段, 无 `companyBranchName` |

测试服: `https://api.test.1814.love:9443`
admin token: 真实登录 (admin / Admin@123456)
DB: `DESC travel_agency` 已无 `company_branch_name` 列 (Flyway 自动 apply)

---

**有疑问 @ wx, 改动完成请在工单 #1727 留言确认。**
