feat: 支持顺运宝多订单号搜索 (#217)
This commit is contained in:
@@ -2,6 +2,8 @@ package service
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"cmautobuy/admin/model"
|
||||
@@ -71,7 +73,7 @@ func TestListSybOrdersView_空规格阻断且普通规格直接进入PDD阶段(t
|
||||
}
|
||||
}
|
||||
|
||||
func TestListSybOrdersView_店铺与标题和阶段组合筛选(t *testing.T) {
|
||||
func TestListSybOrdersView_店铺与订单号和阶段组合筛选(t *testing.T) {
|
||||
db := newSyncTestDB(t)
|
||||
for _, order := range []model.SybOrder{
|
||||
{SybID: "SHOP-A", OrderNo: "ORDER-A", ShopName: "台北服饰旗舰店", Title: "纯棉上衣", ProductSpec: "黑色,M", ShopeeGoodsID: "SP-A", Quantity: 1, SybData: `{}`},
|
||||
@@ -81,15 +83,39 @@ func TestListSybOrdersView_店铺与标题和阶段组合筛选(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
result, err := ListSybOrdersView(db, "上衣", " 服饰 ", SybStagePddMissing, 1)
|
||||
result, err := ListSybOrdersView(db, "ORDER-A,NOT-FOUND", " 服饰 ", SybStagePddMissing, 1)
|
||||
if err != nil || result.Total != 1 || len(result.Rows) != 1 || result.Rows[0].SybID != "SHOP-A" || result.Rows[0].ShopName != "台北服饰旗舰店" {
|
||||
t.Fatalf("组合筛选错误: result=%+v err=%v", result, err)
|
||||
}
|
||||
if result.OrderNoQuery != "ORDER-A,NOT-FOUND" || result.OrderNoCount != 2 ||
|
||||
result.MatchedOrderCount != 1 || len(result.UnmatchedOrderNos) != 1 || result.UnmatchedOrderNos[0] != "NOT-FOUND" {
|
||||
t.Fatalf("订单号命中统计错误: %+v", result)
|
||||
}
|
||||
if !result.IsFiltered {
|
||||
t.Fatal("店铺条件应标记为筛选结果")
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseSybOrderNos_多分隔符去重与限制(t *testing.T) {
|
||||
got, err := ParseSybOrderNos(" A,B;C;D\tE\nA ")
|
||||
if err != nil || strings.Join(got, ",") != "A,B,C,D,E" {
|
||||
t.Fatalf("多分隔符解析错误: got=%v err=%v", got, err)
|
||||
}
|
||||
tooMany := make([]string, 101)
|
||||
for i := range tooMany {
|
||||
tooMany[i] = fmt.Sprintf("ORDER-%03d", i)
|
||||
}
|
||||
if _, err := ParseSybOrderNos(strings.Join(tooMany, ",")); !IsValidationError(err) || ValidationField(err) != "order_no" {
|
||||
t.Fatalf("超过 100 个订单号应返回字段校验错误: %v", err)
|
||||
}
|
||||
if _, err := ParseSybOrderNos(strings.Repeat("A", 192)); !IsValidationError(err) {
|
||||
t.Fatalf("超长单号应返回校验错误: %v", err)
|
||||
}
|
||||
if _, err := ParseSybOrderNos(strings.Repeat("A,", 2001)); !IsValidationError(err) {
|
||||
t.Fatalf("超长原始输入应返回校验错误: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSybStageFor_全部筛选阶段与逐行推导一致(t *testing.T) {
|
||||
key, err := OptionKey(map[string]string{"color": "黑色", "size": "M码", "style": "常规"})
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user