feat(agency): nacos 完整字段同步 DB (PR #1718)
通知 mmg 前端: - 三家公司 teamReportAppId/teamReportSignKey/supportedPlatforms 已填充 - payment 加密字段 apiV3Key/mchSerialNo/publicKeyId 已落 DB (透明加密+解密返明文) - 前端刷新页面即可看到字段全部填满, 不再显示 -/[] 测试服 round-trip 通过 (2026-05-06 16:30). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
这个提交包含在:
父节点
4481463426
当前提交
16b3458028
@ -0,0 +1,91 @@
|
|||||||
|
# feat(agency): 旅行社三家公司完整字段从 nacos 同步到 DB
|
||||||
|
|
||||||
|
**日期**: 2026-05-06 16:30
|
||||||
|
**通知对象**: @mmg (前端)
|
||||||
|
**关联 PR**: wx/HL #1718 (已 merge dev + 测试服部署完成 + round-trip 验证通过)
|
||||||
|
**前序**: PR #1717 (字典 + qualificationType 字段)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、用户反馈解决
|
||||||
|
|
||||||
|
PR #1717 加完字典后 UI 仍显示几处 `-` / `[]`:
|
||||||
|
- 「团队报送 AppId / SignKey」: `-`
|
||||||
|
- 「支持平台」: `[]`
|
||||||
|
- 支付配置: `未命名 mchId 1106110439 AppId: -` (api_v3_key/mch_serial_no/public_key_id 全空)
|
||||||
|
|
||||||
|
根因: `AgencyDataInitializer` 启动同步时只覆盖部分字段, payment 子表加密字段从未写入。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、本 PR 修复
|
||||||
|
|
||||||
|
### 1. 主表 `travel_agency` 字段全部从 nacos 同步
|
||||||
|
|
||||||
|
`AgencyDataInitializer.upsertOne` SYNC path 加 set 字段:
|
||||||
|
- `teamReportAppId` ← nacos `agencies[].team-report-app-id`
|
||||||
|
- `teamReportSignKey` ← nacos `agencies[].team-report-sign-key`
|
||||||
|
- `supportedPlatforms` ← nacos `agencies[].supported-platforms` (List → JSON, 无配置默认 `["12301"]`)
|
||||||
|
|
||||||
|
### 2. 子表 `travel_agency_payment` 加密字段透明加密落 DB
|
||||||
|
|
||||||
|
`initPaymentForAgency` 增强:
|
||||||
|
- 注入 `WxPayProperties`, 从 `wechat.pay.merchants.{key}.*` 拿 MerchantConfig
|
||||||
|
- INSERT 时同步 `apiV3Key` / `mchSerialNo` / `publicKeyId` (透明加密 by `@TableField(typeHandler=PaymentEncryptTypeHandler)`)
|
||||||
|
- SYNC existing payment 时, 加密字段空就回填 (admin 没填/旧数据回补)
|
||||||
|
|
||||||
|
### 3. Feign DTO 同步
|
||||||
|
|
||||||
|
`AgencyInternalDTO` 加 `teamReportAppId/teamReportSignKey` 字段, `ContractPlatformProperties.AgencyInfo.fromInternalDTO` 同步, 保证 DB 路径下游 (12301 团队报送) 拿到完整字段。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、测试服 round-trip 验证 (2026-05-06 16:30)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
TOK=$(curl -sk -X POST "https://api.test.1814.love:9443/admin/auth/login" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"username":"admin","password":"Admin@123456"}' \
|
||||||
|
| python -c "import json,sys; print(json.load(sys.stdin)['data']['token'])")
|
||||||
|
|
||||||
|
# 公司列表 - 三家完整字段
|
||||||
|
curl -sk "https://api.test.1814.love:9443/admin/travel-agency/page?pageNum=1&pageSize=10" \
|
||||||
|
-H "Authorization: Bearer $TOK"
|
||||||
|
```
|
||||||
|
|
||||||
|
| 字段 | hulai | qianshou | hulai-wenlu |
|
||||||
|
|---|---|---|---|
|
||||||
|
| teamReportAppId | 2078b6f0... | 412ff570... | 4f03ff70... |
|
||||||
|
| teamReportSignKey | 40ff382f... | 4e843fdd... | 727bb9c1... |
|
||||||
|
| supportedPlatforms | `["12301","TENCENT_ESIGN"]` | `["12301"]` | `["12301"]` |
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 支付配置 - 加密字段透明解密返明文
|
||||||
|
curl -sk "https://api.test.1814.love:9443/admin/travel-agency/2051922156798779394/payment" \
|
||||||
|
-H "Authorization: Bearer $TOK"
|
||||||
|
```
|
||||||
|
|
||||||
|
| 字段 | hulai | qianshou | hulai-wenlu |
|
||||||
|
|---|---|---|---|
|
||||||
|
| mchId | 1106110439 | 1246532201 | 1684769133 |
|
||||||
|
| apiV3Key (RespVO 解密返明文) | 2XxC4RHqyipPMwpVoAhXsvj1hvrwgbAJ | 同 | 同 |
|
||||||
|
| mchSerialNo | 60508F7718D2A9BB21DA9E8BB6259919FEA9FB0F | 7731A9D5B457BB999CA7CDB12676F1809DE2945A | 6708668E3326069DA24F81DD5568593F3F3CFA99 |
|
||||||
|
| publicKeyId | PUB_KEY_ID_0111061104392026020200181614001205 | PUB_KEY_ID_0112465322012026020200212016001401 | PUB_KEY_ID_0116847691332026020200212017000202 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 四、前端无需改动
|
||||||
|
|
||||||
|
后端字段返回时已经是明文 (apiV3Key/mchSerialNo) + 完整内容, 前端无需改任何 API 调用代码,**刷新页面即可看到字段全部填充**。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 五、关联 PR + changelog
|
||||||
|
|
||||||
|
- wx/HL PR #1717: 资质附件 qualificationType + 字典 agency_qualification_type / agency_contract_platform
|
||||||
|
- wx/HL PR #1718: 本 PR
|
||||||
|
- 关联 changelog: `06_feat_agency_qualification_type_and_contract_platform.md`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
cc @mmg
|
||||||
正在加载...
x
在新工单中引用
屏蔽一个用户