Просмотр исходного кода

1.解决订单结算时,没有扣减商户活动价格问题;
2.订单收益调整钱包明细content内容;
3.解决加入活动报错问题;

codingliang 1 год назад
Родитель
Сommit
257a901ea1

+ 7 - 0
src/main/java/com/sqx/modules/activity/service/ActivityPartRecordService.java

@@ -25,4 +25,11 @@ public interface ActivityPartRecordService extends IService<ActivityPartRecord>
     void saveByOrderAndSuitActivityVO(TbOrder order, OrderSuitActivityVO orderBestActivity);
 
     ActivityPartRecordVO getVoById(Long recordId);
+
+    /**
+     * 根据订单id查询
+     * @param orderId 订单id
+     * @return 活动参与信息
+     */
+    ActivityPartRecord getByOrderId(Long orderId);
 }

+ 7 - 0
src/main/java/com/sqx/modules/activity/service/impl/ActivityPartRecordServiceImpl.java

@@ -60,4 +60,11 @@ public class ActivityPartRecordServiceImpl extends ServiceImpl<ActivityPartRecor
     public ActivityPartRecordVO getVoById(Long recordId) {
         return baseMapper.getVoById(recordId);
     }
+
+    @Override
+    public ActivityPartRecord getByOrderId(Long orderId) {
+        LambdaQueryWrapper<ActivityPartRecord> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(ActivityPartRecord::getOrderId, orderId);
+        return this.getOne(queryWrapper);
+    }
 }

+ 1 - 1
src/main/java/com/sqx/modules/activity/service/impl/ActivityShopServiceImpl.java

@@ -146,7 +146,7 @@ public class ActivityShopServiceImpl extends ServiceImpl<ActivityShopDao, Activi
             List<ActivityShop> waitDelList = oldActivityShops.stream().filter(e -> !existActivityIds.contains(e.getActivityId())).collect(Collectors.toList());
 
             if (waitDelList.size() > 0) {
-                this.removeByIds(waitDelList);
+                this.removeByIds(waitDelList.stream().map(ActivityShop::getId).collect(Collectors.toList()));
             }
         }
 

+ 38 - 27
src/main/java/com/sqx/modules/order/service/impl/AppAppOrderServiceImpl.java

@@ -19,6 +19,7 @@ import com.sqx.common.utils.DateUtils;
 import com.sqx.common.utils.DistanceUtil;
 import com.sqx.common.utils.PageUtils;
 import com.sqx.common.utils.Result;
+import com.sqx.modules.activity.entity.ActivityPartRecord;
 import com.sqx.modules.activity.service.ActivityPartRecordService;
 import com.sqx.modules.activity.service.ActivityService;
 import com.sqx.modules.activity.vo.OrderSuitActivityVO;
@@ -1861,6 +1862,15 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         if (shopIds != -1 && shopIds != 0) {
             shopMoney = shopMoney.subtract(couponMoney);
         }
