fix: 修复顺运宝采集任务孤儿状态 (#165)
This commit is contained in:
+21
-13
@@ -396,17 +396,18 @@ const sybOrderContextFrom = `
|
||||
// SybOrderContext 是顺运宝明细及其当前蝦皮/PDD 处理上下文。
|
||||
// 处理阶段由 service 计算,Repository 只提供数据库事实。
|
||||
type SybOrderContext struct {
|
||||
Order model.SybOrder
|
||||
ShopeeExists bool
|
||||
PddGoodsID string
|
||||
PddGoodsURL string
|
||||
PddCollectStatus string
|
||||
PddCollectMsg string
|
||||
PddSkusJSON string
|
||||
PddUpdatedAt string
|
||||
MappingOptionKey string
|
||||
MappingOptions string
|
||||
HasActiveTask bool
|
||||
Order model.SybOrder
|
||||
ShopeeExists bool
|
||||
PddGoodsID string
|
||||
PddGoodsURL string
|
||||
PddCollectStatus string
|
||||
PddCollectMsg string
|
||||
PddSkusJSON string
|
||||
PddUpdatedAt string
|
||||
MappingOptionKey string
|
||||
MappingOptions string
|
||||
HasActiveTask bool
|
||||
HasActiveCollectTask bool
|
||||
}
|
||||
|
||||
func scanSybOrderContext(s rowScanner) (SybOrderContext, error) {
|
||||
@@ -416,13 +417,13 @@ func scanSybOrderContext(s rowScanner) (SybOrderContext, error) {
|
||||
var shopeeExists int
|
||||
var pddGoodsID, pddGoodsURL, collectStatus, collectMsg, skusJSON, pddUpdatedAt sql.NullString
|
||||
var mappingKey, mappingOptions sql.NullString
|
||||
var hasActiveTask int
|
||||
var hasActiveTask, hasActiveCollectTask int
|
||||
err := s.Scan(
|
||||
&c.Order.SybID, &c.Order.OrderNo, &shopName, &title, &productSpec, &specKey, &shopeeGoodsID,
|
||||
&c.Order.Quantity, &priceCent, &imageURL, &c.Order.SybData,
|
||||
&c.Order.CreatedAt, &c.Order.UpdatedAt, &shopeeExists,
|
||||
&pddGoodsID, &pddGoodsURL, &collectStatus, &collectMsg, &skusJSON, &pddUpdatedAt,
|
||||
&mappingKey, &mappingOptions, &hasActiveTask,
|
||||
&mappingKey, &mappingOptions, &hasActiveTask, &hasActiveCollectTask,
|
||||
)
|
||||
c.Order.ShopName = shopName.String
|
||||
c.Order.Title = title.String
|
||||
@@ -441,6 +442,7 @@ func scanSybOrderContext(s rowScanner) (SybOrderContext, error) {
|
||||
c.MappingOptionKey = mappingKey.String
|
||||
c.MappingOptions = mappingOptions.String
|
||||
c.HasActiveTask = hasActiveTask != 0
|
||||
c.HasActiveCollectTask = hasActiveCollectTask != 0
|
||||
return c, err
|
||||
}
|
||||
|
||||
@@ -456,6 +458,9 @@ func ListSybOrderContexts(q Execer, filter SybOrderFilter, limit, offset int) ([
|
||||
pp.skus_json, pp.updated_at, sm.pdd_option_key, sm.pdd_options,
|
||||
EXISTS(SELECT 1 FROM tasks t WHERE t.task_type = 'purchase'
|
||||
AND t.syb_id = so.syb_id
|
||||
AND t.status IN ('pending', 'assigned', 'claimed')),
|
||||
EXISTS(SELECT 1 FROM tasks t WHERE t.task_type = 'collect'
|
||||
AND t.pdd_goods_id = pp.goods_id
|
||||
AND t.status IN ('pending', 'assigned', 'claimed'))` +
|
||||
sybOrderContextFrom + where + `
|
||||
ORDER BY so.updated_at DESC, so.syb_id DESC`
|
||||
@@ -490,6 +495,9 @@ func GetSybOrderContext(q Execer, sybID string) (*SybOrderContext, error) {
|
||||
pp.skus_json, pp.updated_at, sm.pdd_option_key, sm.pdd_options,
|
||||
EXISTS(SELECT 1 FROM tasks t WHERE t.task_type = 'purchase'
|
||||
AND t.syb_id = so.syb_id
|
||||
AND t.status IN ('pending', 'assigned', 'claimed')),
|
||||
EXISTS(SELECT 1 FROM tasks t WHERE t.task_type = 'collect'
|
||||
AND t.pdd_goods_id = pp.goods_id
|
||||
AND t.status IN ('pending', 'assigned', 'claimed'))`+
|
||||
sybOrderContextFrom+` WHERE so.syb_id = ?`, sybID))
|
||||
if errors.Is(err, sql.ErrNoRows) {
|
||||
|
||||
Reference in New Issue
Block a user