From 804318e5f5289694ff9dd60fd0d4d348ddb3e6e4 Mon Sep 17 00:00:00 2001 From: richjohnrambo Date: Mon, 19 Oct 2026 00:02:35 +0800 Subject: [PATCH] fix: load mall claimed counts from database --- docs/移动端任务与账户平台前后端对接文档.md | 2 +- internal/store/manual_products.go | 3 +-- web/src/mobile/views/MallView.vue | 8 +------- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/docs/移动端任务与账户平台前后端对接文档.md b/docs/移动端任务与账户平台前后端对接文档.md index 0352035..8c50863 100644 --- a/docs/移动端任务与账户平台前后端对接文档.md +++ b/docs/移动端任务与账户平台前后端对接文档.md @@ -743,7 +743,7 @@ GET /v1/manual-products?page=1&page_size=20&category_id=0 } ``` -金额单位为分。现有 `hg_product` 没有独立摘要字段,`summary` 由商品详情转换为纯文本后截取前 120 个字符。`claimed_count` 统计该商品 `order_type=3` 且状态不是已取消或失败的订单。`is_limited` 在商品配置了 `end_at` 时为 `true`,客户端使用该字段区分限时商品,不根据分类名称推断;`start_at`、`end_at` 为商品展示有效期。 +金额单位为分。现有 `hg_product` 没有独立摘要字段,`summary` 由商品详情转换为纯文本后截取前 120 个字符。`claimed_count` 直接读取商品表中的固定展示数,不在页面或接口中重新计算。`is_limited` 在商品配置了 `end_at` 时为 `true`,客户端使用该字段区分限时商品,不根据分类名称推断;`start_at`、`end_at` 为商品展示有效期。 ### 8.2 商品详情 diff --git a/internal/store/manual_products.go b/internal/store/manual_products.go index 2ddbe51..f580073 100644 --- a/internal/store/manual_products.go +++ b/internal/store/manual_products.go @@ -73,8 +73,7 @@ func manualProductSelectSQL() string { COALESCE(p.detail_html,'') AS detail_html,(p.is_recommended=1) AS is_recommended, COALESCE(DATE_FORMAT(p.start_at,'%Y-%m-%dT%H:%i:%sZ'),'') AS start_at, COALESCE(DATE_FORMAT(p.end_at,'%Y-%m-%dT%H:%i:%sZ'),'') AS end_at, - (SELECT COUNT(*) FROM hg_trade_order o WHERE o.tenant_id=p.tenant_id AND o.product_id=p.id - AND o.order_type=3 AND o.order_status NOT IN (7,8)) AS claimed_count, + p.claimed_count, DATE_FORMAT(p.created_at,'%Y-%m-%dT%H:%i:%sZ') AS created_at, DATE_FORMAT(p.updated_at,'%Y-%m-%dT%H:%i:%sZ') AS updated_at FROM hg_product p JOIN hg_product_category c diff --git a/web/src/mobile/views/MallView.vue b/web/src/mobile/views/MallView.vue index b5b8c50..be95a89 100644 --- a/web/src/mobile/views/MallView.vue +++ b/web/src/mobile/views/MallView.vue @@ -18,7 +18,7 @@ {{ item.name }} - 已领取:{{ displayClaimedCount(item) }} + 已领取:{{ item.claimed_count || 0 }} @@ -76,12 +76,6 @@ const product = ref(); let listController: AbortController | undefined; - function displayClaimedCount(item: any) { - const claimedCount = Number(item?.claimed_count || 0); - if (claimedCount > 0) return claimedCount; - const seed = Number(item?.id || 1); - return 100 + ((seed * 137 + 83) % 401); - } function openSupport() { router.push({ name: 'MobileSupport' }); }