+
+        // 判断订单是否参与活动,如果参与活动,则优惠金额由商家承担
+        ActivityPartRecord activityPartRecord = activityPartRecordService.getByOrderId(tbOrder.getOrderId());
+        BigDecimal activityDiscountAmount = BigDecimal.ZERO;
+        if (ObjectUtil.isNotNull(activityPartRecord)) {
+            activityDiscountAmount = activityPartRecord.getDiscountAmount();
+            shopMoney = shopMoney.subtract(activityDiscountAmount);
+        }
+
         if(tbOrder.getAutoSendOrder()!=null && tbOrder.getAutoSendOrder()==1){
             //如果达到商家满减 则商家不加上配送费
             if(!"本单已达到商家满减金额,跑腿费由商家承担".equals(tbOrder.getErrandMoneyIsShop())){
@@ -1881,36 +1891,37 @@ public class AppAppOrderServiceImpl extends ServiceImpl<AppOrderDao, TbOrder> im
         userMoneyDetails1.setShopId(goodsShop.getShopId());
         userMoneyDetails1.setTitle("商户订单收入,订单号:" + tbOrder.getOrderNumber());
 //        userMoneyDetails1.setContent("商户本单收入金额:" + shopMoney + "元");
+
+        StringBuffer contentBuffer = new StringBuffer();
+        // 订单金额
+        BigDecimal orderAmount = tbOrder.getPayMoney().add(couponMoney).add(activityDiscountAmount);
+
+        contentBuffer.append("订单金额:").append(orderAmount);
+        if (!couponMoney.equals(BigDecimal.ZERO)) {
+            contentBuffer.append(",优惠券金额:").append(couponMoney);
+        }
+        if (!activityDiscountAmount.equals(BigDecimal.ZERO)) {
+            contentBuffer.append(",活动优惠金额:").append(activityDiscountAmount);
+        }
+
+        contentBuffer.append(",用户实付金额:").append(tbOrder.getPayMoney()).append(",其中:");
+
         if (tbOrder.getOrderType() != 1) {
-            //订单金额: 优惠券金额:  用户实付金额:   跑腿费:   平台服务费:  到账金额:(本单为平台优惠券,平台补贴)
-            //订单金额: 商家优惠券:  用户实付金额:   跑腿费:   平台服务费:  到账金额:(本单为商家优惠券,商家补贴)
-            if (shopIds == -1) {
-                //未使用优惠券
-                userMoneyDetails1.setContent("订单金额:" + tbOrder.getPayMoney() + ",用户实付金额:" + tbOrder.getPayMoney() + ",其中跑腿费:" + errandMoney + "(" + tbOrder.getErrandMoneyIsShop() + "),平台服务费:" + pingRate + ",短信服务费:" + smsSendMoney + ",到账金额:" + shopMoney);
-            } else if (shopIds == 0) {
-                //使用平台优惠券
-                sumMoney = tbOrder.getPayMoney().add(couponMoney);
-                userMoneyDetails1.setContent("订单金额:" + sumMoney + ",优惠券金额:" + couponMoney + ",用户实付金额:" + tbOrder.getPayMoney() + ",其中跑腿费:" + errandMoney + "(" + tbOrder.getErrandMoneyIsShop() + "),平台服务费:" + pingRate + ",短信服务费:" + smsSendMoney + ",到账金额:" + shopMoney + "(本单为平台优惠券,平台补贴)");
-            } else {
-                //使用商家优惠券
-                sumMoney = tbOrder.getPayMoney().add(couponMoney);
-                userMoneyDetails1.setContent("订单金额:" + sumMoney + ",优惠券金额:" + couponMoney + ",用户实付金额:" + tbOrder.getPayMoney() + ",其中跑腿费:" + errandMoney + "(" + tbOrder.getErrandMoneyIsShop() + "),平台服务费:" + pingRate + ",短信服务费:" + smsSendMoney + ",到账金额:" + shopMoney + "(本单为商家优惠券,商家补贴)");
-            }
-        } else {
-            if (shopIds == -1) {
-                //未使用优惠券
-                userMoneyDetails1.setContent("订单金额:" + tbOrder.getPayMoney() + ",用户实付金额:" + tbOrder.getPayMoney() + ",其中跑腿费:" + errandMoney + "(" + tbOrder.getErrandMoneyIsShop() + "),平台服务费:" + pingRate + ",短信服务费:" + smsSendMoney + ",到账金额:" + shopMoney);
-            } else if (shopIds == 0) {
-                //使用平台优惠券
-                sumMoney = tbOrder.getPayMoney().add(couponMoney);
-                userMoneyDetails1.setContent("订单金额:" + sumMoney + ",优惠券金额:" + couponMoney + ",用户实付金额:" + tbOrder.getPayMoney() + ",平台服务费:" + pingRate + ",短信服务费:" + smsSendMoney + ",到账金额:" + shopMoney + "(本单为平台优惠券,平台补贴)");
-            } else {
-                //使用商家优惠券
-                sumMoney = tbOrder.getPayMoney().add(couponMoney);
-                userMoneyDetails1.setContent("订单金额:" + sumMoney + ",优惠券金额:" + couponMoney + ",用户实付金额:" + tbOrder.getPayMoney() + ",平台服务费:" + pingRate + ",短信服务费:" + smsSendMoney + ",到账金额:" + shopMoney + "(本单为商家优惠券,商家补贴)");
-            }
+            contentBuffer.append("跑腿费:").append(errandMoney).append("(").append(tbOrder.getErrandMoneyIsShop()).append(")").append(",");
         }
 
+        contentBuffer.append("平台服务费:").append(pingRate).append(",");
+        contentBuffer.append("短信服务费:").append(smsSendMoney).append(",");
+        contentBuffer.append("到账金额:").append(shopMoney);
+
+        if (shopIds == 0) {
+            contentBuffer.append("(本单为平台优惠券,平台补贴)");
+        } else if (shopIds != -1) {
+            contentBuffer.append("(本单为商家优惠券,商家补贴)");
+        }
+
+        userMoneyDetails1.setContent(contentBuffer.toString());
+
         userMoneyDetails1.setType(1);
         userMoneyDetails1.setClassify(3);
         userMoneyDetails1.setMoney(shopMoney);