|
@@ -5,22 +5,30 @@ package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
-import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.service.additional.update.impl.LambdaUpdateChainWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.microsvc.toolkit.middleware.payment.common.api.BasePaymentService;
|
|
|
+import com.microsvc.toolkit.middleware.payment.common.api.PaymentServiceContext;
|
|
|
+import com.microsvc.toolkit.middleware.payment.common.api.entity.PaymentMerchant;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.PaymentMerchantConfig;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.SysArea;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
|
|
|
import com.yonge.cooleshow.biz.dal.mapper.SysAreaMapper;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.PaymentMerchantConfigService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.SysConfigService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
|
|
|
+import com.yonge.cooleshow.common.constant.SysConfigConstant;
|
|
|
+import com.yonge.cooleshow.common.enums.EPayerType;
|
|
|
+import com.yonge.toolset.base.exception.BizException;
|
|
|
import com.yonge.toolset.base.util.StringUtil;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.beans.BeanUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.TenantMember;
|
|
|
import com.yonge.cooleshow.biz.dal.wrapper.TenantMemberWrapper;
|
|
|
import com.yonge.cooleshow.biz.dal.mapper.TenantMemberMapper;
|
|
|
import com.yonge.cooleshow.biz.dal.service.TenantMemberService;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -46,11 +54,13 @@ public class TenantMemberServiceImpl extends ServiceImpl<TenantMemberMapper, Ten
|
|
|
private SysAreaMapper sysAreaMapper;
|
|
|
|
|
|
@Autowired
|
|
|
- private TenantInfoService tenantInfoService;
|
|
|
+ private PaymentServiceContext paymentServiceContext;
|
|
|
|
|
|
@Autowired
|
|
|
- private TenantMemberMapper tenantMemberMapper;
|
|
|
+ private PaymentMerchantConfigService paymentMerchantConfigService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SysConfigService sysConfigService;
|
|
|
|
|
|
/**
|
|
|
* 查询详情
|
|
@@ -105,24 +115,115 @@ public class TenantMemberServiceImpl extends ServiceImpl<TenantMemberMapper, Ten
|
|
|
* @return Boolean
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean add(TenantMemberWrapper.InsertOrUpdateTenantMember tenantMember) {
|
|
|
- /*//获得机构名称
|
|
|
- Long tenantId = tenantMember.getTenantId();
|
|
|
- TenantInfo info = tenantInfoService.lambdaQuery().eq(TenantInfo::getId, tenantId).list().get(0);
|
|
|
- String name = info.getName();
|
|
|
- tenantMember.setName();*/
|
|
|
+
|
|
|
+ PaymentMerchant.MerchantConfig merchantConfig = getMerchantConfig(tenantMember.getPayerName());
|
|
|
+ tenantMember.setRequestNo(IdWorker.getIdStr());
|
|
|
+
|
|
|
+ // 创建账户
|
|
|
+ BasePaymentService paymentService = paymentServiceContext.getPaymentService(tenantMember.getPayerName());
|
|
|
+
|
|
|
+ PaymentMerchant.MerchantMember merchantMember = getMerchantMember(tenantMember);
|
|
|
+ paymentService.createPaymentCorpMember(merchantConfig,merchantMember);
|
|
|
|
|
|
return this.save(JSON.parseObject(tenantMember.jsonString(), TenantMember.class));
|
|
|
}
|
|
|
|
|
|
+ private PaymentMerchant.MerchantMember getMerchantMember(TenantMemberWrapper.InsertOrUpdateTenantMember tenantMember) {
|
|
|
+ PaymentMerchant.MerchantMember merchantMember = PaymentMerchant.MerchantMember.builder()
|
|
|
+ .memberId(tenantMember.getMemberId())
|
|
|
+ .merchantName(tenantMember.getName())
|
|
|
+ .merchantType(tenantMember.getMerchantType())
|
|
|
+ .provinceCode(tenantMember.getProvCode())
|
|
|
+ .cityCode(tenantMember.getAreaCode())
|
|
|
+ .districtCode(tenantMember.getDistrictCode())
|
|
|
+ .socialCreditCode(tenantMember.getSocialCreditCode())
|
|
|
+ .socialCreditCodeExpires(tenantMember.getSocialCreditCodeExpires())
|
|
|
+ .businessScope(tenantMember.getBusinessScope())
|
|
|
+ .legalName(tenantMember.getLegalPerson())
|
|
|
+ .legalLicenceNo(tenantMember.getLegalCertId())
|
|
|
+ .legalCertIdExpires(tenantMember.getLegalCertIdExpires())
|
|
|
+ .mobile(tenantMember.getLegalMp())
|
|
|
+ .legalLicenceType(tenantMember.getLegalLicenceType())
|
|
|
+ .legalLicenceFrontUrl(tenantMember.getLegalLicenceFrontUrl())
|
|
|
+ .legalLicenceBackUrl(tenantMember.getLegalLicenceBackUrl())
|
|
|
+ .address(tenantMember.getAddress())
|
|
|
+ .attachFile(tenantMember.getFile())
|
|
|
+ .bankCode(tenantMember.getBankCode())
|
|
|
+ .bankAccountType(tenantMember.getBankAcctType())
|
|
|
+ .bankCardNo(tenantMember.getBankCode())
|
|
|
+ .cardName(tenantMember.getCardName())
|
|
|
+ .zipCode(tenantMember.getZipCode())
|
|
|
+ .requestNo(tenantMember.getRequestNo())
|
|
|
+ .licenceNo(tenantMember.getSocialCreditCode())
|
|
|
+ .licenceUrl(tenantMember.getLicenceUrl())
|
|
|
+ .openAccountLicenceUrl(tenantMember.getOpenAccountLicenceUrl())
|
|
|
+ .contactName(tenantMember.getContactName())
|
|
|
+ .contactMobile(tenantMember.getContactMobile())
|
|
|
+ .contactEmail(tenantMember.getContactEmail())
|
|
|
+ .contactLicenceNo(tenantMember.getContactLicenceNo())
|
|
|
+ .primaryIndustryCategory("120")
|
|
|
+ .secondaryIndustryCategory("120004")
|
|
|
+ .settlementDirection("BANKCARD")
|
|
|
+ .build();
|
|
|
+ if (tenantMember.getPayerType().equals(EPayerType.ADAPAY)) {
|
|
|
+ merchantMember.setNotifyUrl(sysConfigService.findConfigValue(SysConfigConstant.SUB_ACCOUNT_CREATE_CALLBACK_URL +
|
|
|
+ "/" + EPayerType.ADAPAY.getCode()));
|
|
|
+ } else if (tenantMember.getPayerType().equals(EPayerType.YEEPAY)) {
|
|
|
+ merchantMember.setNotifyUrl(sysConfigService.findConfigValue(SysConfigConstant.SUB_ACCOUNT_CREATE_CALLBACK_URL +
|
|
|
+ "/" + EPayerType.YEEPAY.getCode()+"/"+tenantMember.getRequestNo()));
|
|
|
+ }
|
|
|
+ return merchantMember;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private PaymentMerchant.MerchantConfig getMerchantConfig(String paymentVerdor) {
|
|
|
+ // 注册对应的子账户
|
|
|
+ PaymentMerchantConfig merchantConfig = paymentMerchantConfigService.getByPaymentVendor(paymentVerdor);
|
|
|
+
|
|
|
+ if (merchantConfig == null) {
|
|
|
+ throw new BizException("支付渠道不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ return PaymentMerchant.MerchantConfig.builder()
|
|
|
+ .payerName(paymentVerdor)
|
|
|
+ .appId(merchantConfig.getAppId())
|
|
|
+ .merchantKey(merchantConfig.getMerKey())
|
|
|
+ .apiKey(merchantConfig.getApiKey())
|
|
|
+ .rsaPrivateKey(merchantConfig.getRsaPrivateKey())
|
|
|
+ .rsaPublicKey(merchantConfig.getRsaPublicKey())
|
|
|
+ .wxAppId(merchantConfig.getWxAppId())
|
|
|
+ .wxAppSecret(merchantConfig.getWxAppSecret())
|
|
|
+ .alipayAppId(merchantConfig.getAlipayAppId())
|
|
|
+ .alipayPublicKey(merchantConfig.getAlipayPublicKey())
|
|
|
+ .platformPayeeMemberId(merchantConfig.getPlatformPayeeMemberId())
|
|
|
+ .build();
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 更新
|
|
|
* @param tenantMember TenantMemberWrapper.TenantMember
|
|
|
* @return Boolean
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean update(TenantMemberWrapper.InsertOrUpdateTenantMember tenantMember){
|
|
|
|
|
|
+ TenantMember member = this.getById(tenantMember.getId());
|
|
|
+
|
|
|
+ PaymentMerchant.MerchantConfig merchantConfig = getMerchantConfig(tenantMember.getPayerName());
|
|
|
+
|
|
|
+ // 创建账户
|
|
|
+ BasePaymentService paymentService = paymentServiceContext.getPaymentService(tenantMember.getPayerName());
|
|
|
+
|
|
|
+ PaymentMerchant.MerchantMember merchantMember = getMerchantMember(tenantMember);
|
|
|
+
|
|
|
+ if (member.getPayerName().equals(tenantMember.getPayerName())) {
|
|
|
+ paymentService.updatePaymentCorpMember(merchantConfig, merchantMember);
|
|
|
+ } else {
|
|
|
+ paymentService.createPaymentCorpMember(merchantConfig, merchantMember);
|
|
|
+ }
|
|
|
|
|
|
return this.updateById(JSON.parseObject(tenantMember.jsonString(), TenantMember.class));
|
|
|
}
|
|
@@ -147,4 +248,21 @@ public class TenantMemberServiceImpl extends ServiceImpl<TenantMemberMapper, Ten
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public TenantMember getByMemberId(String memberId, EPayerType payerType) {
|
|
|
+ return this.lambdaQuery()
|
|
|
+ .eq(TenantMember::getMemberId, memberId)
|
|
|
+ .eq(TenantMember::getPayerName, payerType.name())
|
|
|
+ .last("limit 1")
|
|
|
+ .one();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public TenantMember getByRequestNo(String requestNo) {
|
|
|
+ return this.lambdaQuery()
|
|
|
+ .eq(TenantMember::getRequestNo, requestNo)
|
|
|
+ .last("limit 1")
|
|
|
+ .one();
|
|
|
+ }
|
|
|
+
|
|
|
}
|