Browse Source

余额抵扣标记

zhijiezhao 3 years ago
parent
commit
380d5da84a

+ 8 - 11
src/main/java/com/caimei365/order/components/OrderCommonService.java

@@ -137,20 +137,17 @@ public class OrderCommonService {
             //返佣款
             if (!order.getShopOrderIds().contains(",")) {
                 Double tempAmount = orderCommonMapper.getRebateAmountByShopOrder(Integer.parseInt(order.getShopOrderIds()));
-//                if (null == tempAmount) {
-//                    order.setOnlinePayFlag(0);
-//                } else {
-//                    order.setOnlinePayFlag(1);
-//                }
+                if (null != tempAmount) {
+                    order.setOnlinePayFlag(1);
+                }
             }
         }
         // 判断是否可以走线上支付
-//        int offlineCount = orderCommonMapper.countOfflinePayment(order.getOrderId());
-//        if (offlineCount > 0) {
-//            order.setOnlinePayFlag(1);
-//        } else {
-//            order.setOnlinePayFlag(0);
-//        }
+        int offlineCount = orderCommonMapper.countOfflinePayment(order.getOrderId());
+        if (offlineCount > 0) {
+            order.setOnlinePayFlag(1);
+        }
+
 //        //付供应商总金额 + 默认手续费 > 订单总金额
 //        Double payTotalFee = order.getPayTotalFee();
 //        Double handlingFee = MathUtil.mul(payTotalFee, 0.0038, 2).doubleValue();

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

@@ -102,7 +102,20 @@ public class PayOrderServiceImpl implements PayOrderService {
             return ResponseJson.success(map);
         }
         // 付款金额
-        orderCommonService.getDiscernReceiptAndSetOrder(order);
+        List<DiscernReceiptVo> discernReceiptAndSetOrder = orderCommonService.getDiscernReceiptAndSetOrder(order);
+        if (null == discernReceiptAndSetOrder || discernReceiptAndSetOrder.size() == 0) {
+            //无支付记录可余额抵扣
+            map.put("balanceFlag", 0);
+        } else {
+            long count = discernReceiptAndSetOrder.stream().filter(d -> d.getPayWay().equals(2) || d.getPayWay().equals(3)).count();
+            if (count > 0) {
+                map.put("balanceFlag", 0);
+            }
+            long onlineCount = discernReceiptAndSetOrder.stream().filter(d -> d.getPayWay().equals(1)).count();
+            if (onlineCount > 0 && 0 == count) {
+                map.put("balanceFlag", 1);
+            }
+        }
         map.put("pendingPayments", order.getPendingPayments());
         map.put("onlinePayFlag", order.getOnlinePayFlag());
         // 商品数据
@@ -503,7 +516,7 @@ public class PayOrderServiceImpl implements PayOrderService {
             time = dateFormat.format(orderPayLink.getEffectiveTime());
         }
         Map<String, Object> map = new HashMap<>(5);
-        map.put("orderFlag",orderFlag);
+        map.put("orderFlag", orderFlag);
         map.put("type", type);
         map.put("orderPayLink", orderPayLink);
         map.put("userName", userName);
@@ -671,7 +684,7 @@ public class PayOrderServiceImpl implements PayOrderService {
             }
         }
         shop.setReceiptAmount(receiptAmount.get());
-        shop.setObligation(MathUtil.sub(shop.getRealPay(),receiptAmount.get()).doubleValue());
+        shop.setObligation(MathUtil.sub(shop.getRealPay(), receiptAmount.get()).doubleValue());
         // 总成本
         AtomicDouble totalCostPrice = new AtomicDouble(0d);
         // 商品数据