fix: 确认回填PDD规格可用于采购 (#227)
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
package repository
|
||||
|
||||
import "fmt"
|
||||
|
||||
// ReplaceBackfilledPDDAvailability 只替换规格 JSON 和更新时间。
|
||||
// collect_status、价格、关联及采集时间由新 JSON 和原行乐观锁共同保护,不在此处改写。
|
||||
func ReplaceBackfilledPDDAvailability(q Execer, target PDDPriceBackfillTarget,
|
||||
newSKUsJSON, updatedAt string) (bool, error) {
|
||||
result, err := q.Exec(`
|
||||
UPDATE pdd_products
|
||||
SET skus_json = ?, updated_at = ?
|
||||
WHERE goods_id = ? AND deleted_at IS NULL
|
||||
AND COALESCE(skus_json, '') = ?
|
||||
AND collect_status = ? AND updated_at = ?`,
|
||||
newSKUsJSON, updatedAt, target.GoodsID,
|
||||
target.SKUsJSON, target.CollectStatus, target.UpdatedAt)
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("确认 PDD 商品 %s 的可售状态失败: %w", target.GoodsID, err)
|
||||
}
|
||||
rows, err := result.RowsAffected()
|
||||
if err != nil {
|
||||
return false, fmt.Errorf("读取 PDD 商品 %s 的可售确认结果失败: %w", target.GoodsID, err)
|
||||
}
|
||||
return rows == 1, nil
|
||||
}
|
||||
Reference in New Issue
Block a user