浏览代码

Merge remote-tracking branch 'origin/developerC' into developerC

Aslee 3 年之前
父节点
当前提交
b8531ec7a3

+ 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();

+ 3 - 3
src/main/java/com/caimei365/order/controller/HeliPayNonOrderApi.java

@@ -215,7 +215,7 @@ public class HeliPayNonOrderApi {
      * 购买优惠券-支付回调
      */
     @ApiOperation("购买优惠券-支付回调")
-    @GetMapping("/coupon/callback")
+    @PostMapping("/coupon/callback")
     public String couponCallback(NotifyResponseVo res) throws IntrospectionException, InvocationTargetException, IllegalAccessException {
         if (null == res) {
             return "回调参数失败";
@@ -347,9 +347,9 @@ public class HeliPayNonOrderApi {
     }
 
     /**
-     * 升级超级会员-网银支付回调
+     * 购买优惠券-网银支付回调
      */
-    @ApiOperation("升级超级会员-网银支付回调")
+    @ApiOperation("购买优惠券-网银支付回调")
     @PostMapping("/coupon/callback/union")
     public String couponUnionCallback(UnionResVo data) throws IntrospectionException, InvocationTargetException, IllegalAccessException {
         if (null == data) {

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

@@ -235,4 +235,6 @@ public interface BaseMapper {
     String findType(String mbOrderId);
 
     String findShopOrderIds(Integer orderId);
+
+    void updateOrderOnlineFlag(Integer orderId);
 }

+ 18 - 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());
         // 商品数据
@@ -237,6 +250,8 @@ public class PayOrderServiceImpl implements PayOrderService {
             }
             log.info("支付成功" + order.getUserId());
         }
+        order.setOnlinePayFlag(1);
+        baseMapper.updateOrderOnlineFlag(order.getOrderId());
         Map<String, Object> map = new HashMap<>(2);
         map.put("order", order);
         map.put("balancePayFee", balancePayFee);
@@ -503,7 +518,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 +686,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);
         // 商品数据

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

@@ -479,6 +479,7 @@ public class SubmitServiceImpl implements SubmitService {
                 OrderProductPo dbProduct = submitMapper.getProductDetails(productId);
                 OrderProductPo product = new OrderProductPo();
                 BeanUtils.copyProperties(dbProduct, product);
+                log.info("splitcode-----------------------》"+product.getSplitCode());
                 if (null == product) {
                     return ResponseJson.error("订单商品不存在!", null);
                 }
@@ -1091,11 +1092,11 @@ public class SubmitServiceImpl implements SubmitService {
         if (onlinePay.get()) {
             //在店铺满减算完之后重新根据商品的splitCode排shopOrderList
             List<OrderShopPo> shops = submitMapper.findShops(productIdList);
+            log.info("线上供应商splitcode----------->"+shops.toString());
             //子订单分多子订单,满减分摊到原子订单分开的子订单,无满减重算佣金/应付
-//            if (shops.size() != shopOrderList.size()) {
-                //重组订单
-                findSplitShopOrder(orderProductList, shopOrderList, shops, orderParamBo);
-//            }
+            //重组订单
+            shopOrderList= findSplitShopOrder(orderProductList, shopOrderList, shops, orderParamBo);
+            log.info("赋值后的shop------------------》"+shopOrderList.toString());
             //线上支付分摊优惠总和到子订单
             //经理折扣+优惠券+满减 提交订单的时候无经理折扣
             double allDiscount = MathUtil.add(couponAmount, promotionFullReduction.get()).doubleValue();
@@ -1623,7 +1624,7 @@ public class SubmitServiceImpl implements SubmitService {
         return ResponseJson.success("操作成功!", info);
     }
 
-    private void findSplitShopOrder(List<OrderProductPo> orderProductList, List<OrderShopPo> shopOrderList, List<OrderShopPo> shops, OrderParamBo orderParamBo) {
+    private List<OrderShopPo> findSplitShopOrder(List<OrderProductPo> orderProductList, List<OrderShopPo> shopOrderList, List<OrderShopPo> shops, OrderParamBo orderParamBo) {
         //统计拆分的shop
         //List<OrderShopPo> collect = shops.stream().filter(s -> shops.stream().filter(so -> so.getShopId().equals(s.getShopId())).count() > 1).collect(Collectors.toList());
         //对拆分的shop重新计算子订单佣金,应付,不计入店铺满减
@@ -1719,10 +1720,8 @@ public class SubmitServiceImpl implements SubmitService {
                 shopOrder.setOrderType(1);
             }
             orderShopPos.add(shopOrder);
-            //把原shoporderlist拆分的shop剔除,加入拆分后的shop
-//            shopOrderList.removeIf(s -> s.getShopId().equals(shopOrder.getShopId()));
         }
-        shopOrderList=orderShopPos;
+        return orderShopPos;
     }
 
     /**

+ 4 - 0
src/main/resources/mapper/BaseMapper.xml

@@ -296,6 +296,10 @@
             ableUserMoney = #{ableUserMoney}
         WHERE userID = #{userId}
     </update>
+    <update id="updateOrderOnlineFlag">
+        update cm_order set onlinePayFlag = 1
+        where orderID = #{orderId}
+    </update>
     <insert id="insertBalanceRecord" parameterType="com.caimei365.order.model.po.BalanceRecordPo">
         INSERT INTO cm_user_balance_record (userId, type, balanceType, addDate, amount, orderId, receiptId, remark, delFlag)
         VALUES (#{userId}, #{type}, #{balanceType}, #{addDate}, #{amount}, #{orderId}, #{receiptId}, #{remark}, #{delFlag})

+ 1 - 1
src/main/resources/mapper/SubmitMapper.xml

@@ -200,7 +200,7 @@
                p.unit                     AS productUnit,
                p.normalPrice,
                p.supplierTaxPoint         AS shopTaxRate,
-               p.splitCode
+               p.splitCode as splitCode
         FROM product p
         WHERE p.productId = #{productId}
     </select>