fix: 确认回填PDD规格可用于采购 (#227)

This commit is contained in:
chengma
2026-08-14 17:08:10 +08:00
parent 9d4974dcc7
commit abc37db486
4 changed files with 420 additions and 0 deletions
@@ -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
}