From ff4525af5b4178a38ca310719e4c7af9af3e742c Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期一, 12 十月 2026 15:58:46 +0800
Subject: [PATCH] chore(migration): 进件来源列的迁移让号,V157 改为 V158
---
.scratch/merchant-external-onboarding/issues/01-external-merchant-onboarding-adoption.md | 2 +-
talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingSchemaInitializer.java | 2 +-
.scratch/merchant-external-onboarding/spec.md | 3 ++-
talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingProgressService.java | 2 +-
docs/adr/0006-managed-onboarding-is-query-only.md | 2 +-
talent-card-server/src/main/resources/db/migration/V158__merchant_onboarding_source.sql | 4 ++++
talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantManagedOnboardingService.java | 2 +-
7 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/.scratch/merchant-external-onboarding/issues/01-external-merchant-onboarding-adoption.md b/.scratch/merchant-external-onboarding/issues/01-external-merchant-onboarding-adoption.md
index 3f064dd..8f25ca8 100644
--- a/.scratch/merchant-external-onboarding/issues/01-external-merchant-onboarding-adoption.md
+++ b/.scratch/merchant-external-onboarding/issues/01-external-merchant-onboarding-adoption.md
@@ -46,7 +46,7 @@
- [ ] 解绑不动商户端登录账号;解绑后可以重新纳管。
**边界与兼容**
-- [ ] 迁移只新增一列(来源标记),编号取 `V157`,可重复执行。
+- [ ] 迁移只新增一列(来源标记),编号取 `V157`,可重复执行。(落地时与远端撞号,已让号改为 `V158`)
- [ ] 纳管与解绑的接口放在既有的进件查改前缀之下,沿用现有的商户结算权限码,不新增权限码、不改共享的权限映射。
- [ ] 不新增前端路由。
- [ ] 自助进件的既有流程与存量商户行为不受影响。
diff --git a/.scratch/merchant-external-onboarding/spec.md b/.scratch/merchant-external-onboarding/spec.md
index e473d79..55fe1a2 100644
--- a/.scratch/merchant-external-onboarding/spec.md
+++ b/.scratch/merchant-external-onboarding/spec.md
@@ -85,7 +85,8 @@
- `provider_huifu_id` 目前的三个写入口全部来自汇付回执(进件结果与绑卡回调)。纳管必须**新增一个写入口**。
- 进件记录新增一列标明来源(自助进件 / 纳管),用于进度刷新区分判定依据。迁移编号取 **V157**
- (当前已提交最大为 V156,动手前确认无人占号)。
+ (当前已提交最大为 V156,动手前确认无人占号)。**落地时确实撞号了**:远端同期推送了
+ `V157__backfill_premium_service_merchant_types`,本票让号改为 **V158**(见迁移文件头的让号说明)。
- 进件记录的 `application_no` 与 `idempotency_key` 都是唯一键且非空,纳管生成的键必须可稳定复现
(由汇付商户号派生),使重复纳管幂等。
diff --git a/docs/adr/0006-managed-onboarding-is-query-only.md b/docs/adr/0006-managed-onboarding-is-query-only.md
index 0938632..6113f62 100644
--- a/docs/adr/0006-managed-onboarding-is-query-only.md
+++ b/docs/adr/0006-managed-onboarding-is-query-only.md
@@ -5,7 +5,7 @@
先只读核验通道,再建结算卡与进件记录,并跑一次进度刷新。
两条路径**收敛到同一套进件记录、同一套六阶段进度、同一套收款就绪判定**,只有来源不同(进件记录的
-`source`:`self` 自助进件 / `managed` 纳管,见 `V157`)。也就是说,纳管不新造链路、不新造状态,
+`source`:`self` 自助进件 / `managed` 纳管,见 `V158`)。也就是说,纳管不新造链路、不新造状态,
只在「写入口」与「来源标记」两处新增——`provider_huifu_id` 原先三个写入口全部来自汇付回执,纳管是第四个。
**纳管全程只查询、不下发。** 进度刷新是纯查询;`source=managed` 的记录在刷新链路里跳过全部下发步骤
diff --git a/talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantManagedOnboardingService.java b/talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantManagedOnboardingService.java
index d37f3aa..a1ec959 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantManagedOnboardingService.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/business/admin/MerchantManagedOnboardingService.java
@@ -24,7 +24,7 @@
*
* <p>为什么不新造链路:纳管产出的就是一条进件记录。它复用既有的进件记录、六阶段进度、收款能力快照
* 与收款就绪判定,只在「写入口」和「来源标记」两处新增——{@code provider_huifu_id} 原先三个写入口
- * 全部来自汇付回执,纳管是第四个(见 V157 的 source 列)。
+ * 全部来自汇付回执,纳管是第四个(见 V158 的 source 列)。
*
* <p><b>全程只查询、不下发。</b> 外部进件商户的口径已由业务要求与自助进件保持一致,纳管只需核实;
* 而补开微信、绑人才端 AppID、改支付场景、开启延迟入账这些下发操作都不幂等(改支付场景会重建微信
diff --git a/talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingProgressService.java b/talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingProgressService.java
index bfa7767..4c87752 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingProgressService.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingProgressService.java
@@ -45,7 +45,7 @@
public Map<String,Object> view(Long id) { return view(application(id)); }
- /** 进件来源标记:后台纳管进来的外部进件商户。取值与 V157 的 {@code source} 列一致。 */
+ /** 进件来源标记:后台纳管进来的外部进件商户。取值与 V158 的 {@code source} 列一致。 */
public static final String SOURCE_MANAGED = "managed";
/**
diff --git a/talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingSchemaInitializer.java b/talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingSchemaInitializer.java
index c374cf8..2da6389 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingSchemaInitializer.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/business/merchant/MerchantOnboardingSchemaInitializer.java
@@ -131,7 +131,7 @@
columns.put("store_cashier_url", "varchar(512) default null");
// 经营详细地址:线下进件的 detail_addr 是通道必填项,与证件地址分开存。见 V155 的说明。
columns.put("business_address", "varchar(255) default null");
- // 进件来源(自助进件 / 后台纳管):决定进度刷新是否允许下发通道改动。见 V157 的说明。
+ // 进件来源(自助进件 / 后台纳管):决定进度刷新是否允许下发通道改动。见 V158 的说明。
// 开发库(flyway 关闭)靠这里补列,否则纳管的 INSERT 会报 Unknown column。
columns.put("source", "varchar(16) not null default 'self'");
for (Map.Entry<String, String> column : columns.entrySet()) {
diff --git a/talent-card-server/src/main/resources/db/migration/V157__merchant_onboarding_source.sql b/talent-card-server/src/main/resources/db/migration/V158__merchant_onboarding_source.sql
similarity index 85%
rename from talent-card-server/src/main/resources/db/migration/V157__merchant_onboarding_source.sql
rename to talent-card-server/src/main/resources/db/migration/V158__merchant_onboarding_source.sql
index 3a3a4f9..66bedaa 100644
--- a/talent-card-server/src/main/resources/db/migration/V157__merchant_onboarding_source.sql
+++ b/talent-card-server/src/main/resources/db/migration/V158__merchant_onboarding_source.sql
@@ -1,5 +1,9 @@
-- 进件来源标记:区分「商户端自助进件」与「运营在后台纳管的外部进件商户」。
--
+-- 编号让位(2026-10-12):本文件原为 V157,与远端已推送的 V157__backfill_premium_service_merchant_types
+-- 撞号——同一个版本号有两个迁移,Flyway 会直接拒绝启动。改动只在编号与文件名,建列语句一字未动。
+-- 已经执行过原 V157 的那份测试库要按 docs/agents/testing.md 重置一次。
+--
-- 背景:商户有两条进件路径。一条是商户在我们商户端自助进件(既有能力),另一条是商户直接在汇付侧
-- 完成进件、需要被接进我们的商家(见 .scratch/merchant-external-onboarding/spec.md)。两条路径收敛到
-- 同一套进件记录、分阶段进度与收款就绪判定,只有「来源」不同,所以只加这一列。
--
Gitblit v1.7.1