diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java b/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java index 31cc76c63..505fc6583 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxPayOrder.java @@ -76,13 +76,14 @@ public class WxPayOrder extends TenantEntity { public WxComposeChildOrderShare getChildOrderShare(Long wxOrderId) { if (StringUtils.isBlank(this.childOrderShare)) { - return new WxComposeChildOrderShare(this.payAmount, this.shareAmount, this.rateAmount,null,null,null); + return new WxComposeChildOrderShare(this.payAmount, this.shareAmount, this.rateAmount,null,null,null,null); } Map childs = JSON.parseObject(this.childOrderShare, Map.class); JSONObject childOrderShare = (JSONObject) childs.get(String.valueOf(wxOrderId)); if (null != childOrderShare) { return new WxComposeChildOrderShare(childOrderShare.getInteger("realPayMent"), childOrderShare.getInteger("shareAmount"), childOrderShare.getInteger("rateAmount"), - childOrderShare.getInteger("realRateAmount"), childOrderShare.getInteger("commissionAmount"), childOrderShare.getString("merchantUid")); + childOrderShare.getInteger("realRateAmount"), childOrderShare.getInteger("commissionAmount"), + childOrderShare.getLong("merchantId"),childOrderShare.getString("merchantUid")); } return null; } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponChannelService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponChannelService.java index 998828c82..ab9589d3f 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponChannelService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponChannelService.java @@ -84,5 +84,8 @@ public interface WxCouponChannelService { ResultData updateOnline(WxCouponChannel wxCouponChannel); - String getCouponOneMerchantUid(EnumPayWay payWay,Long couponChannelId, String tenantId); + Long getCouponOneMerchantId(EnumPayWay payWay, Long couponChannelId, String tenantId); + + String getCouponOneMerchantUid(EnumPayWay payWay,Long merchantId, String tenantId); + } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java index 1186d4a4d..a26298d1c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponChannelServiceImpl.java @@ -829,7 +829,7 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { } @Override - public String getCouponOneMerchantUid(EnumPayWay payWay,Long couponChannelId, String tenantId) { + public Long getCouponOneMerchantId(EnumPayWay payWay, Long couponChannelId, String tenantId) { WxCouponChannel couponChannel = wxCouponChannelMapper.selectById(couponChannelId, tenantId); List merchantIds = wxCouponMerchantMapper.findMerchantIdListByProduct(couponChannel.getCouponId(), tenantId); Long merchantId = null; @@ -846,10 +846,15 @@ public class WxCouponChannelServiceImpl implements WxCouponChannelService { merchantId = list.get(0); } } + return merchantId; + } + + @Override + public String getCouponOneMerchantUid(EnumPayWay payWay,Long merchantId, String tenantId) { if(merchantId != null){ WxProfitSharingReceiver psReceiverQ = new WxProfitSharingReceiver(); psReceiverQ.setTenantId(tenantId); - psReceiverQ.setMerchantId(merchantIds.get(0)); + psReceiverQ.setMerchantId(merchantId); psReceiverQ.setSharingType(payServiceFactory.getPayShareAdapterService(payWay.getCode()).getProfitSharingType()); psReceiverQ.setStatus(EnumProfitSharingReceiverStatus.PROFIT_SHARING_RECEIVER_STATUS_VALID.getCode()); psReceiverQ.setPlat(payWay.getPlat().getCode()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index 611265ff3..e2a0e60bb 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -452,9 +452,11 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { int rate_amount = 0; //todo 注意购物车模式(需测试)每笔子订单算法可能与总订单算法有差 for (WxOrder o : orderList) { + Long merchant_id = null; String merchant_uid = ""; if(EnumPayMchType.DIRECT.equals(payMchType)){//直连模式记录收款商户 - merchant_uid = wxCouponChannelService.getCouponOneMerchantUid(payWay,o.getCouponChannelId(),o.getTenantId()); + merchant_id = wxCouponChannelService.getCouponOneMerchantId(payWay,o.getCouponChannelId(),o.getTenantId()); + merchant_uid = wxCouponChannelService.getCouponOneMerchantUid(payWay,merchant_id,o.getTenantId()); if(StringUtils.isBlank(merchant_uid)){ throw new MallinkException(ErrorCode.PAY_ORDER_MERCHANT_UID_ERROR); } @@ -465,7 +467,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { logger.info("佣金明细"+ JSON.toJSONString(oShareAmount)); share_amount += oShareAmount.getShareAmount(); rate_amount += oShareAmount.getRateAmount(); - childShares.put(String.valueOf(o.getId()), new WxComposeChildOrderShare(oShareAmount,merchant_uid)); + childShares.put(String.valueOf(o.getId()), new WxComposeChildOrderShare(oShareAmount,merchant_id,merchant_uid)); } record.setShareAmount(share_amount); record.setRateAmount(rate_amount); diff --git a/mallinkService/src/main/java/com/iformall/service/order/entity/WxComposeChildOrderShare.java b/mallinkService/src/main/java/com/iformall/service/order/entity/WxComposeChildOrderShare.java index 2d962c2aa..bd64577e7 100644 --- a/mallinkService/src/main/java/com/iformall/service/order/entity/WxComposeChildOrderShare.java +++ b/mallinkService/src/main/java/com/iformall/service/order/entity/WxComposeChildOrderShare.java @@ -11,21 +11,24 @@ import lombok.Data; @Data public class WxComposeChildOrderShare { - public WxComposeChildOrderShare(Integer realPayMent,Integer shareAmount,Integer rateAmount,Integer realRateAmount,Integer commissionAmount,String merchantUid) { + public WxComposeChildOrderShare(Integer realPayMent,Integer shareAmount,Integer rateAmount,Integer realRateAmount,Integer commissionAmount, + Long merchantId,String merchantUid) { this.realPayMent = realPayMent; this.shareAmount = shareAmount; this.rateAmount = rateAmount; this.realRateAmount = realRateAmount; this.commissionAmount = commissionAmount; + this.merchantId = merchantId; this.merchantUid = merchantUid; } - public WxComposeChildOrderShare(PayShareCalculateAmount shareCalculateAmount,String merchantUid) { + public WxComposeChildOrderShare(PayShareCalculateAmount shareCalculateAmount,Long merchantId,String merchantUid) { this.realPayMent = shareCalculateAmount.getPayAmount(); this.shareAmount = shareCalculateAmount.getShareAmount(); this.rateAmount = shareCalculateAmount.getRateAmount(); this.realRateAmount = shareCalculateAmount.getRealRateAmount(); this.commissionAmount = shareCalculateAmount.getCommissionAmount(); + this.merchantId = merchantId; this.merchantUid = merchantUid; } @@ -38,5 +41,6 @@ public class WxComposeChildOrderShare { private Integer realRateAmount;//平台手续费 private Integer commissionAmount;//平台佣金 + private Long merchantId;//收款商户 private String merchantUid;//收款商户 }