Browse Source

价格bugfix

zhijiezhao 2 years ago
parent
commit
3bd027dc1a

+ 12 - 0
src/main/java/com/caimei365/commodity/components/PriceUtilService.java

@@ -132,6 +132,9 @@ public class PriceUtilService {
                 price.setSkus(skuList);
                 skus = skuList;
             }
+            //给一个默认的最低价和最低起订量
+            price.setPrice(skus.get(0).getPrice());
+            price.setMinBuyNumber(skus.get(0).getMinBuyNumber());
             skus.forEach(s -> {
                 // 设置划线价
                 s.setOriginalPrice(s.getPrice());
@@ -190,7 +193,15 @@ public class PriceUtilService {
                             } else {
                                 s.setLadderPriceFlag(0);
                             }
+                            List<LadderPriceVo> ladderPrices = priceMapper.getLadderPricesByProductId(s.getSkuId());
+                            TaxVo tax = priceMapper.getTaxByProductId(price.getProductId());
+                            if (!CollectionUtils.isEmpty(ladderPrices)) {
+                                setLadderPriceList(ladderPrices, tax);
+                            }
+                            s.setLadderPriceList(ladderPrices);
+                            price.setLadderPriceFlag(1);
                         } else {
+                            price.setLadderPriceFlag(0);
                             // 复购价
                             Double repurchase = priceMapper.getRepurchasePrice(s.getSkuId(), userId);
                             if (null != repurchase && repurchase > 0) {
@@ -209,6 +220,7 @@ public class PriceUtilService {
                     s.setOriginalPrice(MathUtil.add(s.getOriginalPrice(), originalTaxFee).doubleValue());
                 }
             });
+            price.setSkus(skus);
         } else {
             price.setUserIdentity(0);
             if (null != promotions) {

+ 12 - 0
src/main/java/com/caimei365/commodity/model/vo/PriceVo.java

@@ -18,6 +18,18 @@ public class PriceVo implements Serializable {
     private static final long serialVersionUID = 1L;
 
     private List<Sku> skus;
+    /**
+     * 展示的阶梯价格标识 0否 1是
+     */
+    private Integer ladderPriceFlag;
+    /**
+     * 默认展示的最低起订量
+     */
+    private Integer minBuyNumber;
+    /**
+     * 默认展示的最低价格
+     */
+    private Double price;
     /**
      * 促销活动可见性 0所有人,1仅对机构
      */

+ 15 - 1
src/main/java/com/caimei365/commodity/service/impl/PageServiceImpl.java

@@ -620,7 +620,6 @@ public class PageServiceImpl implements PageService {
             // 数据库获取基本价格信息
             List<Sku> skus = priceMapper.findSkus(productId);
             PriceVo price = priceMapper.getDetailPrice(productId);
-            product.setSkus(skus);
             price.setSkus(skus);
             // 根据用户id设置详细价格
             priceUtilService.setPriceByUserId(price, userId);
@@ -631,8 +630,11 @@ public class PageServiceImpl implements PageService {
             product.setSvipProductFlag(price.getSvipProductFlag());
             product.setSvipPriceTag(price.getSvipPriceTag());
             AtomicBoolean lowPrice = new AtomicBoolean(false);
+            //设置展示的价格等级
+            product.setPriceGrade(priceUtilService.getPriceGrade(product.getPrice()));
             // 设置阶梯价格详情
             skus.forEach(s -> {
+                s.setPriceGrade(priceUtilService.getPriceGrade(s.getPrice()));
                 if (1 == s.getLadderPriceFlag()) {
                     List<LadderPriceVo> ladderPrices = priceMapper.getLadderPricesByProductId(s.getSkuId());
                     TaxVo tax = priceMapper.getTaxByProductId(productId);
@@ -648,7 +650,9 @@ public class PageServiceImpl implements PageService {
                 ProductItemVo showProduct = priceMapper.findLowPrice(productId);
                 product.setPrice(showProduct.getPrice());
                 product.setUnit(showProduct.getUnit());
+                product.setLadderPriceFlag(1);
             } else {
+                product.setLadderPriceFlag(0);
                 List<Sku> collect = skus.stream().sorted(Comparator.comparing(Sku::getPrice)).collect(Collectors.toList());
                 product.setPrice(collect.get(0).getPrice());
                 product.setUnit(collect.get(0).getUnit());
@@ -656,6 +660,16 @@ public class PageServiceImpl implements PageService {
             //查询商品收藏情况,1未收藏,0未收藏,未收藏过该商品用户是null
             Integer like = likeMapper.findLike(userId, productId);
             product.setUserLike(like);
+            //游客屏蔽价格
+            if (null == userId || 0 == userId) {
+                skus.forEach(s -> {
+                    s.setCostPrice(0d);
+                    s.setPrice(0d);
+                    s.setNormalPrice(0d);
+                    s.setOriginalPrice(0d);
+                });
+            }
+            product.setSkus(skus);
         }
         return ResponseJson.success(product);
     }