Bläddra i källkod

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

chao 3 år sedan
förälder
incheckning
90703d616e

+ 4 - 0
src/main/java/com/caimei365/order/model/vo/OrderProductVo.java

@@ -14,6 +14,10 @@ import java.math.BigDecimal;
 @Data
 public class OrderProductVo implements Serializable {
     private static final long serialVersionUID = 1L;
+    /**
+     * 商品分账商户号
+     */
+    private String splitCode;
     /**
      * 商品Id
      */

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

@@ -1038,7 +1038,7 @@ public class PayOrderServiceImpl implements PayOrderService {
         log.info("【延时分账】>>>>>>>>>>延时分账,每一小时执行一次");
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(new Date());
-        calendar.add(Calendar.DAY_OF_MONTH, -1);
+//        calendar.add(Calendar.DAY_OF_MONTH, -1);
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String currentTime = format.format(calendar.getTime());
         // 查询未分账已支付收款
@@ -1064,18 +1064,12 @@ public class PayOrderServiceImpl implements PayOrderService {
                 }
                 List<SplitAccountPo> splitBillDetail = setSplitAccountDetail(order, payParam);
                 List<Map<String, String>> maps = new ArrayList<>();
-                List<ShopOrderVo> shopOrderList = orderCommonMapper.getShopOrderListByOrderId(order.getOrderId());
-                //供应商子商户总金额
-                for (ShopOrderVo shopOrder : shopOrderList) {
-                    double shopTotalAmount = 0.00;
-                    String subUserNo = "";
-                    for (SplitAccountPo account : splitBillDetail) {
-                        if (null != account.getType() && 4 == account.getType() && shopOrder.getShopId().equals(account.getShopId())) {
-                            shopTotalAmount = MathUtil.add(shopTotalAmount, account.getSplitAccount()).doubleValue();
-                            subUserNo = account.getSubUserNo();
-                        }
+                //供应商子商户金额
+                for (SplitAccountPo account : splitBillDetail) {
+                    if (null != account.getType() && 4 == account.getType()) {
+                        //每个有供应商子商户的分账给对应供应商子商户
+                        addMaps(maps, account.getSplitAccount(), account.getSubUserNo());
                     }
-                    addMaps(maps, shopTotalAmount, subUserNo);
                 }
                 //公账-专票总金额,私账-无票总金额,公账-普票总金额
                 //佣金进网络
@@ -1117,6 +1111,7 @@ public class PayOrderServiceImpl implements PayOrderService {
                     log.info("回调接口>>>" + callUrl);
                     String sign = PayUtil.getPaySign(json, PayUtil.merKey);
                     json.put("sign", sign);
+                    log.info("发送参数json----->" + json);
                     String data = PayUtil.privateKeyEncrypt(json, PayUtil.merKey);
                     result = PayUtil.httpGet("https://platform.mhxxkj.com/paygateway/mbpay/splitOrder/v1", PayUtil.merAccount, data);
                 } catch (Exception e) {
@@ -1203,7 +1198,6 @@ public class PayOrderServiceImpl implements PayOrderService {
                     splitAmount = 0.00;
                 }
             }
-            String commercialCode = payOrderMapper.getShopCommercialCode(orderProduct.getShopId());
             if (costPrice > 0) {
                 SplitAccountPo splitAccount = new SplitAccountPo();
                 splitAccount.setOrderId(order.getOrderId());
@@ -1211,10 +1205,10 @@ public class PayOrderServiceImpl implements PayOrderService {
                 splitAccount.setShopId(orderProduct.getShopId());
                 splitAccount.setSplitAccount(costPrice);
                 splitAccount.setProductType(1);
-                if (StringUtils.isNotBlank(commercialCode)) {
-                    // 供应商拥有子商户号
+                if (StringUtils.isNotBlank(orderProduct.getSplitCode())) {
+                    // 该商品设置了商户号
                     splitAccount.setType(4);
-                    splitAccount.setSubUserNo(commercialCode);
+                    splitAccount.setSubUserNo(orderProduct.getSplitCode());
                 } else {
                     //含税或者不含税看票
                     if (0 == orderProduct.getIncludedTax() || 1 == orderProduct.getIncludedTax()) {
@@ -1275,6 +1269,7 @@ public class PayOrderServiceImpl implements PayOrderService {
                         splitAccount.setType(2);
                         splitAccount.setSubUserNo(PayUtil.privateAccountNo);
                     }
+                    log.info("付供应商运费分账参数------------->" + splitAccount);
                     list.add(splitAccount);
                 }
             }

+ 1 - 1
src/main/java/com/caimei365/order/task/DelayedSplittingTask.java

@@ -26,7 +26,7 @@ public class DelayedSplittingTask {
     /**
      * 延时分账,每一小时执行一次
      */
-    @Scheduled(cron = "0 0 * * * ?")
+    @Scheduled(cron = "0 0/2 * * * ?")
     public void delayedSplitting() {
         payOrderService.delayedSplitting(delayedSplittingUrl);
     }

+ 2 - 1
src/main/resources/mapper/OrderCommonMapper.xml

@@ -245,7 +245,8 @@
         cop.notOutStore,
         cop.isActProduct AS actProduct,
         cop.productType,
-        p.productCategory as productCategory
+        p.productCategory as productCategory,
+        p.splitCode
         FROM cm_order_product cop
         LEFT JOIN product p ON cop.productID = p.productID
         WHERE orderID = #{orderId}

+ 2 - 1
src/main/resources/mapper/PayOrderMapper.xml

@@ -268,7 +268,8 @@
         AND payStatus = 1 AND productType = 1
     </select>
     <select id="getShopCommercialCode" resultType="java.lang.String">
-        SELECT commercialCode FROM shop WHERE shopID = #{shopId}
+        SELECT commercialCode FROM cm_shop_splitcode WHERE shopID = #{shopId}
+        limit 1
     </select>
     <select id="getPaidShipping" resultType="java.lang.Double">
         SELECT SUM(splitAccount)