From 44088730c01427667e3c5f6fd79c8b449087f34f Mon Sep 17 00:00:00 2001 From: "Stormeye.Wu" Date: Thu, 6 Sep 2018 16:25:35 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=88=86=E8=B4=A6][=E6=96=B0=E5=A2=9E]:?= =?UTF-8?q?=E5=88=86=E8=B4=A6=E6=A8=A1=E5=BC=8F=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxPayOrderServiceImpl.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java index 1c7b47fcd..c18ef4518 100644 --- a/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/simple/service/impl/WxPayOrderServiceImpl.java @@ -63,6 +63,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { @Autowired WxMerchantMapper wxMerchantMapper; + @Autowired + WxProfitSharingReceiverMapper wxProfitSharingReceiverMapper; JSONObject errorMap = JSON.parseObject("{" + "\"NOAUTH\":{\"detail\":\"商户无此接口权限\",\"reason\":\"商户未开通此接口权限\",\"resolution\":\"请商户前往申请此接口权限\"}," + @@ -97,6 +99,8 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { public ResultData createPayOrder(boolean isReal, WxAppinfo appInfo, WxCUser user, WxPayOrder record, EnumPayWay payWay) { final IdWorker idworker = IdWorker.get(); + boolean isShare = false; + try { // 1. check 订单 WxOrder order = wxOrderMapper.selectByPrimaryKey(record.getOrderId()); @@ -111,6 +115,21 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { if (order.getPaymentType() != EnumPayType.PAY_PAYMENT.getCode()) { return new ResultData(ErrorCode.PAY_ORDER_IS_NOT_PAYMENT); } + WxPayAccount payAccount = wxPayAccountMapper.selectByPrimaryKey(appInfo.getPayId()); + if (payAccount.isShare()) { + isShare = true; + } + // 1.5 check 分账 receive + if (isShare) { + WxProfitSharingReceiver receiver = new WxProfitSharingReceiver(); + receiver.setMerchantId(order.getMerchantId()); + List merList = wxProfitSharingReceiverMapper.findList(receiver); + if (merList.size() > 0) { + isShare = true; + } else { + isShare = false; + } + } // 2. check 是否有支付订单 Date currentDate = new Date(); List list = wxPayOrderMapper.findList(record); @@ -131,6 +150,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { record.setPayAmount(order.getPayment()); record.setPayVendor(EnumPayWay.PAY_WAY_WEAPP.getCode()); record.setPayOrderStatus(EnumPayStatus.PAY_WAY_WAIT.getCode()); + record.setShare(isShare); int sqlRow = wxPayOrderMapper.insertSelective(record); if (sqlRow != 1) { @@ -139,10 +159,11 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } } else { record = list.get(0); + record.setShare(isShare); payOrderNo = String.valueOf(record.getId()); } - WxPayAccount payAccount = wxPayAccountMapper.selectByPrimaryKey(appInfo.getPayId()); + if (isReal) { // 微信实际支付 if (payAccount.getType() == EnumPayMode.MCH.getCode()) { @@ -224,7 +245,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { wxPayOrderSP.setTime_expire(Utility.getDataFormatStringYYYYMMDDHHmmss(futureDate)); // 15分钟后结束 wxPayOrderSP.setSign_type("HMAC-SHA256"); Map payOrderMap = BeanUtils.toStringMap(wxPayOrderSP); - if(payAccount.isShare()) { + if(isShare) { payOrderMap.put("profit_sharing", "Y"); } wxPayOrderSP.setSign(WxPayment.createSignHMAC(payOrderMap, payAccount.getApiKey()));