feat: 支持顺运宝多订单号搜索 (#217)

This commit is contained in:
chengma
2026-08-13 14:58:19 +08:00
parent 2ebe6bf695
commit 8f2b3f725d
13 changed files with 372 additions and 46 deletions
+14 -9
View File
@@ -408,7 +408,7 @@ func TestInterruptRunningSybSyncRuns_只中断未完成记录(t *testing.T) {
}
}
func TestListSybOrders_订单标题店铺组合筛选(t *testing.T) {
func TestListSybOrders_多订单精确与店铺组合筛选(t *testing.T) {
db := newSybTestDB(t)
mustUpsert := func(sybID, orderNo, shop, title string) {
if _, err := UpsertSybOrder(db, model.SybOrder{
@@ -420,28 +420,33 @@ func TestListSybOrders_订单标题店铺组合筛选(t *testing.T) {
mustUpsert("SYB-A", "260728AAA", "台北服饰旗舰店", "纯棉上衣")
mustUpsert("SYB-B", "260728BBB", "台南生活馆", "牛仔裤")
rows, err := ListSybOrders(db, SybOrderFilter{Keyword: "AAA"}, 20, 0)
rows, err := ListSybOrders(db, SybOrderFilter{OrderNos: []string{"260728AAA", "260728BBB"}}, 20, 0)
if err != nil {
t.Fatalf("查询失败: %v", err)
}
if len(rows) != 1 || rows[0].SybID != "SYB-A" {
t.Fatalf("按订单号筛选应该只查到 SYB-A,实际 %+v", rows)
if len(rows) != 2 {
t.Fatalf("两个精确订单号应该查到两条,实际 %+v", rows)
}
rows2, err := ListSybOrders(db, SybOrderFilter{Keyword: "牛仔"}, 20, 0)
rows2, err := ListSybOrders(db, SybOrderFilter{OrderNos: []string{"AAA", "牛仔"}}, 20, 0)
if err != nil {
t.Fatalf("查询失败: %v", err)
}
if len(rows2) != 1 || rows2[0].SybID != "SYB-B" {
t.Fatalf("按标题筛选应该只查到 SYB-B,实际 %+v", rows2)
if len(rows2) != 0 {
t.Fatalf("订单号片段和商品标题都不应再命中,实际 %+v", rows2)
}
rows3, err := ListSybOrders(db, SybOrderFilter{Shop: " 服饰 "}, 20, 0)
if err != nil || len(rows3) != 1 || rows3[0].SybID != "SYB-A" || rows3[0].ShopName != "台北服饰旗舰店" {
t.Fatalf("按店铺模糊筛选错误:rows=%+v err=%v", rows3, err)
}
count, err := CountSybOrders(db, SybOrderFilter{Keyword: "牛仔", Shop: "台南"})
filter := SybOrderFilter{OrderNos: []string{"260728AAA", "260728BBB", "NOT-FOUND"}, Shop: "台南"}
count, err := CountSybOrders(db, filter)
if err != nil || count != 1 {
t.Fatalf("标题与店铺组合 COUNT 错误:count=%d err=%v", count, err)
t.Fatalf("订单号与店铺组合 COUNT 错误:count=%d err=%v", count, err)
}
matched, err := ListMatchedSybOrderNos(db, filter)
if err != nil || len(matched) != 1 || matched[0] != "260728BBB" {
t.Fatalf("当前筛选命中订单号错误:matched=%v err=%v", matched, err)
}
}