| @@ -679,20 +679,24 @@ public class WxCouponServiceImpl implements WxCouponService { | |||||
| } | } | ||||
| PayShareAdapterService payShareServie = payServiceFactory.getPayShareAdapterService(payWay.getCode(),payAccount.getPayVersion()); | 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)) { | if (EnumPayMchType.DIRECT.equals(payMchType)) { | ||||
| Long merchantId = null; | 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()){ | if(list == null || list.isEmpty()){ | ||||
| return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "直连模式多门店券需包含一个商管商户"); | return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "直连模式多门店券需包含一个商管商户"); | ||||
| }else if(list.size() > 1){ | }else if(list.size() > 1){ | ||||
| @@ -702,28 +706,28 @@ public class WxCouponServiceImpl implements WxCouponService { | |||||
| merchantId = list.get(0); | merchantId = list.get(0); | ||||
| }else{ | }else{ | ||||
| record.setMerchantType(EnumCouponMerchantType.ONE_MERCHANT.getCode()); | 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()); | WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, merchantId, null, payMchTypeEnum.getCode()); | ||||
| if (receiver == null) { | 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 (EnumAppPlat.TOUTIAO.equals(plat)) { | ||||
| if (!MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus()) | if (!MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus()) | ||||
| && !MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus()) | && !MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus()) | ||||
| && !MerchantImportStatus.improt_success.getCode().equals(receiver.getHzImportStatus())) { | && !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)) { | } 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()); | WxProfitSharingReceiver receiver = payShareServie.getReceiver(payAccount, merchantId, null, payMchTypeEnum.getCode()); | ||||
| int n = i + 1; | |||||
| if (receiver == null) { | 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)) { | if (EnumAppPlat.TOUTIAO.equals(plat)) { | ||||
| QueryMerchantResult openPayResult = payAccount.getOpenPayResult(); | QueryMerchantResult openPayResult = payAccount.getOpenPayResult(); | ||||
| @@ -734,18 +738,27 @@ public class WxCouponServiceImpl implements WxCouponService { | |||||
| } | } | ||||
| if(EnumYesOrNo.YES.getCode().equals(openPayResult.getAlipay()) | if(EnumYesOrNo.YES.getCode().equals(openPayResult.getAlipay()) | ||||
| && !MerchantImportStatus.improt_success.getCode().equals(receiver.getAlipayImportStatus())){ | && !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()) | if(EnumYesOrNo.YES.getCode().equals(openPayResult.getWx()) | ||||
| && !MerchantImportStatus.improt_success.getCode().equals(receiver.getWxImportStatus())){ | && !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()) | if(EnumYesOrNo.YES.getCode().equals(openPayResult.getHz()) | ||||
| && !MerchantImportStatus.improt_success.getCode().equals(receiver.getHzImportStatus())){ | && !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(); | return new ResultData(); | ||||