fix: 修复顺运宝采集任务孤儿状态 (#165)
This commit is contained in:
+16
-13
@@ -143,19 +143,16 @@ func CreateSybPddCollectTask(db *sql.DB, sybID string) (CollectTaskResult, error
|
||||
if context == nil {
|
||||
return CollectTaskResult{}, fmt.Errorf("顺运宝明细不存在")
|
||||
}
|
||||
return CreateShopeePddCollectTask(db, context.Order.ShopeeGoodsID)
|
||||
if context.PddGoodsID == "" {
|
||||
return CollectTaskResult{}, fmt.Errorf("请先关联 PDD 商品")
|
||||
}
|
||||
return createPddCollectTasks(db, []string{context.PddGoodsID}, "", "", "",
|
||||
map[string][]string{context.PddGoodsID: {context.Order.SybID}})
|
||||
}
|
||||
|
||||
// CreateSybPddCollectTaskForUser 为网页登录入口记录任务创建人。
|
||||
func CreateSybPddCollectTaskForUser(db *sql.DB, actor *model.User, sybID string) (CollectTaskResult, error) {
|
||||
context, err := repository.GetSybOrderContext(db, strings.TrimSpace(sybID))
|
||||
if err != nil {
|
||||
return CollectTaskResult{}, err
|
||||
}
|
||||
if context == nil {
|
||||
return CollectTaskResult{}, fmt.Errorf("顺运宝明细不存在")
|
||||
}
|
||||
return CreateShopeePddCollectTaskForUser(db, actor, context.Order.ShopeeGoodsID)
|
||||
return CreateSybPddCollectTasksForUser(db, actor, []string{sybID}, "")
|
||||
}
|
||||
|
||||
// CreateSybPddCollectTasksForUser 把勾选的顺运宝明细转换成 PDD 商品后批量建采集任务。
|
||||
@@ -168,6 +165,7 @@ func CreateSybPddCollectTasksForUser(db *sql.DB, actor *model.User, sybIDs []str
|
||||
}
|
||||
|
||||
goodsIDs := make([]string, 0, len(sybIDs))
|
||||
sourcesByGoodsID := make(map[string][]string)
|
||||
for _, sybID := range sybIDs {
|
||||
context, err := repository.GetSybOrderContext(db, sybID)
|
||||
if err != nil {
|
||||
@@ -177,11 +175,16 @@ func CreateSybPddCollectTasksForUser(db *sql.DB, actor *model.User, sybIDs []str
|
||||
return CollectTaskResult{}, invalidInput("顺运宝明细 %s 不存在,请刷新页面后重新选择", sybID)
|
||||
}
|
||||
stage, _, _, _ := sybStageFor(*context)
|
||||
if stage != SybStagePddPending && stage != SybStagePddFailed {
|
||||
return CollectTaskResult{}, invalidInput("顺运宝明细 %s 已不处于 PDD 待采集或采集失败状态,请刷新页面后重新选择", sybID)
|
||||
if stage != SybStagePddPending && stage != SybStagePddFailed && stage != SybStagePddCollectingStale {
|
||||
return CollectTaskResult{}, invalidInput("顺运宝明细 %s 已不处于 PDD 待采集、采集失败或采集超时状态,请刷新页面后重新选择", sybID)
|
||||
}
|
||||
goodsIDs = append(goodsIDs, context.PddGoodsID)
|
||||
sourcesByGoodsID[context.PddGoodsID] = append(sourcesByGoodsID[context.PddGoodsID], sybID)
|
||||
}
|
||||
|
||||
return CreatePddCollectTasksForUser(db, actor, dedupe(goodsIDs), clientID)
|
||||
visibleUserID, err := taskActorScope(actor)
|
||||
if err != nil {
|
||||
return CollectTaskResult{}, err
|
||||
}
|
||||
return createPddCollectTasks(db, dedupe(goodsIDs), strings.TrimSpace(clientID),
|
||||
visibleUserID, actor.UserID, sourcesByGoodsID)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user