Sfoglia il codice sorgente

feat(service): 优惠券活动信息

- 在 MercCouponFactoryBase 类中添加折扣券和满减券的优惠信息到商品消息中
- 优化满减券计算逻辑,使用促销价作为基础计算
- 新增折扣券的优惠信息展示
hechunping 3 mesi fa
parent
commit
66108c2bd2

+ 5 - 2
src/main/java/com/xynet/marketing/service/factory/coupon/merc/impl/base/MercCouponFactoryBase.java

@@ -326,6 +326,7 @@ public class MercCouponFactoryBase extends ServiceImpl<MercCouponMapper, MercCou
                 JSONObject priceJson = JSONUtil.parseObj(mercCoupon.getPrice());
                 BigDecimal scalar = new BigDecimal(priceJson.getStr("scalar"));
                 goods.set("priceOnsale", goods.getInt("priceOnsale") * scalar.doubleValue());
+                goods.set("msg", goods.getString("msg") + priceJson.getStr("scalar").replace("0.", "") + "折券;");
             }
             //满减券
             if (Objects.equals(mercCoupon.getType(), CouponTypeEnum.T_1.getCode())) {
@@ -359,15 +360,17 @@ public class MercCouponFactoryBase extends ServiceImpl<MercCouponMapper, MercCou
                 JMap<String, Object> goods = goodsList.get(g);
                 if (goods.getBoolean("canCouponType1")) {
                     //单价
-                    BigDecimal price = goods.getBigDecimal("price");
+                    BigDecimal promotionPriceOnsale = goods.getBigDecimal("priceOnsale");
                     //数量
                     BigDecimal num = goods.getBigDecimal("num");
                     //总金额
                     BigDecimal zje = new BigDecimal(type1Amount);
                     //总优惠
                     BigDecimal zyh = new BigDecimal(priceOnsaleType1);
-                    Integer priceOnsale = price.multiply(num).multiply(zyh).divide(zje, 0, BigDecimal.ROUND_HALF_UP).intValue();
+                    Integer priceOnsale = promotionPriceOnsale.multiply(num).multiply(zyh).divide(zje, 0, BigDecimal.ROUND_HALF_UP).intValue();
+                    BigDecimal subtract = promotionPriceOnsale.subtract(new BigDecimal(priceOnsale));
                     goods.set("priceOnsale", priceOnsale);
+                    goods.set("msg", goods.getString("msg") + "满减券减:" + subtract + "元;");
                 }
             }
         }