Преглед на файлове

Merge remote-tracking branch 'origin/developer' into developerA

# Conflicts:
#	src/main/java/com/caimei365/order/service/impl/CartClubServiceImpl.java
chao преди 3 години
родител
ревизия
5e1c19220e

+ 23 - 19
src/main/java/com/caimei365/order/service/impl/CartClubServiceImpl.java

@@ -981,6 +981,7 @@ public class CartClubServiceImpl implements CartClubService {
 
 
         // 供应商促销优惠活动
         // 供应商促销优惠活动
         PromotionsVo promotions = baseMapper.getPromotionByShopId(shop.getShopId());
         PromotionsVo promotions = baseMapper.getPromotionByShopId(shop.getShopId());
+        boolean hasGift = false;
         if (1 == cartItemVo.getSvipProductFlag()) {
         if (1 == cartItemVo.getSvipProductFlag()) {
             // 超级会员优惠商品,不参与促销活动(普通机构购买该商品可参与店铺促销)/阶梯价/复购价
             // 超级会员优惠商品,不参与促销活动(普通机构购买该商品可参与店铺促销)/阶梯价/复购价
             // 超级会员设置商品优惠价
             // 超级会员设置商品优惠价
@@ -1014,25 +1015,9 @@ public class CartClubServiceImpl implements CartClubService {
                         // 优惠总额 + 满减金额
                         // 优惠总额 + 满减金额
                         reducedPrice.set(MathUtil.add(reducedPrice.get(), promotions.getReducedPrice()).doubleValue());
                         reducedPrice.set(MathUtil.add(reducedPrice.get(), promotions.getReducedPrice()).doubleValue());
                     } else if (promotions.getMode() == 3) {
                     } else if (promotions.getMode() == 3) {
-                        // 满赠
+                        // 满足满赠
+                        hasGift = true;
                         List<CartItemVo> giftList = baseMapper.getPromotionGifts(promotions.getId());
                         List<CartItemVo> giftList = baseMapper.getPromotionGifts(promotions.getId());
-                        giftList.forEach(gift -> {
-                            if (shopIds.contains(gift.getShopId())) {
-                                // 赠品在当前订单内的供应商下
-                                shopList.forEach(s -> {
-                                    if (s.getShopId().equals(gift.getShopId())) {
-                                        s.getCartList().add(gift);
-                                    }
-                                });
-                            } else {
-                                // 获取赠品供应商
-                                CartShopVo giftShop = baseMapper.getShopByProductId(gift.getProductId());
-                                shopIds.add(giftShop.getShopId());
-                                giftShop.setCartList(new ArrayList<>());
-                                giftShop.getCartList().add(gift);
-                                shopList.add(giftShop);
-                            }
-                        });
                         promotions.setGiftList(giftList);
                         promotions.setGiftList(giftList);
                     }
                     }
                 }
                 }
