feat: 实现采购运行时规格解析 (#255)
This commit is contained in:
@@ -306,20 +306,25 @@ func HasEverClaimed(q Execer, taskID, clientID string) (bool, error) {
|
||||
// TaskInfo 是提交结果时需要知道的任务基本信息。
|
||||
type TaskInfo struct {
|
||||
TaskType model.TaskType
|
||||
// Version 是 Client 领取任务时拿到的乐观版本号。
|
||||
Version int64
|
||||
// GoodsID 是关联的**蝦皮**商品编号。
|
||||
GoodsID string
|
||||
// PddGoodsID 是要采集/购买的**拼多多**商品编号。
|
||||
// 采集结果落到 pdd_products 时用的是它,不是 GoodsID —— 被采集的是 PDD 商品。
|
||||
PddGoodsID string
|
||||
// PddOptions 是任务创建时固定的目标规格 JSON。
|
||||
// 运行时规格解析必须逐项核对,不能接受 Client 临时改写目标规格。
|
||||
PddOptions string
|
||||
}
|
||||
|
||||
// GetTaskInfo 查任务的类型和关联商品。任务不存在时返回 (nil, nil)。
|
||||
// GetTaskInfo 查任务的类型、版本和关联商品。任务不存在时返回 (nil, nil)。
|
||||
func GetTaskInfo(q Execer, taskID string) (*TaskInfo, error) {
|
||||
var info TaskInfo
|
||||
var gid, pddGID sql.NullString
|
||||
var gid, pddGID, pddOptions sql.NullString
|
||||
err := q.QueryRow(
|
||||
`SELECT task_type, goods_id, pdd_goods_id FROM tasks WHERE task_id = ?`,
|
||||
taskID).Scan(&info.TaskType, &gid, &pddGID)
|
||||
`SELECT task_type,version,goods_id,pdd_goods_id,pdd_options FROM tasks WHERE task_id = ?`,
|
||||
taskID).Scan(&info.TaskType, &info.Version, &gid, &pddGID, &pddOptions)
|
||||
if err == sql.ErrNoRows {
|
||||
return nil, nil
|
||||
}
|
||||
@@ -328,6 +333,7 @@ func GetTaskInfo(q Execer, taskID string) (*TaskInfo, error) {
|
||||
}
|
||||
info.GoodsID = gid.String
|
||||
info.PddGoodsID = pddGID.String
|
||||
info.PddOptions = pddOptions.String
|
||||
return &info, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user