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 9c931d5e8..f850039c7 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java @@ -79,6 +79,9 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { @Autowired WxProfitSharingOrderService wxProfitSharingOrderService; + + @Autowired + WxProfitSharingReceiverMapper wxProfitSharingReceiverMapper; @Autowired WxPayOrderMapper wxPayOrderMapper; @@ -343,6 +346,14 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { excelService.exportCsv(list, null, filename, WxCouponOrderBVo.class, filename + ".csv", response, false); } + private WxAppinfo getAppinfo(TenantEntity tenantEntity,Integer payWay) { + WxAppinfo wxAppinfo = wxAppinfoService.getCAppInfo(tenantEntity, EnumPayWay.getEnum(payWay)); + if (wxAppinfo == null) + throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND); + + return wxAppinfo; + } + @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) public WxCouponOrder verify(WxCouponOrder couponOrder, WxMerchantBUser bUser) { @@ -381,6 +392,21 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { logger.error("券已被预核销: couponOrder-" + couponOrder.getId()); throw new MallinkException(ErrorCode.COUPON_ORDER_IS_PRE_VERIFY); } + + //如果开启了分账,就必须要配置分账账号 + WxAppinfo appInfo = getAppinfo(couponOrder,couponOrder.getPayVendor()); + WxPayAccount payAccount = wxPayAccountMapper.selectById(appInfo.getPayId()); + WxProfitSharingReceiver psReceiverQ = new WxProfitSharingReceiver(); + psReceiverQ.updateTenantInfo(payAccount); + psReceiverQ.setMerchantId(bUser.getMerchantId()); + psReceiverQ.setSharingType(payServiceFactory.getPayShareAdapterService(couponOrder.getPayVendor()).getProfitSharingType()); + psReceiverQ.setStatus(EnumProfitSharingReceiverStatus.PROFIT_SHARING_RECEIVER_STATUS_VALID.getCode()); + List psReceiverList = wxProfitSharingReceiverMapper.findList(psReceiverQ); + if (null != payAccount.getShare() && EnumPayShare.YES.getCode().intValue() == payAccount.getShare().intValue() && psReceiverList.size() == 0) { + throw new MallinkException(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID); + } + + int num = 0; try { couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); //1核销 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 bb5b3b1b8..0e2f3fb6e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxProfitSharingOrderServiceImpl.java @@ -237,11 +237,6 @@ public class WxProfitSharingOrderServiceImpl implements WxProfitSharingOrderServ return new ResultData(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID); } - //如果开启了分账,就必须要配置分账账号 - if (null != payAccount.getShare() && EnumPayShare.YES.getCode().intValue() == payAccount.getShare().intValue() && psReceiverList.size() == 0) { - return new ResultData(ErrorCode.PROFIT_SHARING_RECEIVER_INVALID); - } - if (psReceiverList.size() == 0) { //没有分账账户,直接结束分账 if (sharingOrderDto.getType().equals(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE.getCode())) sharingOrderDto.setType(EnumProfitSharingOrderType.PROFIT_SHARING_SINGLE_FINISH.getCode());