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' });
}