diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index 0ce279dff..e57b8ba8d 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -382,7 +382,7 @@ public class WxCouponOrderController extends BaseController { } if (couponOrder != null && couponOrder.getMerchantId() != null) { - wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId()); + wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId(),couponOrder.getBMerchantId()); } return new ResultData(couponOrder); diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java index 87cb07154..1c61f0132 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderController.java @@ -516,7 +516,7 @@ public class WxCouponOrderController extends BaseController { } if (couponOrder != null && couponOrder.getMerchantId() != null) { - wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId()); + wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId(),couponOrder.getBMerchantId()); } return new ResultData(couponOrder); diff --git a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java index 788cb6de9..dce0a48ed 100644 --- a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java +++ b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java @@ -2178,7 +2178,7 @@ public class PosServiceImpl implements PosService { logger.error("交易核销积分异常:" + e.getMessage()); } // 3. 核销后处理 - couponOrderService.sendInsideCouponVerifyMsg(merchantBUser, couponOrderId, merchantBUser.getMerchantId()); + couponOrderService.sendInsideCouponVerifyMsg(merchantBUser, couponOrderId, merchantBUser.getMerchantId(),merchantBUser.getMerchantId()); } return payOrder; } diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java index a4d39e6f8..8596c7939 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/CouponOrderExpiringSchedule.java @@ -133,7 +133,7 @@ public class CouponOrderExpiringSchedule { } if (couponOrder != null && couponOrder.getMerchantId() != null) { - wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrder.getId(), couponOrder.getMerchantId()); + wxCouponOrderService.sendInsideCouponVerifyMsg(couponOrder, couponOrder.getId(), couponOrder.getMerchantId(),couponOrder.getBMerchantId()); } }); } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCouponVerifyMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCouponVerifyMsg.java index 7c49f08a1..ccb05c418 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCouponVerifyMsg.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCouponVerifyMsg.java @@ -12,6 +12,8 @@ public class FmInsideCouponVerifyMsg extends BaseMsg{ @io.swagger.annotations.ApiModelProperty(value = "券包ID", name = "couponOrderId") private Long couponOrderId; - @io.swagger.annotations.ApiModelProperty(value = "B端商户ID", name = "merchantId") + @io.swagger.annotations.ApiModelProperty(value = "分账商户", name = "merchantId") private Long merchantId; + @io.swagger.annotations.ApiModelProperty(value = "核销商户", name = "bmerchantId") + private Long bmerchantId; } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java index 5ee0ce87e..a096a1198 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCouponOrderService.java @@ -65,15 +65,16 @@ public interface WxCouponOrderService { /** * 核销后发送消息 */ - void sendInsideCouponVerifyMsg(TenantEntity tenantEntity, Long couponOrderId, Long merchantId); + void sendInsideCouponVerifyMsg(TenantEntity tenantEntity, Long couponOrderId, Long merchantId, Long bmerchantId); /** * 核销后处理 * * @param couponOrder - * @param + * @param merchant 分账商户 + * @param bmerchant 核销商户 */ - void actionAfterVerify(WxCouponOrder couponOrder, WxMerchant merchant); + void actionAfterVerify(WxCouponOrder couponOrder, WxMerchant merchant, WxMerchant bmerchant); /** * 核销发券 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java index 84520e9d5..1b3eae382 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -1274,7 +1274,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { if(EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType) && !verifyMerchant(bUser,cm.getMerchantId())){ throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL); } - merchantId = bUser.getMerchantId(); + merchantId = cm.getMerchantId(); }else if(EnumCouponType.COUPON_GIFT.getCode().equals(wxCoupon.getType())){ if (StringUtils.isBlank(wxCoupon.getGiftList())){ logger.error("券包: coupon-" + wxCoupon.getId() + "数据异常" + "couponOrder-" + couponOrder.getId()); @@ -1309,8 +1309,9 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { && EnumPayShare.YES.getCode().equals(wxPayOrder.getShare())){ payServiceFactory.getPayShareAdapterService(wxPayOrder.getPayVendor()) .getReceiverList(couponOrder, merchantId, wxPayOrder.getTtPayWay()); + }else if(wxPayOrder != null && EnumPayMchType.DIRECT.getCode().equals(wxPayOrder.getMchType())){ + merchantId = wxPayOrder.getChildOrderShare(couponOrder.getOrderId()).getMerchantId(); } - } int num = 0; @@ -1444,7 +1445,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } if (couponOrder != null && couponOrder.getMerchantId() != null) { - this.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId()); + this.sendInsideCouponVerifyMsg(couponOrder, couponOrderId, couponOrder.getMerchantId(),couponOrder.getBMerchantId()); } return couponOrder; @@ -1567,17 +1568,21 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } @Override - public void sendInsideCouponVerifyMsg(TenantEntity tenantEntity, Long couponOrderId, Long merchantId) { + public void sendInsideCouponVerifyMsg(TenantEntity tenantEntity, Long couponOrderId, Long merchantId, Long bmerchantId) { + if(bmerchantId == null || bmerchantId.longValue() == 0l){ + bmerchantId = merchantId; + } FmInsideCouponVerifyMsg verifyMsg = new FmInsideCouponVerifyMsg(); verifyMsg.setMsgType(EnumMsgRecordType.INSIDE_COUPON_VERIFY.getCode()); verifyMsg.updateTenantInfo(tenantEntity); verifyMsg.setCouponOrderId(couponOrderId); verifyMsg.setMerchantId(merchantId); + verifyMsg.setBmerchantId(bmerchantId); mqBaseProducer.sendMessage(verifyMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); } @Override - public void actionAfterVerify(WxCouponOrder couponOrder, WxMerchant merchant) { + public void actionAfterVerify(WxCouponOrder couponOrder, WxMerchant merchant, WxMerchant bmerchant) { try { boolean mulityShare = true; @@ -1600,7 +1605,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { try { // 核销补贴 - subsidyAfterVerify(couponOrder, merchant.getId()); + subsidyAfterVerify(couponOrder, bmerchant.getId()); } catch (Exception e) { logger.error("核销记账失败"+e.getMessage(),e); } @@ -1614,7 +1619,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { } // 核销发模板消息 try { - sendVerifyMsg(couponOrder, merchant, bSentCoupon); + sendVerifyMsg(couponOrder, bmerchant, bSentCoupon); } catch (Exception e) { logger.error("核销发送消息发生错误:" + e.getMessage(),e); } 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 e2a0e60bb..b343f0e97 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -1138,7 +1138,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { logger.error(e.getMessage()); } // 更新后处理 - wxCouponOrderService.sendInsideCouponVerifyMsg(unPayOrder, unPayOrder.getPosPayOrderId(), user.getMerchantId()); + wxCouponOrderService.sendInsideCouponVerifyMsg(unPayOrder, unPayOrder.getPosPayOrderId(), user.getMerchantId(),user.getMerchantId()); } } } catch (Exception e) { @@ -1260,7 +1260,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { logger.error(e.getMessage()); } // 更新后处理 - wxCouponOrderService.sendInsideCouponVerifyMsg(unPayOrder, unPayOrder.getPosPayOrderId(), user.getMerchantId()); + wxCouponOrderService.sendInsideCouponVerifyMsg(unPayOrder, unPayOrder.getPosPayOrderId(), user.getMerchantId(),user.getMerchantId()); } } } catch (Exception e) { diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCouponVerifyMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCouponVerifyMsgServiceImpl.java index 8427d040e..10ab3bfca 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCouponVerifyMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideCouponVerifyMsgServiceImpl.java @@ -48,9 +48,16 @@ public class FmInsideCouponVerifyMsgServiceImpl implements MsgSendService { logger.error("门店未找到: " + msg.getMerchantId()); throw new MallinkException(ErrorCode.USER_IS_EMPTY.getCode(), "门店未找到" + msg.getMerchantId()); } + WxMerchant bmerchant = null; + if(msg.getBmerchantId() != null && msg.getBmerchantId().longValue() > 0l + && !msg.getBmerchantId().equals(msg.getMerchantId())){ + bmerchant = merchantService.selectById(msg.getBmerchantId()); + }else{ + bmerchant = merchant; + } orderService.sendInsideOrderPushDeliveryMsg(couponOrder,null,couponOrder.getId()); // orderService.sendInsideOrderPushMsg(couponOrder,couponOrder.getComposeOrderId()); - couponOrderService.actionAfterVerify(couponOrder, merchant); + couponOrderService.actionAfterVerify(couponOrder, merchant, bmerchant); } }