| @@ -679,20 +679,24 @@ public class WxCouponServiceImpl implements WxCouponService { | |||
| } | |||
| PayShareAdapterService payShareServie = payServiceFactory.getPayShareAdapterService(payWay.getCode(),payAccount.getPayVersion()); | |||
| List<Long> merchantIds = new ArrayList<>(); | |||
| for (JSONObject o:merchantParamList) { | |||
| merchantIds.add(o.getLong("id")); | |||
| } | |||
| WxMerchant merchantQ = new WxMerchant(); | |||
| merchantQ.updateTenantInfo(record); | |||
| merchantQ.setIds(merchantIds); | |||
| Map<Long, String> idAndNamesMap = wxMerchantService.getIdAndNamesMap(merchantQ); | |||
| if (EnumPayMchType.DIRECT.equals(payMchType)) { | |||
| Long merchantId = null; | |||
| if (merchantParamList.size() > 1) { | |||
| List<Long> merchantIds = new ArrayList<>(); | |||
| for (JSONObject o:merchantParamList) { | |||
| merchantIds.add(o.getLong("id")); | |||
| } | |||
| WxMerchant merchantQ = new WxMerchant(); | |||
| merchantQ.updateTenantInfo(record); | |||
| merchantQ.setIds(merchantIds); | |||
| merchantQ.setIsAdmin(EnumYesOrNo.YES.getCode()); | |||
| merchantQ.setStatus(EnumMerchantStatus.VALID.getCode()); | |||
| List<Long> list = wxMerchantMapper.findIdList(merchantQ); | |||
| if (merchantIds.size() > 1) { | |||
| WxMerchant merchantQ2 = new WxMerchant(); | |||
| merchantQ2.updateTenantInfo(record); | |||
| merchantQ2.setIds(merchantIds); | |||
| merchantQ2.setIsAdmin(EnumYesOrNo.YES.getCode()); | |||
| merchantQ2.setStatus(EnumMerchantStatus.VALID.getCode()); | |||
| List<Long> list = wxMerchantMapper.findIdList(merchantQ2); | |||
| if(list == null || list.isEmpty()){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "直连模式多门店券需包含一个商管商户"); | |||
| }else if(list.size() > 1){ | |||
| @@ -702,28 +706,28 @@ public class WxCouponServiceImpl implements WxCouponService { | |||
| merchantId = list.get(0); | |||
| }else{ | |||
| record.setMerchantType(EnumCouponMerchantType.ONE_MERCHANT.getCode()); | |||
| merchantId = merchantParamList.get(0).getLong("id"); | |||
| merchantId = merchantIds.get(0); | |||
| } | |||
| WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, merchantId, null, payMchTypeEnum.getCode()); | |||
| if (receiver == null) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "对应门店至少进件一种支付模式"); | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "["+idAndNamesMap.get(merchantId)+"]未配置收款账户"); | |||
| } | |||
| if (EnumAppPlat.TOUTIAO.equals(plat)) { | |||
| if (!MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus()) | |||
| && !MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus()) | |||
| && !MerchantImportStatus.improt_success.getCode().equals(receiver.getHzImportStatus())) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "对应门店至少进件一种支付模式"); | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "["+idAndNamesMap.get(merchantId)+"]未配置收款账户"); | |||
| } | |||
| } | |||
| } else if (EnumPayShare.YES.equals(isShare)) { | |||
| for (int i = 0, size = merchantParamList.size(); i < size; i++) { | |||
| JSONObject jsonObject = merchantParamList.get(i); | |||
| Long merchantId = jsonObject.getLong("id"); | |||
| List<String> merchantNames = new ArrayList(); | |||
| for (Long merchantId:merchantIds) { | |||
| WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, merchantId, null, payMchTypeEnum.getCode()); | |||
| int n = i + 1; | |||
| if (receiver == null) { | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "第(" + n + ")个商户还未配置分账账户或未进件"); | |||
| merchantNames.add(idAndNamesMap.get(merchantId)); | |||
| continue; | |||
| // return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "第(" + n + ")个商户还未配置分账账户或未进件"); | |||
| } | |||
| if (EnumAppPlat.TOUTIAO.equals(plat)) { | |||
| QueryMerchantResult openPayResult = payAccount.getOpenPayResult(); | |||
| @@ -734,18 +738,27 @@ public class WxCouponServiceImpl implements WxCouponService { | |||
| } | |||
| if(EnumYesOrNo.YES.getCode().equals(openPayResult.getAlipay()) | |||
| && !MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus())){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "第(" + n + ")个商户未进件支付宝"); | |||
| merchantNames.add(idAndNamesMap.get(merchantId)); | |||
| continue; | |||
| // return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "["+idAndNamesMap.get(merchantId)+"]未进件支付宝"); | |||
| } | |||
| if(EnumYesOrNo.YES.getCode().equals(openPayResult.getWx()) | |||
| && !MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus())){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "第(" + n + ")个商户未进件微信"); | |||
| merchantNames.add(idAndNamesMap.get(merchantId)); | |||
| continue; | |||
| // return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "["+idAndNamesMap.get(merchantId)+"]未进件微信"); | |||
| } | |||
| if(EnumYesOrNo.YES.getCode().equals(openPayResult.getHz()) | |||
| && !MerchantImportStatus.improt_success.getCode().equals(receiver.getHzImportStatus())){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "第(" + n + ")个商户未进件抖音"); | |||
| merchantNames.add(idAndNamesMap.get(merchantId)); | |||
| continue; | |||
| // return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "["+idAndNamesMap.get(merchantId)+"]未进件抖音"); | |||
| } | |||
| } | |||
| } | |||
| if(!merchantNames.isEmpty()){ | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), JSONArray.toJSONString(merchantNames)+"未配置分账账户"); | |||
| } | |||
| } | |||
| } | |||
| return new ResultData(); | |||