Procházet zdrojové kódy

fix: 推荐活动和推荐商品显示实际价格而非'登录查看价格'

- ProductDTO/ActivityDTO: 游客也可看到基础价格,会员看到会员价
- index-home/index.vue: 游客视图商品卡片显示价格而非固定'登录查看'
liaoxg před 1 měsícem
rodič
revize
400eb00084

+ 7 - 12
cfc-backend/src/main/java/com/etotem/cfc/dto/ActivityDTO.java

@@ -49,19 +49,14 @@ public class ActivityDTO {
         dto.setMaxParticipants(activity.getMaxParticipants());
         dto.setCurrentParticipants(activity.getCurrentParticipants());
         dto.setVendorName(activity.getVendorName());
-        // Guest-aware price
-        if (isGuest) {
-            dto.setPrice(null);
-            dto.setPriceLabel("登录查看价格");
+        // Member-aware pricing: resolve final display price based on membership level
+        // Guests (no memberLevel) see base price; members see memberPrice if applicable
+        Integer resolvedPrice = resolveMemberPrice(activity.getPrice(), activity.getMemberPrice(), memberLevel);
+        dto.setPrice(resolvedPrice);
+        if (resolvedPrice != null && resolvedPrice == 0) {
+            dto.setPriceLabel("免费");
         } else {
-            // Member-aware pricing: resolve final price based on membership level
-            Integer resolvedPrice = resolveMemberPrice(activity.getPrice(), activity.getMemberPrice(), memberLevel);
-            dto.setPrice(resolvedPrice);
-            if (resolvedPrice != null && resolvedPrice == 0) {
-                dto.setPriceLabel("免费");
-            } else {
-                dto.setPriceLabel(null);
-            }
+            dto.setPriceLabel(null);
         }
         return dto;
     }

+ 6 - 12
cfc-backend/src/main/java/com/etotem/cfc/dto/ProductDTO.java

@@ -89,19 +89,13 @@ public class ProductDTO {
         d.deliveryMethod = p.getDeliveryMethod();
         d.createdAt = p.getCreatedAt();
         d.updatedAt = p.getUpdatedAt();
-        // 游客模式:价格置null,显示提示标签
-        if (isGuest) {
-            d.price = null;
-            d.memberPrice = null;
-            d.priceLabel = "登录查看价格";
+        // Member-aware pricing: resolve final display price based on membership level
+        // Guests (no memberLevel) see base price; members see memberPrice if applicable
+        d.price = ActivityDTO.resolveMemberPrice(p.getPrice(), p.getMemberPrice(), memberLevel);
+        if (d.price != null && d.price == 0) {
+            d.priceLabel = "免费";
         } else {
-            // Member-aware pricing: resolve final display price based on membership level
-            d.price = ActivityDTO.resolveMemberPrice(p.getPrice(), p.getMemberPrice(), memberLevel);
-            if (d.price != null && d.price == 0) {
-                d.priceLabel = "免费";
-            } else {
-                d.priceLabel = null;
-            }
+            d.priceLabel = null;
         }
         return d;
     }

+ 2 - 2
cfc-frontend/pages/index-home/index.vue

@@ -215,8 +215,8 @@
           <view class="product-info">
             <text class="product-name">{{ item.name }}</text>
             <view class="product-price-row">
-              <!-- 游客不显示价格 -->
-              <text class="product-price-login">登录查看</text>
+              <text class="product-price" v-if="item.price && item.price > 0">¥{{ (item.price / 100).toFixed(0) }}</text>
+              <text class="product-price-free" v-else>免费</text>
             </view>
           </view>
         </view>