diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java index 5bbc891a2..a196beb1d 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java @@ -298,12 +298,12 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ }else if (EnumPayMchType.DIRECT.getCode() == mchType) { shareResult = payShareAdapterService.noReciverShare(appInfo, payAccount, record, sharingOrderDto.getTransactionId(), sharingOrderDto.getShareAmount()); //当前商户的收款账号 - WxProfitSharingReceiver receiver = payShareAdapterService.getReceiver(sharingOrderDto, sharingOrderDto.getMerchantId(), payOrder.getTtPayWay(), mchType); - if (null == receiver) { - return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"当前商户未配置收款账号"); - } - StringBuffer sb = new StringBuffer("[{").append("\"description\":").append(receiver.getId()).append(",\"amount\":").append(sharingOrderDto.getShareAmount()); - jsonArray = JSONArray.parseArray(sb.toString()); +// WxProfitSharingReceiver receiver = payShareAdapterService.getReceiver(sharingOrderDto, sharingOrderDto.getMerchantId(), payOrder.getTtPayWay(), mchType); +// if (null == receiver) { +// return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"当前商户未配置收款账号"); +// } +// StringBuffer sb = new StringBuffer("[{").append("\"description\":").append(receiver.getId()).append(",\"amount\":").append(sharingOrderDto.getShareAmount()); +// jsonArray = JSONArray.parseArray(sb.toString()); } if (null == shareResult) { return new ResultData(ErrorCode.PROFIT_SHARING_REQUEST_FAILED.getCode(),"当前支付模式调用分账未返回结果"); @@ -325,27 +325,30 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ updSharingOrder.setUpdateTime(new Date()); wxProfitSharingOrderMapper.updateById(updSharingOrder); - final IdWorker idworker = IdWorker.get(); - try { - jsonArray.stream().forEach(obj -> { - JSONObject receiver =(JSONObject) obj; - Date currentDate = new Date(); - WxProfitSharingResult result = new WxProfitSharingResult(); - result.setId(idworker.nextId()); - result.updateTenantInfo(sharingOrderDto); - result.setMerchantId(record.getMerchantId()); - result.setSharingOrderId(record.getId()); - result.setSharingReceiverId(Long.valueOf(receiver.getString("description"))); - result.setPayAmount(receiver.getInteger("amount")); - result.setCreateTime(currentDate); - result.setUpdateTime(currentDate); - result.setSharingStatus(EnumProfitSharingResultStatus.PROFIT_SHARING_RESULT_PENDING.getCode()); - wxProfitSharingResultMapper.insert(result); - }); - }catch (Exception e) { - logger.error("分账详细信息为null",e); + if(jsonArray != null){ + final IdWorker idworker = IdWorker.get(); + try { + jsonArray.stream().forEach(obj -> { + JSONObject receiver =(JSONObject) obj; + Date currentDate = new Date(); + WxProfitSharingResult result = new WxProfitSharingResult(); + result.setId(idworker.nextId()); + result.updateTenantInfo(sharingOrderDto); + result.setMerchantId(record.getMerchantId()); + result.setSharingOrderId(record.getId()); + result.setSharingReceiverId(Long.valueOf(receiver.getString("description"))); + result.setPayAmount(receiver.getInteger("amount")); + result.setCreateTime(currentDate); + result.setUpdateTime(currentDate); + result.setSharingStatus(EnumProfitSharingResultStatus.PROFIT_SHARING_RESULT_PENDING.getCode()); + wxProfitSharingResultMapper.insert(result); + }); + }catch (Exception e) { + logger.error("分账详细信息为null",e); // return new ResultData(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID); + } } + return new ResultData(shareResult.getData()); diff --git a/mallinkService/src/main/java/com/iformall/service/pay/service/share/wx/v3/WxPayShareV3Service.java b/mallinkService/src/main/java/com/iformall/service/pay/service/share/wx/v3/WxPayShareV3Service.java index 4443645b8..cbda37875 100644 --- a/mallinkService/src/main/java/com/iformall/service/pay/service/share/wx/v3/WxPayShareV3Service.java +++ b/mallinkService/src/main/java/com/iformall/service/pay/service/share/wx/v3/WxPayShareV3Service.java @@ -78,7 +78,7 @@ public class WxPayShareV3Service extends PayShareBaseAdapterService{ @Override public WxProfitSharingOrder createSharingOrder(WxSharingOrderDto sharingOrderDto, Integer mchType,Integer share) { - if(EnumYesOrNo.NO.getCode().equals(share)){ + if(EnumPayMchType.TOTAL.getCode().equals(mchType) && EnumYesOrNo.NO.getCode().equals(share)){ throw new MallinkException(ErrorCode.SYS_PARAMETER_TYPE_ERROR.getCode(),"微信分账未开启"); } //是否已创建分账订单 @@ -99,6 +99,7 @@ public class WxPayShareV3Service extends PayShareBaseAdapterService{ record.setMerchantId(sharingOrderDto.getMerchantId()); //直连模式, if (mchType == EnumPayMchType.DIRECT.getCode()) { + record.setType(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE_FINISH.getCode()); if (null == sharingOrderDto.getPayMerchantId()) { throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"直连模式当前订单的收款商户查询为空"); } @@ -107,13 +108,14 @@ public class WxPayShareV3Service extends PayShareBaseAdapterService{ } record.setPayMerchantId(sharingOrderDto.getPayMerchantId()); record.setPayMerchantMchId(sharingOrderDto.getPayMerchantMchId()); - } + }else{ + record.setType(sharingOrderDto.getType()); + } record.setSharingStatus(this.getSharingOrderInitialStatus()); record.setCreateTime(currentDate); record.setUpdateTime(currentDate); record.setPayTimeStart(sharingOrderDto.getPayTimeStart()); record.setPayTimeEnd(sharingOrderDto.getPayTimeEnd()); - record.setType(sharingOrderDto.getType()); wxProfitSharingOrderMapper.insert(record); } //如果是总分模式,则需要加上收款账户