Parcourir la source

优惠价bugfix

zhijiezhao il y a 2 ans
Parent
commit
c07498db02

+ 15 - 18
src/main/java/com/caimei365/commodity/components/PriceUtilService.java

@@ -145,34 +145,27 @@ public class PriceUtilService {
         skus.forEach(s -> {
             s.setOriginalPrice(s.getPrice());
             s.setPriceGrade(getPriceGrade(s.getPrice()));
-            if (1 == price.getSvipProductFlag()) {
+            if (setFlag && 1 == price.getSvipProductFlag()) {
                 // 超级会员优惠商品,不参与促销活动(普通机构购买该商品可参与店铺促销)/阶梯价/复购价
                 s.setLadderPriceFlag(0);
                 // 超级会员优惠价
-                BigDecimal svipDiscountPrice = BigDecimal.valueOf(skus.get(0).getDiscountPrice());
-                if (1 == skus.get(0).getPriceType()) {
+                BigDecimal svipDiscountPrice = BigDecimal.valueOf(null == s.getDiscountPrice() ? 0 : s.getDiscountPrice());
+                if (1 == s.getPriceType()) {
                     // 折扣价
-                    price.setSvipPriceTag(MathUtil.div(skus.get(0).getDiscount(), 10, 1) + "折");
-                    if (isSuperVip) {
-                        // 超级会员用户设置优惠价
-                        svipDiscountPrice = MathUtil.div(MathUtil.mul(s.getPrice(), skus.get(0).getDiscount()), 100, 2);
-                        s.setPrice(svipDiscountPrice.doubleValue());
-                        price.setPrice(svipDiscountPrice.doubleValue());
-                    }
-                } else if (2 == skus.get(0).getPriceType()) {
+                    // 超级会员用户设置优惠价
+                    svipDiscountPrice = MathUtil.div(MathUtil.mul(s.getPrice(), s.getDiscount()), 100, 2);
+                    s.setSvipPriceTag(MathUtil.div(s.getDiscount(), 10, 1) + "折");
+                } else if (2 == s.getPriceType()) {
                     // 直接优惠价
-                    if (isSuperVip) {
-                        // 超级会员用户设置优惠价
-                        s.setPrice(svipDiscountPrice.doubleValue());
-                        price.setPrice(svipDiscountPrice.doubleValue());
-                    }
+                    // 超级会员用户设置优惠价
+                    s.setSvipPriceTag("¥" + svipDiscountPrice.doubleValue());
                 }
                 if (taxFlag) {
                     //添加税费
                     BigDecimal thisTaxFee = MathUtil.div(MathUtil.mul(svipDiscountPrice, price.getTaxRate()), 100, 2);
                     svipDiscountPrice = MathUtil.add(svipDiscountPrice, thisTaxFee);
+                    s.setPrice(svipDiscountPrice.doubleValue());
                 }
-                price.setSvipPriceTag("¥" + svipDiscountPrice);
             } else if (null != promotions) {
                 // 促销活动
                 price.setActStatus(1);
@@ -254,7 +247,6 @@ public class PriceUtilService {
                 s.setOriginalPrice(MathUtil.add(s.getOriginalPrice(), originalTaxFee).doubleValue());
             }
         });
-        price.setOriginalPrice(skus.get(0).getOriginalPrice());
         // price添加税费
         if (taxFlag) {
             BigDecimal thisTaxFee = MathUtil.div(MathUtil.mul(price.getPrice(), price.getTaxRate()), 100, 2);
@@ -262,6 +254,11 @@ public class PriceUtilService {
             BigDecimal originalTaxFee = MathUtil.div(MathUtil.mul(price.getOriginalPrice(), price.getTaxRate()), 100, 2);
             price.setOriginalPrice(MathUtil.add(price.getOriginalPrice(), originalTaxFee).doubleValue());
         }
+        if (1 == price.getSvipProductFlag() && setFlag) {
+            price.setPrice(skus.get(0).getPrice());
+            price.setSvipPriceTag(skus.get(0).getSvipPriceTag());
+        }
+        price.setOriginalPrice(skus.get(0).getOriginalPrice());
         price.setSkus(skus);
         // 身份不对
         if (!setFlag && 1 != ind) {

+ 3 - 0
src/main/java/com/caimei365/commodity/model/dto/Sku.java

@@ -16,6 +16,9 @@ public class Sku {
 
     private Integer productId;
 
+    @ApiModelProperty("svipPriceTag")
+    private String svipPriceTag;
+
     @ApiModelProperty("单品促销优惠价")
     private Double touchPrice;