feat: 完成规格映射与采购任务创建 (#69)
This commit is contained in:
@@ -445,3 +445,40 @@ func InsertCollectTask(q Execer, taskID, goodsID, goodsURL string) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// HasActivePurchaseTask 判断顺运宝明细是否已有尚未结束的采购任务。
|
||||
func HasActivePurchaseTask(q Execer, sybID string) (bool, error) {
|
||||
var count int
|
||||
err := q.QueryRow(`
|
||||
SELECT COUNT(*) FROM tasks
|
||||
WHERE task_type = 'purchase' AND syb_id = ?
|
||||
AND status IN ('pending', 'assigned', 'claimed')`, sybID).Scan(&count)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("检查顺运宝明细 %s 的进行中采购任务失败: %w", sybID, err)
|
||||
}
|
||||
return count > 0, nil
|
||||
}
|
||||
|
||||
// InsertPurchaseTask 插入一条已分配、等待指定客户端领取的采购任务。
|
||||
func InsertPurchaseTask(q Execer, task model.Task) error {
|
||||
if task.TaskID == "" || task.AssignedClient == "" || task.SybID == "" ||
|
||||
task.PddGoodsURL == "" || task.PddGoodsID == "" || task.PddOptions == "" ||
|
||||
task.Quantity <= 0 || task.MaxPriceCent <= 0 {
|
||||
return fmt.Errorf("采购任务缺少客户端、商品、规格、数量或人民币价格上限")
|
||||
}
|
||||
now := model.NowISO()
|
||||
_, err := q.Exec(`
|
||||
INSERT INTO tasks
|
||||
(task_id, task_type, status, assigned_client,
|
||||
syb_id, order_no, goods_id, shopee_sku_id,
|
||||
pdd_goods_url, pdd_goods_id, pdd_options,
|
||||
quantity, max_price_cent, created_at, updated_at)
|
||||
VALUES (?, 'purchase', 'assigned', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||
task.TaskID, task.AssignedClient, task.SybID, task.OrderNo,
|
||||
task.GoodsID, task.ShopeeSKUID, task.PddGoodsURL, task.PddGoodsID,
|
||||
task.PddOptions, task.Quantity, task.MaxPriceCent, now, now)
|
||||
if err != nil {
|
||||
return fmt.Errorf("创建顺运宝明细 %s 的采购任务失败: %w", task.SybID, err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user