Files
cmautobuy/admin/repository/availability_confirmation.go
T

26 lines
975 B
Go

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
}