Parcourir la source

增加超级会员优惠商品sku

zhijiezhao il y a 2 ans
Parent
commit
99c2b3a7a6

+ 8 - 6
src/main/java/com/caimei365/order/components/ProductService.java

@@ -1,6 +1,7 @@
 package com.caimei365.order.components;
 
 import com.caimei365.order.mapper.BaseMapper;
+import com.caimei365.order.model.dto.VipSkuPriceDto;
 import com.caimei365.order.model.po.*;
 import com.caimei365.order.model.vo.*;
 import com.caimei365.order.utils.MathUtil;
@@ -384,16 +385,17 @@ public class ProductService {
      * @param svipUserFlag
      */
     public void setSvipProductPrice(CartItemVo cartItemVo, boolean taxFlag, boolean svipUserFlag) {
-        Integer svipPriceType = cartItemVo.getSvipPriceType();
+        //超级会员价按sku取
+        VipSkuPriceDto vipSku = baseMapper.getSvipSku(cartItemVo.getSkuId());
         Double discountPrice = 0d;
-        if (1 == svipPriceType) {
+        if (1 == vipSku.getPriceType()) {
             // 折扣价
-            cartItemVo.setSvipPriceTag(MathUtil.div(cartItemVo.getSvipDiscount(), 10, 1) + "折");
+            cartItemVo.setSvipPriceTag(MathUtil.div(vipSku.getDiscount(), 10, 1) + "折");
             // 设置折扣价(原价格已计算税费,无需重复计算)
-            discountPrice = MathUtil.div(MathUtil.mul(cartItemVo.getPrice(), cartItemVo.getSvipDiscount()), 100, 2).doubleValue();
-        } else if (2 == svipPriceType) {
+            discountPrice = MathUtil.div(MathUtil.mul(cartItemVo.getPrice(), vipSku.getDiscount()), 100, 2).doubleValue();
+        } else if (2 == vipSku.getPriceType()) {
             // 直接优惠价
-            discountPrice = cartItemVo.getSvipDiscountPrice();
+            discountPrice = vipSku.getDiscountPrice();
             if (taxFlag) {
                 //添加税费
                 BigDecimal thisTaxFee = MathUtil.div(MathUtil.mul(discountPrice, cartItemVo.getTaxRate()), 100, 2);

+ 3 - 0
src/main/java/com/caimei365/order/mapper/BaseMapper.java

@@ -1,5 +1,6 @@
 package com.caimei365.order.mapper;
 
+import com.caimei365.order.model.dto.VipSkuPriceDto;
 import com.caimei365.order.model.po.*;
 import com.caimei365.order.model.vo.*;
 import org.apache.ibatis.annotations.Mapper;
@@ -239,4 +240,6 @@ public interface BaseMapper {
     void updateOrderOnlineFlag(Integer orderId);
 
     CouponVo findCoupon(Integer couponId);
+
+    VipSkuPriceDto getSvipSku(Integer skuId);
 }

+ 2 - 2
src/main/java/com/caimei365/order/mapper/SubmitMapper.java

@@ -133,10 +133,10 @@ public interface SubmitMapper {
     /**
      * 获取超级会员优惠商品详情
      *
-     * @param productId 商品id
+     * @param skuId     skuId
      * @return
      */
-    SvipProductPo getSvipProductDetails(Integer productId);
+    SvipProductPo getSvipProductDetails(Integer skuId);
 
     /**
      * 查交易完成,订单金额在1000以下的订单id,10月27号之后

+ 29 - 0
src/main/java/com/caimei365/order/model/dto/VipSkuPriceDto.java

@@ -0,0 +1,29 @@
+package com.caimei365.order.model.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zzj
+ */
+@Data
+public class VipSkuPriceDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("会员价类型:1折扣,2优惠价")
+    private Integer priceType;
+
+    @ApiModelProperty("会员折扣")
+    private Double discount;
+
+    @ApiModelProperty("会员价")
+    private Double discountPrice;
+
+    @ApiModelProperty("skuId")
+    private Integer skuId;
+
+    @ApiModelProperty("productId")
+    private Integer productId;
+}

+ 1 - 1
src/main/java/com/caimei365/order/service/impl/SubmitServiceImpl.java

@@ -509,7 +509,7 @@ public class SubmitServiceImpl implements SubmitService {
                 product.setSvipPriceFlag(0);
                 product.setSvipReduction(0d);
                 // 超级会员优惠商品详情
-                SvipProductPo svipProductPo = submitMapper.getSvipProductDetails(product.getProductId());
+                SvipProductPo svipProductPo = submitMapper.getSvipProductDetails(product.getSkuId());
                 // 是否以超级会员优惠价格购买
                 boolean svipPriceFlag = null != svipProductPo && 1 == svipProductPo.getSvipProductFlag() && orderParamBo.getSvipUserFlag();
                 // 是否是促销赠品

+ 6 - 1
src/main/resources/mapper/BaseMapper.xml

@@ -253,7 +253,7 @@
     <select id="getShopIdByproductId" resultType="java.lang.Integer">
         SELECT p.shopID, p.productType
         FROM product p
-        LEFT JOIN cm_sku cs on cs.productId=p.productID
+                 LEFT JOIN cm_sku cs on cs.productId = p.productID
         WHERE cs.skuId = #{skuId}
     </select>
     <select id="getClauseList" resultType="com.caimei365.order.model.vo.ClauseVo">
@@ -381,4 +381,9 @@
           and couponPayWay = 2
           and moneyCouponFlag = 1
     </select>
+    <select id="getSvipSku" resultType="com.caimei365.order.model.dto.VipSkuPriceDto">
+        select priceType, discount, discountPrice, productId, skuId
+        from cm_svip_product_sku
+        where skuId = #{skuId}
+    </select>
 </mapper>

+ 12 - 12
src/main/resources/mapper/CartClubMapper.xml

@@ -76,9 +76,9 @@
                p.validFlag                   AS validFlag,
                p.visibility,
                if(csp.id is not null, 1, 0)  as svipProductFlag,
-               csp.priceType                 as svipPriceType,
-               csp.discount                  as svipDiscount,
-               csp.discountPrice             as svipDiscountPrice,
+#                csp.priceType                 as svipPriceType,
+#                csp.discount                  as svipDiscount,
+#                csp.discountPrice             as svipDiscountPrice,
                p.productType
         FROM cm_cart c
                  LEFT JOIN product P on c.productID = p.productID
@@ -114,9 +114,9 @@
         p.visibility,
         p.commodityType as commodityType,
         if(csp.id is not null,1,0) as svipProductFlag,
-        csp.priceType as svipPriceType,
-        csp.discount as svipDiscount,
-        csp.discountPrice as svipDiscountPrice,
+#         csp.priceType as svipPriceType,
+#         csp.discount as svipDiscount,
+#         csp.discountPrice as svipDiscountPrice,
         p.productType,
         p.splitCode
         FROM cm_cart c
@@ -159,9 +159,9 @@
         p.visibility,
         p.commodityType as commodityType,
         if(csp.id is not null,1,0) as svipProductFlag,
-        csp.priceType as svipPriceType,
-        csp.discount as svipDiscount,
-        csp.discountPrice as svipDiscountPrice,
+#         csp.priceType as svipPriceType,
+#         csp.discount as svipDiscount,
+#         csp.discountPrice as svipDiscountPrice,
         p.productType
         FROM cm_sku cs
         LEFT JOIN product p on cs.productId = p.productID
@@ -313,9 +313,9 @@
                p.visibility,
                p.commodityType              AS commodityType,
                if(csp.id is not null, 1, 0) as svipProductFlag,
-               csp.priceType                as svipPriceType,
-               csp.discount                 as svipDiscount,
-               csp.discountPrice            as svipDiscountPrice,
+#                csp.priceType                as svipPriceType,
+#                csp.discount                 as svipDiscount,
+#                csp.discountPrice            as svipDiscountPrice,
                p.productType,
                p.returnGoodsStutas
         FROM cm_sku cs

+ 6 - 6
src/main/resources/mapper/CartSellerMapper.xml

@@ -35,9 +35,9 @@
                p.productCategory,
                p.validFlag                  AS validFlag,
                if(csp.id is not null, 1, 0) as svipProductFlag,
-               csp.priceType                as svipPriceType,
-               csp.discount                 as svipDiscount,
-               csp.discountPrice            as svipDiscountPrice,
+#                csp.priceType                as svipPriceType,
+#                csp.discount                 as svipDiscount,
+#                csp.discountPrice            as svipDiscountPrice,
                p.productType
         FROM bp_order_product_cart c
                  LEFT JOIN cm_sku cs on c.skuId = cs.skuId
@@ -149,9 +149,9 @@
         p.validFlag AS validFlag,
         p.productType,
         if(csp.id is not null,1,0) as svipProductFlag,
-        csp.priceType as svipPriceType,
-        csp.discount as svipDiscount,
-        csp.discountPrice as svipDiscountPrice
+#         csp.priceType as svipPriceType,
+#         csp.discount as svipDiscount,
+#         csp.discountPrice as svipDiscountPrice
         FROM bp_order_product_cart c
         LEFT JOIN cm_sku cs ON c.skuId = cs.skuId
         LEFT JOIN product p ON cs.productId = p.productID

+ 3 - 2
src/main/resources/mapper/SubmitMapper.xml

@@ -236,8 +236,9 @@
                priceType                as svipPriceType,
                discount                 as svipDiscount,
                discountPrice            as svipDiscountPrice
-        from cm_svip_product
-        where productId = #{productId}
+        from cm_svip_product_sku
+        left join cm_svip_product csp on cm_svip_product_sku.productId = csp.productId
+        where skuId = #{skuId}
     </select>
     <select id="findLowOrder" resultType="java.lang.Integer">
         select orderID