feat: 明确顺运宝复用 PDD 关联 (#183)

This commit is contained in:
chengma
2026-08-12 15:13:08 +08:00
parent e32041e794
commit 4c5f0610fd
8 changed files with 105 additions and 25 deletions
+38
View File
@@ -44,6 +44,44 @@ func TestAssociateSybPdd_兼容商品ID并复用已有采集结果(t *testing.T)
}
}
func TestUpsertSybOrder_同步后自动复用蝦皮商品Pdd关联(t *testing.T) {
db := newTestDB(t)
if err := repository.UpsertShopeeProduct(db, "SP-REUSE", "目录商品", "正常", "MAIN-1"); err != nil {
t.Fatal(err)
}
if _, err := AssociateShopeePdd(db, "SP-REUSE", pddURLA, false); err != nil {
t.Fatal(err)
}
seedWorkflowOrder(t, db, "SYB-REUSE", "SP-REUSE", "黑色,M")
detail, err := GetSybProcessingDetail(db, "SYB-REUSE")
if err != nil || detail == nil {
t.Fatalf("读取同步明细失败: detail=%+v err=%v", detail, err)
}
if detail.Stage != SybStagePddPending || detail.PddGoodsID != "737116531267" || detail.PddAssociationText == "" {
t.Fatalf("新明细应直接复用已有 PDD 关联并进入待采集阶段: %+v", detail)
}
list, err := ListSybOrdersView(db, "", "", SybStagePddPending, 1)
if err != nil || list.Total != 1 || list.Rows[0].PddAssociationText == "" {
t.Fatalf("列表应显示关联来源: list=%+v err=%v", list, err)
}
// 重复同步仍复用同一商品关系,不覆盖主数据上的 PDD 关联。
seedWorkflowOrder(t, db, "SYB-REUSE", "SP-REUSE", "黑色,M")
product, err := repository.GetShopeeProductByGoodsID(db, "SP-REUSE")
if err != nil || product == nil || product.PddGoodsID != "737116531267" {
t.Fatalf("重复同步覆盖了蝦皮商品的 PDD 关联: product=%+v err=%v", product, err)
}
if err := repository.SoftDeletePddProduct(db, "737116531267"); err != nil {
t.Fatal(err)
}
detail, err = GetSybProcessingDetail(db, "SYB-REUSE")
if err != nil || detail.Stage != SybStagePddMissing || detail.PddAssociationText != "" {
t.Fatalf("PDD 软删除后必须回到关联失效状态且不显示复用提示: detail=%+v err=%v", detail, err)
}
}
func TestAssociateSybPdd_新商品ID生成标准链接且完整链接保持兼容(t *testing.T) {
t.Run("纯商品ID", func(t *testing.T) {
db := newTestDB(t)