zoujiajian пре 3 година
родитељ
комит
cf46fc2998

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/views/GoodsFrontListView.java

@@ -104,6 +104,9 @@ public class GoodsFrontListView {
 	@DbIgnore
 	private BigDecimal specificPrice;
 
+	@DbIgnore
+	private Long specificSkuId;
+
 	@DbField("g.pay_desc")
 	private String payDesc;
 

+ 26 - 1
netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java

@@ -62,7 +62,12 @@ public class GoodsDonController {
      * 获取商品列表
      */
     @GetMapping("/get")
-    public Result<SearchResult<GoodsDon>> get() {
+    public Result<SearchResult<GoodsDon>> get(Boolean isLogin) {
+        Long userId = null;
+        if (isLogin != null && isLogin) {
+            userId = StpUserUtil.getLoginIdAsLong();
+        }
+        final Long fUid = userId;
         SearchResult<GoodsDon> search = beanSearcher.search(GoodsDon.class, MapUtils.flatBuilder(request.getParameterMap())
                 .field(GoodsDon::getStatus, true)
                 .field(GoodsDon::getDeleted, true)
@@ -81,6 +86,13 @@ public class GoodsDonController {
                 goods.setSoldNum(goods.getVirtualSold() + orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
                         .eq(OrderDon::getGoodsId, goods.getId())
                         .notIn(OrderDon::getStatus, Constant.noOrderStatus)));
+                if (fUid != null) {
+                    //设置特定价格
+                    if (!isPaySpecificGoodsIds(sku.getSpecificGoodsIds(), fUid)) {
+                        sku.setSpecificGoodsIds(null);
+                        sku.setSpecificPrice(null);
+                    }
+                }
             });
         });
         return GatewayResponse.SUCCESS.newBuilder().toResult(search);
@@ -493,15 +505,28 @@ public class GoodsDonController {
                         if (isPaySpecificGoodsIds(specificGoodsIdsStr, fUid)) {
                             BigDecimal specificPrice = data.getSpecificPrice();
                             BigDecimal skuSpecificPrice = specificSku.getSpecificPrice();
+                            Long specificSkuId = specificSku.getId();
                             if (specificPrice == null) {
                                 data.setSpecificPrice(skuSpecificPrice);
+                                data.setSpecificSkuId(specificSkuId);
                                 data.setMonths(specificSku.getMonths());
                             } else if (specificPrice.compareTo(skuSpecificPrice) > 0) {
                                 data.setSpecificPrice(skuSpecificPrice);
+                                data.setSpecificSkuId(specificSkuId);
                                 data.setMonths(specificSku.getMonths());
                             }
                         }
                     });
+                    List<GoodsDonSkuFrontView> skuList = data.getSkuList();
+                    if (CollUtil.isNotEmpty(skuList)) {
+                        skuList.forEach(sku->{
+                            //设置特定价格
+                            if (!isPaySpecificGoodsIds(sku.getSpecificGoodsIds(), fUid)) {
+                                sku.setSpecificGoodsIds(null);
+                                sku.setSpecificPrice(null);
+                            }
+                        });
+                    }
                 }
             });
         }