fix: 统一顺运宝单条采集客户端选择 (#174)

This commit is contained in:
chengma
2026-08-12 09:56:15 +08:00
parent 6127551a7b
commit f693d2a6fc
5 changed files with 98 additions and 4 deletions
+37
View File
@@ -143,6 +143,15 @@ func TestCreateSybPddCollectTasksForUser_同一PDD商品去重(t *testing.T) {
if err := db.QueryRow(`SELECT COUNT(*) FROM tasks WHERE task_type='collect'`).Scan(&taskCount); err != nil || taskCount != 1 {
t.Fatalf("同一 PDD 商品应只建一条任务,count=%d err=%v", taskCount, err)
}
var status model.TaskStatus
var assignedClient sql.NullString
if err := db.QueryRow(`SELECT status,assigned_client FROM tasks WHERE task_type='collect'`).
Scan(&status, &assignedClient); err != nil {
t.Fatal(err)
}
if status != model.TaskPending || assignedClient.Valid {
t.Fatalf("不指定客户端时应为无主待领,status=%q client=%+v", status, assignedClient)
}
var sourceCount int
if err := db.QueryRow(`SELECT COUNT(*) FROM task_syb_sources`).Scan(&sourceCount); err != nil || sourceCount != 2 {
t.Fatalf("去重任务应保留两条顺运宝来源,count=%d err=%v", sourceCount, err)
@@ -158,6 +167,34 @@ func TestCreateSybPddCollectTasksForUser_同一PDD商品去重(t *testing.T) {
}
}
func TestCreateSybPddCollectTasksForUser_指定可见客户端(t *testing.T) {
db := newTestDB(t)
admin, _, _ := insertTaskUsers(t, db)
if err := RegisterClient(db, model.Client{ClientID: "client-chosen", Name: "仓库手机"}, true); err != nil {
t.Fatal(err)
}
seedShopeeProduct(t, db, "1001", "商品一")
if _, err := AssociateShopeePdd(db, "1001", pddURLA, false); err != nil {
t.Fatal(err)
}
seedSybCollectOrder(t, db, "SYB-CHOSEN", "1001")
result, err := CreateSybPddCollectTasksForUser(
db, admin, []string{"SYB-CHOSEN"}, "client-chosen")
if err != nil || result.Created != 1 {
t.Fatalf("指定客户端创建结果=%+v err=%v", result, err)
}
var status model.TaskStatus
var assignedClient string
if err := db.QueryRow(`SELECT status,assigned_client FROM tasks WHERE task_type='collect' AND pdd_goods_id='737116531267'`).
Scan(&status, &assignedClient); err != nil {
t.Fatal(err)
}
if status != model.TaskAssigned || assignedClient != "client-chosen" {
t.Fatalf("指定客户端任务状态=%q client=%q", status, assignedClient)
}
}
func TestCreateSybPddCollectTasksForUser_无任务的采集中状态可恢复(t *testing.T) {
db := newTestDB(t)
admin, _, _ := insertTaskUsers(t, db)