@@ -1080,7 +1065,26 @@ public class CartClubServiceImpl implements CartClubService {
         shop.setSvipReducedPrice(svipReducedPrice.get());
         shop.setSvipReducedPrice(svipReducedPrice.get());
         // 当前供应商添加到首位
         // 当前供应商添加到首位
         shopList.add(0, shop);
         shopList.add(0, shop);
-
+        // 满足促销满赠
+        if (hasGift) {
+            promotions.getGiftList().forEach(gift -> {
+                if (shopIds.contains(gift.getShopId())) {
+                    // 赠品在当前订单内的供应商下
+                    shopList.forEach(s -> {
+                        if (s.getShopId().equals(gift.getShopId())) {
+                            s.getCartList().add(gift);
+                        }
+                    });
+                } else {
+                    // 获取赠品供应商
+                    CartShopVo giftShop = baseMapper.getShopByProductId(gift.getProductId());
+                    shopIds.add(giftShop.getShopId());
+                    giftShop.setCartList(new ArrayList<>());
+                    giftShop.getCartList().add(gift);
+                    shopList.add(giftShop);
+                }
+            });
+        }
         // 是否充值商品
         // 是否充值商品
         boolean includeRecharge = false;
         boolean includeRecharge = false;
         boolean recharge = productService.isRechargeProduct(cartDto.getProductId());
         boolean recharge = productService.isRechargeProduct(cartDto.getProductId());

+ 6 - 6
src/main/java/com/caimei365/order/service/impl/PayOrderServiceImpl.java

@@ -923,7 +923,7 @@ public class PayOrderServiceImpl implements PayOrderService {
                     double shopTotalAmount = 0.00;
                     double shopTotalAmount = 0.00;
                     String subUserNo = "";
                     String subUserNo = "";
                     for (SplitAccountPo account : splitBillDetail) {
                     for (SplitAccountPo account : splitBillDetail) {
-                        if (4 == account.getType() && shopOrder.getShopId().equals(account.getShopId())) {
+                        if (null!= account.getType() && 4 == account.getType() && shopOrder.getShopId().equals(account.getShopId())) {
                             shopTotalAmount = MathUtil.add(shopTotalAmount, account.getSplitAccount()).doubleValue();
                             shopTotalAmount = MathUtil.add(shopTotalAmount, account.getSplitAccount()).doubleValue();
                             subUserNo = account.getSubUserNo();
                             subUserNo = account.getSubUserNo();
                         }
                         }
@@ -1059,11 +1059,7 @@ public class PayOrderServiceImpl implements PayOrderService {
                     splitAccount.setType(4);
                     splitAccount.setType(4);
                     splitAccount.setSubUserNo(commercialCode);
                     splitAccount.setSubUserNo(commercialCode);
                 } else {
                 } else {
-                    if (3 == orderProduct.getInvoiceType()) {
-                        // 不能开票,则分账到私账-无票
-                        splitAccount.setType(2);
-                        splitAccount.setSubUserNo(PayUtil.privateAccountNo);
-                    } else if (1 == orderProduct.getInvoiceType()) {
+                    if (1 == orderProduct.getInvoiceType()) {
                         // 开增值税发票,则分账到公账-专票
                         // 开增值税发票,则分账到公账-专票
                         splitAccount.setType(1);
                         splitAccount.setType(1);
                         splitAccount.setSubUserNo(PayUtil.publicAccountNo);
                         splitAccount.setSubUserNo(PayUtil.publicAccountNo);
@@ -1071,6 +1067,10 @@ public class PayOrderServiceImpl implements PayOrderService {
                         // 开普通发票,则分账到公账-普票
                         // 开普通发票,则分账到公账-普票
                         splitAccount.setType(3);
                         splitAccount.setType(3);
                         splitAccount.setSubUserNo(PayUtil.commonInvoiceNo);
                         splitAccount.setSubUserNo(PayUtil.commonInvoiceNo);
+                    } else {
+                        // 不能开票,则分账到私账-无票
+                        splitAccount.setType(2);
+                        splitAccount.setSubUserNo(PayUtil.privateAccountNo);
                     }
                     }
                 }
                 }
                 list.add(splitAccount);
                 list.add(splitAccount);

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

@@ -443,7 +443,9 @@ public class SubmitServiceImpl implements SubmitService {
                 // 赠品数
                 // 赠品数
                 presentCount.updateAndGet(v -> v + presentNum);
                 presentCount.updateAndGet(v -> v + presentNum);
                 // 获取数据库商品信息
                 // 获取数据库商品信息
-                OrderProductPo product = submitMapper.getProductDetails(productId);
+                OrderProductPo dbProduct = submitMapper.getProductDetails(productId);
+                OrderProductPo product = new OrderProductPo();
+                BeanUtils.copyProperties(dbProduct, product);
                 if (null == product) {
                 if (null == product) {
                     return ResponseJson.error("订单商品不存在!", null);
                     return ResponseJson.error("订单商品不存在!", null);
                 }
                 }