feat: 支持顺运宝批量创建采集任务 (#153)
This commit is contained in:
@@ -157,3 +157,31 @@ func CreateSybPddCollectTaskForUser(db *sql.DB, actor *model.User, sybID string)
|
||||
}
|
||||
return CreateShopeePddCollectTaskForUser(db, actor, context.Order.ShopeeGoodsID)
|
||||
}
|
||||
|
||||
// CreateSybPddCollectTasksForUser 把勾选的顺运宝明细转换成 PDD 商品后批量建采集任务。
|
||||
// 同一 PDD 商品可能对应多条货运单明细,因此先按 goods_id 去重;任何明细不存在或
|
||||
// 已不处于可采集阶段时整批拒绝,避免浏览器过期或参数篡改造成部分创建。
|
||||
func CreateSybPddCollectTasksForUser(db *sql.DB, actor *model.User, sybIDs []string, clientID string) (CollectTaskResult, error) {
|
||||
sybIDs = dedupe(sybIDs)
|
||||
if len(sybIDs) == 0 {
|
||||
return CollectTaskResult{}, invalidInput("没有选择可采集的顺运宝明细")
|
||||
}
|
||||
|
||||
goodsIDs := make([]string, 0, len(sybIDs))
|
||||
for _, sybID := range sybIDs {
|
||||
context, err := repository.GetSybOrderContext(db, sybID)
|
||||
if err != nil {
|
||||
return CollectTaskResult{}, err
|
||||
}
|
||||
if context == nil {
|
||||
return CollectTaskResult{}, invalidInput("顺运宝明细 %s 不存在,请刷新页面后重新选择", sybID)
|
||||
}
|
||||
stage, _, _, _ := sybStageFor(*context)
|
||||
if stage != SybStagePddPending && stage != SybStagePddFailed {
|
||||
return CollectTaskResult{}, invalidInput("顺运宝明细 %s 已不处于 PDD 待采集或采集失败状态,请刷新页面后重新选择", sybID)
|
||||
}
|
||||
goodsIDs = append(goodsIDs, context.PddGoodsID)
|
||||
}
|
||||
|
||||
return CreatePddCollectTasksForUser(db, actor, dedupe(goodsIDs), clientID)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user