|
@@ -1,18 +1,120 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import static com.ym.mec.biz.dal.enums.DealStatusEnum.CLOSE;
|
|
|
+import static com.ym.mec.biz.dal.enums.DealStatusEnum.SUCCESS;
|
|
|
+
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Calendar;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Iterator;
|
|
|
+import java.util.LinkedHashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
+import java.util.Optional;
|
|
|
+import java.util.concurrent.atomic.AtomicInteger;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.context.annotation.Lazy;
|
|
|
+import org.springframework.http.HttpStatus;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Propagation;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.yeepay.yop.sdk.service.divide.model.ApplyYopOrderDivideResDTOResult;
|
|
|
+import com.yeepay.yop.sdk.service.divide.request.ApplyRequest;
|
|
|
+import com.yeepay.yop.sdk.service.trade.model.OrderQueryYopQueryOrderResDTOResult;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
-import com.ym.mec.biz.dal.dao.*;
|
|
|
-import com.ym.mec.biz.dal.dto.*;
|
|
|
-import com.ym.mec.biz.dal.entity.*;
|
|
|
-import com.ym.mec.biz.dal.enums.*;
|
|
|
+import com.ym.mec.biz.dal.dao.GoodsDao;
|
|
|
+import com.ym.mec.biz.dal.dao.GoodsProcurementDao;
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SellOrderDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentGoodsSellDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentPaymentRouteOrderDao;
|
|
|
+import com.ym.mec.biz.dal.dao.StudentRepairDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SysConfigDao;
|
|
|
+import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
|
|
|
+import com.ym.mec.biz.dal.dto.GoodsOrderItemVO;
|
|
|
+import com.ym.mec.biz.dal.dto.PageInfoOrder;
|
|
|
+import com.ym.mec.biz.dal.dto.SporadicChargeInfoDto;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentGoodsSellDto;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentPaymentOrderDto;
|
|
|
+import com.ym.mec.biz.dal.dto.StudentPaymentOrderExportDto;
|
|
|
+import com.ym.mec.biz.dal.entity.ActivityUserMapper;
|
|
|
+import com.ym.mec.biz.dal.entity.CloudTeacherOrder;
|
|
|
+import com.ym.mec.biz.dal.entity.Goods;
|
|
|
+import com.ym.mec.biz.dal.entity.GoodsProcurement;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroup;
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
|
|
|
+import com.ym.mec.biz.dal.entity.SellOrder;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentGoodsSell;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentPaymentRouteOrder;
|
|
|
+import com.ym.mec.biz.dal.entity.StudentRegistration;
|
|
|
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
|
|
|
+import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
|
|
|
+import com.ym.mec.biz.dal.entity.VipGroupActivity;
|
|
|
+import com.ym.mec.biz.dal.enums.AccountType;
|
|
|
+import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.GoodsType;
|
|
|
+import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.PayStatus;
|
|
|
+import com.ym.mec.biz.dal.enums.PaymentChannelEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.SellStatus;
|
|
|
+import com.ym.mec.biz.dal.enums.SellTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.enums.StockType;
|
|
|
+import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
|
|
|
import com.ym.mec.biz.dal.page.SporadicOrderQueryInfo;
|
|
|
import com.ym.mec.biz.dal.page.StudentPaymentOrderQueryInfo;
|
|
|
import com.ym.mec.biz.dal.vo.StudentPaymentOrderVo;
|
|
|
-import com.ym.mec.biz.service.*;
|
|
|
+import com.ym.mec.biz.service.ActivityUserMapperService;
|
|
|
+import com.ym.mec.biz.service.ChildrenDayReserveService;
|
|
|
+import com.ym.mec.biz.service.CloudTeacherOrderService;
|
|
|
+import com.ym.mec.biz.service.ContractService;
|
|
|
+import com.ym.mec.biz.service.DegreeRegistrationService;
|
|
|
+import com.ym.mec.biz.service.GoodsService;
|
|
|
+import com.ym.mec.biz.service.HfMerchantConfigService;
|
|
|
+import com.ym.mec.biz.service.MemberRankSettingService;
|
|
|
+import com.ym.mec.biz.service.MusicGroupService;
|
|
|
+import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
|
|
|
+import com.ym.mec.biz.service.PayService;
|
|
|
+import com.ym.mec.biz.service.PracticeGroupService;
|
|
|
+import com.ym.mec.biz.service.ReplacementInstrumentActivityService;
|
|
|
+import com.ym.mec.biz.service.SporadicChargeInfoService;
|
|
|
+import com.ym.mec.biz.service.StudentInstrumentService;
|
|
|
+import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
|
|
|
+import com.ym.mec.biz.service.StudentPaymentOrderService;
|
|
|
+import com.ym.mec.biz.service.StudentPaymentRouteOrderService;
|
|
|
+import com.ym.mec.biz.service.StudentRegistrationService;
|
|
|
+import com.ym.mec.biz.service.StudentRepairService;
|
|
|
+import com.ym.mec.biz.service.SubjectChangeService;
|
|
|
+import com.ym.mec.biz.service.SysCouponCodeService;
|
|
|
+import com.ym.mec.biz.service.SysPaymentConfigService;
|
|
|
+import com.ym.mec.biz.service.SysUserCashAccountDetailService;
|
|
|
+import com.ym.mec.biz.service.SysUserCashAccountService;
|
|
|
+import com.ym.mec.biz.service.TenantConfigService;
|
|
|
+import com.ym.mec.biz.service.VipGroupActivityService;
|
|
|
+import com.ym.mec.biz.service.VipGroupService;
|
|
|
import com.ym.mec.common.controller.BaseController;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.entity.HttpResponseResult;
|
|
@@ -29,29 +131,15 @@ import com.ym.mec.thirdparty.adapay.ConfigInit;
|
|
|
import com.ym.mec.thirdparty.adapay.Payment;
|
|
|
import com.ym.mec.thirdparty.adapay.entity.BaseResult;
|
|
|
import com.ym.mec.thirdparty.adapay.entity.HfMerchantConfig;
|
|
|
-import com.ym.mec.thirdparty.yqpay.*;
|
|
|
+import com.ym.mec.thirdparty.yeepay.YeepayPaymentService;
|
|
|
+import com.ym.mec.thirdparty.yqpay.DateUtils;
|
|
|
+import com.ym.mec.thirdparty.yqpay.Msg;
|
|
|
+import com.ym.mec.thirdparty.yqpay.RsqMsg;
|
|
|
+import com.ym.mec.thirdparty.yqpay.YqPayFeignService;
|
|
|
+import com.ym.mec.thirdparty.yqpay.YqPayUtil;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
|
|
|
-import org.apache.commons.collections.CollectionUtils;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.context.annotation.Lazy;
|
|
|
-import org.springframework.http.HttpStatus;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Propagation;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
-
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.util.*;
|
|
|
-import java.util.concurrent.atomic.AtomicInteger;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
-import static com.ym.mec.biz.dal.enums.DealStatusEnum.CLOSE;
|
|
|
-import static com.ym.mec.biz.dal.enums.DealStatusEnum.SUCCESS;
|
|
|
-
|
|
|
@Service
|
|
|
public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, StudentPaymentOrder> implements StudentPaymentOrderService {
|
|
|
|
|
@@ -134,6 +222,9 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
private StudentDao studentDao;
|
|
|
@Autowired
|
|
|
private StudentPaymentOrderService studentPaymentOrderService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private YeepayPaymentService yeepayPaymentService;
|
|
|
|
|
|
|
|
|
@Autowired
|
|
@@ -203,7 +294,8 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
return notifyMap;
|
|
|
}
|
|
|
|
|
|
- Map<String, Object> payMap = payService.getPayMap(cashAmount, balance, studentPaymentOrder.getOrderNo(), baseApiUrl + "/api-student/studentOrder/callback", baseApiUrl
|
|
|
+ Map<String, Object> payMap = payService.getPayMap(cashAmount, balance, studentPaymentOrder.getOrderNo(),
|
|
|
+ baseApiUrl + "/api-student/studentOrder/callback/" + studentPaymentOrder.getOrderNo(), baseApiUrl
|
|
|
+ "/api-student/studentOrder/paymentResult?orderNo=" + studentPaymentOrder.getOrderNo(), studentPaymentOrder.getMemo(), studentPaymentOrder.getMemo(), studentPaymentOrder.getOrganId(), payReceiver);
|
|
|
|
|
|
studentPaymentOrder.setMerNos((String) payMap.get("routingMerNos"));
|
|
@@ -345,7 +437,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
HfMerchantConfig hfMerchantConfig;
|
|
|
hfMerchantConfig = payConfigMap.get(payingOrder.getTenantId());
|
|
|
if(hfMerchantConfig == null){
|
|
|
- hfMerchantConfig = hfMerchantConfigService.queryByTenantId(payingOrder.getTenantId());
|
|
|
+ hfMerchantConfig = hfMerchantConfigService.queryByTenantId(payingOrder.getTenantId(), payingOrder.getPaymentChannel());
|
|
|
if(hfMerchantConfig == null){
|
|
|
throw new BizException("机构[{}]汇付商户信息找不到", payingOrder.getTenantId());
|
|
|
}
|
|
@@ -470,39 +562,91 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
HfMerchantConfig hfMerchantConfig = null;
|
|
|
|
|
|
List<StudentPaymentRouteOrder> routeOrders = studentPaymentRouteOrderDao.getRouteOrders(order.getOrderNo());
|
|
|
- for (StudentPaymentRouteOrder routeOrder : routeOrders) {
|
|
|
- if(hfMerchantConfig == null){
|
|
|
- hfMerchantConfig = hfMerchantConfigService.queryByTenantId(routeOrder.getTenantId());
|
|
|
- }
|
|
|
- if(hfMerchantConfig == null){
|
|
|
- throw new BizException("机构[{}]汇付商户信息找不到", routeOrder.getTenantId());
|
|
|
- }
|
|
|
-
|
|
|
- Map<String, Object> divMember = new HashMap<>();
|
|
|
- divMember.put("member_id", routeOrder.getMerNo());//分佣账户
|
|
|
- divMember.put("amount", routeOrder.getRouteAmount().setScale(2, BigDecimal.ROUND_HALF_UP));//分佣金额
|
|
|
- divMember.put("fee_flag", "Y");
|
|
|
- if (routeOrder.getMerNo().equals(ConfigInit.merNo)) {
|
|
|
- divMember.put("member_id", 0);
|
|
|
+
|
|
|
+ PaymentChannelEnum paymentChannel = PaymentChannelEnum.codeOf(order.getPaymentChannel());
|
|
|
+
|
|
|
+
|
|
|
+ if(hfMerchantConfig == null){
|
|
|
+ hfMerchantConfig = hfMerchantConfigService.queryByTenantId(order.getTenantId(), order.getPaymentChannel());
|
|
|
+ }
|
|
|
+ if(hfMerchantConfig == null){
|
|
|
+ throw new BizException("机构[{}]汇付商户信息找不到", order.getTenantId());
|
|
|
+ }
|
|
|
+
|
|
|
+ if(paymentChannel == PaymentChannelEnum.ADAPAY) {
|
|
|
+ for (StudentPaymentRouteOrder routeOrder : routeOrders) {
|
|
|
+ Map<String, Object> divMember = new HashMap<>();
|
|
|
+ divMember.put("member_id", routeOrder.getMerNo());//分佣账户
|
|
|
+ divMember.put("amount", routeOrder.getRouteAmount().setScale(2, BigDecimal.ROUND_HALF_UP));//分佣金额
|
|
|
+ divMember.put("fee_flag", "Y");
|
|
|
+ if (routeOrder.getMerNo().equals(ConfigInit.merNo)) {
|
|
|
+ divMember.put("member_id", 0);
|
|
|
+ }
|
|
|
+ List<Map<String, Object>> divMembers = new ArrayList<>();
|
|
|
+ divMembers.add(divMember);
|
|
|
+
|
|
|
+ Map<String, Object> confirm = new HashMap<>();
|
|
|
+ confirm.put("payment_id", order.getTransNo());
|
|
|
+ confirm.put("order_no", idGeneratorService.generatorId("payment"));
|
|
|
+ confirm.put("confirm_amt", routeOrder.getRouteAmount());
|
|
|
+ confirm.put("div_members", divMembers);
|
|
|
+ try {
|
|
|
+ Map<String, Object> map = Payment.createConfirm(confirm, hfMerchantConfig.getMerKey());
|
|
|
+ LOGGER.info("分账信息返回:{}", map);
|
|
|
+ routeOrder.setServiceFee(new BigDecimal(map.get("fee_amt").toString()));
|
|
|
+ routeOrder.setUpdateTime(date);
|
|
|
+ studentPaymentRouteOrderDao.update(routeOrder);
|
|
|
+ } catch (Exception e) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
}
|
|
|
- List<Map<String, Object>> divMembers = new ArrayList<>();
|
|
|
- divMembers.add(divMember);
|
|
|
-
|
|
|
- Map<String, Object> confirm = new HashMap<>();
|
|
|
- confirm.put("payment_id", order.getTransNo());
|
|
|
- confirm.put("order_no", idGeneratorService.generatorId("payment"));
|
|
|
- confirm.put("confirm_amt", routeOrder.getRouteAmount());
|
|
|
- confirm.put("div_members", divMembers);
|
|
|
- try {
|
|
|
- Map<String, Object> map = Payment.createConfirm(confirm, hfMerchantConfig.getMerKey());
|
|
|
- LOGGER.info("分账信息返回:{}", map);
|
|
|
- routeOrder.setServiceFee(new BigDecimal(map.get("fee_amt").toString()));
|
|
|
- routeOrder.setUpdateTime(date);
|
|
|
+ }else if(paymentChannel == PaymentChannelEnum.YEEPAY) {
|
|
|
+
|
|
|
+ ApplyRequest request = new ApplyRequest();
|
|
|
+ request.setParentMerchantNo(null);
|
|
|
+ request.setMerchantNo(null);
|
|
|
+ request.setOrderId(order.getOrderNo());
|
|
|
+ request.setUniqueOrderNo(order.getTransNo());
|
|
|
+ request.setDivideRequestId(idGeneratorService.generatorId("payment") + "");
|
|
|
+
|
|
|
+ OrderQueryYopQueryOrderResDTOResult orderInfo = yeepayPaymentService.queryOrder(hfMerchantConfig.getAppId(), hfMerchantConfig.getPlatformPayeeMemberId(), order.getOrderNo());
|
|
|
+ if(orderInfo == null) {
|
|
|
+ throw new BizException("[{}][{}]订单查询失败", paymentChannel, order.getOrderNo());
|
|
|
+ }
|
|
|
+ BigDecimal splitAmount = orderInfo.getUnSplitAmount();
|
|
|
+
|
|
|
+ Map<String,String> divides = new HashMap<String, String>();
|
|
|
+
|
|
|
+ StudentPaymentRouteOrder routeOrder = null;
|
|
|
+ BigDecimal divideAmount = BigDecimal.ZERO;
|
|
|
+ BigDecimal dividedAmount = BigDecimal.ZERO;
|
|
|
+ for (int i = 0; i < routeOrders.size(); i++) {
|
|
|
+
|
|
|
+ routeOrder = routeOrders.get(i);
|
|
|
+
|
|
|
+ divides.put("ledgerNo", routeOrder.getMerNo());
|
|
|
+
|
|
|
+ if(i + 1 == routeOrders.size()) {
|
|
|
+ divideAmount = splitAmount.subtract(dividedAmount);
|
|
|
+ divides.put("amount", divideAmount.toPlainString());
|
|
|
+ }else {
|
|
|
+ divideAmount = routeOrder.getRouteAmount().multiply(splitAmount).divide(order.getActualAmount(), 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ divides.put("amount", divideAmount.toPlainString());
|
|
|
+ }
|
|
|
+ dividedAmount = dividedAmount.add(divideAmount);
|
|
|
+
|
|
|
+ routeOrder.setServiceFee(routeOrder.getRouteAmount().subtract(divideAmount));
|
|
|
+ routeOrder.setUpdateTime(date);
|
|
|
+
|
|
|
studentPaymentRouteOrderDao.update(routeOrder);
|
|
|
- } catch (Exception e) {
|
|
|
- continue;
|
|
|
- }
|
|
|
+ }
|
|
|
+ request.setDivideDetail(JSON.toJSONString(divides));
|
|
|
+ request.getRequestConfig().setAppKey(hfMerchantConfig.getAppId());
|
|
|
+
|
|
|
+ ApplyYopOrderDivideResDTOResult result = yeepayPaymentService.divide(request);
|
|
|
+ LOGGER.info("分账信息返回:{}", JSON.toJSONString(result));
|
|
|
}
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -810,11 +954,13 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
if (StringUtils.isBlank(transNo)) {
|
|
|
return PayStatus.FAILED;
|
|
|
}
|
|
|
+
|
|
|
+ HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(studentPaymentOrder.getTenantId(), studentPaymentOrder.getPaymentChannel());
|
|
|
+ if(hfMerchantConfig == null){
|
|
|
+ throw new BizException("机构[{}]汇付商户信息找不到", studentPaymentOrder.getTenantId());
|
|
|
+ }
|
|
|
+
|
|
|
if (StringUtils.equals(paymentChannel, "ADAPAY")) {
|
|
|
- HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(studentPaymentOrder.getTenantId());
|
|
|
- if(hfMerchantConfig == null){
|
|
|
- throw new BizException("机构[{}]汇付商户信息找不到", studentPaymentOrder.getTenantId());
|
|
|
- }
|
|
|
Map<String, Object> payment = Payment.queryPayment(transNo, hfMerchantConfig.getMerKey());
|
|
|
String status = (String) payment.get("status");
|
|
|
if (status.equals("succeeded")) {
|
|
@@ -849,6 +995,8 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ }else if (StringUtils.equals(paymentChannel, "YQPAY")) {
|
|
|
+
|
|
|
}
|
|
|
throw new BizException("支付渠道错误");
|
|
|
}
|
|
@@ -1487,7 +1635,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
public OrderCancelModel cancelOrder(StudentPaymentOrder order, String reason) {
|
|
|
OrderCancelModel model = new OrderCancelModel();
|
|
|
try {
|
|
|
- HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(order.getTenantId());
|
|
|
+ HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(order.getTenantId(), order.getPaymentChannel());
|
|
|
if(hfMerchantConfig == null){
|
|
|
throw new BizException("机构[{}]汇付商户信息找不到", order.getTenantId());
|
|
|
}
|
|
@@ -1527,7 +1675,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
throw new BizException("0元订单");
|
|
|
}
|
|
|
|
|
|
- HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(orderByOrderNo.getTenantId());
|
|
|
+ HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(orderByOrderNo.getTenantId(), orderByOrderNo.getPaymentChannel());
|
|
|
if(hfMerchantConfig == null){
|
|
|
throw new BizException("请配置机构的汇付商户信息");
|
|
|
}
|