feat: persist product claimed counts

This commit is contained in:
richjohnrambo
2026-10-19 00:02:35 +08:00
parent ac152d2f10
commit 0ce6bca10e
6 changed files with 29 additions and 1 deletions
@@ -0,0 +1,23 @@
-- 手工商城领取数作为固定展示数据保存,页面和接口不再随机计算。
SET @product_claimed_count_exists = (
SELECT COUNT(*)
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'hg_product'
AND COLUMN_NAME = 'claimed_count'
);
SET @add_product_claimed_count = IF(
@product_claimed_count_exists = 0,
'ALTER TABLE `hg_product` ADD COLUMN `claimed_count` int unsigned NOT NULL DEFAULT 0 COMMENT ''已领取展示数'' AFTER `is_recommended`',
'SELECT 1'
);
PREPARE add_product_claimed_count_stmt FROM @add_product_claimed_count;
EXECUTE add_product_claimed_count_stmt;
DEALLOCATE PREPARE add_product_claimed_count_stmt;
-- 仅为尚未设置展示数的手工商品生成一次,后续只读取数据库中的值。
UPDATE `hg_product`
SET `claimed_count` = FLOOR(100 + RAND() * 401)
WHERE `product_type` = 2
AND `claimed_count` = 0
AND `deleted_at` IS NULL;