|
@@ -3,16 +3,18 @@ package com.ym.mec.biz.service.impl;
|
|
import java.io.File;
|
|
import java.io.File;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
|
|
|
-import org.apache.commons.beanutils.BeanUtils;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
+import com.yeepay.yop.sdk.service.mer.response.RegisterSaasMerchantV2Response;
|
|
import com.ym.mec.biz.dal.config.AdapayNotifyConstants;
|
|
import com.ym.mec.biz.dal.config.AdapayNotifyConstants;
|
|
import com.ym.mec.biz.dal.dao.HfMemberDao;
|
|
import com.ym.mec.biz.dal.dao.HfMemberDao;
|
|
|
|
+import com.ym.mec.biz.dal.dto.YeepayMember;
|
|
import com.ym.mec.biz.dal.entity.HfMember;
|
|
import com.ym.mec.biz.dal.entity.HfMember;
|
|
|
|
+import com.ym.mec.biz.dal.enums.PaymentChannelEnum;
|
|
import com.ym.mec.biz.service.HfMemberService;
|
|
import com.ym.mec.biz.service.HfMemberService;
|
|
import com.ym.mec.biz.service.HfMerchantConfigService;
|
|
import com.ym.mec.biz.service.HfMerchantConfigService;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
@@ -23,6 +25,8 @@ import com.ym.mec.thirdparty.adapay.SettleAccountService;
|
|
import com.ym.mec.thirdparty.adapay.entity.AccountInfo;
|
|
import com.ym.mec.thirdparty.adapay.entity.AccountInfo;
|
|
import com.ym.mec.thirdparty.adapay.entity.EnterpriseUser;
|
|
import com.ym.mec.thirdparty.adapay.entity.EnterpriseUser;
|
|
import com.ym.mec.thirdparty.adapay.entity.HfMerchantConfig;
|
|
import com.ym.mec.thirdparty.adapay.entity.HfMerchantConfig;
|
|
|
|
+import com.ym.mec.thirdparty.yeepay.YeepayMerchantService;
|
|
|
|
+import com.ym.mec.thirdparty.yeepay.entity.MerchantInfo;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> implements HfMemberService {
|
|
public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> implements HfMemberService {
|
|
@@ -38,6 +42,9 @@ public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> impl
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private HfMerchantConfigService hfMerchantConfigService;
|
|
private HfMerchantConfigService hfMerchantConfigService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private YeepayMerchantService yeepayMerchantService;
|
|
|
|
|
|
@Value("${spring.profiles.active:dev}")
|
|
@Value("${spring.profiles.active:dev}")
|
|
private String env;
|
|
private String env;
|
|
@@ -57,48 +64,30 @@ public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> impl
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public boolean createMember(HfMember member, File file) throws Exception {
|
|
public boolean createMember(HfMember member, File file) throws Exception {
|
|
- HfMember hasMember = hfMemberDao.getByMemberId(member.getMemberId());
|
|
|
|
|
|
+ HfMember hasMember = hfMemberDao.getByMemberId(member.getMemberId(), member.getPayerName());
|
|
if (hasMember != null) {
|
|
if (hasMember != null) {
|
|
throw new BizException("商户号不能与已有商户相同,请核查");
|
|
throw new BizException("商户号不能与已有商户相同,请核查");
|
|
}
|
|
}
|
|
- hasMember = hfMemberDao.getByName(member.getName());
|
|
|
|
|
|
+ hasMember = hfMemberDao.getByName(member.getName(), member.getPayerName());
|
|
if (hasMember != null) {
|
|
if (hasMember != null) {
|
|
throw new BizException("公司名与已有公司名相同,请核查");
|
|
throw new BizException("公司名与已有公司名相同,请核查");
|
|
}
|
|
}
|
|
|
|
|
|
- Integer tenantId = member.getTenantId();
|
|
|
|
-
|
|
|
|
- HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(tenantId);
|
|
|
|
- if(hfMerchantConfig == null){
|
|
|
|
- throw new BizException("机构[{}]汇付商户信息找不到", tenantId);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- EnterpriseUser enterpriseUser = new EnterpriseUser();
|
|
|
|
- enterpriseUser.setAddress(member.getAddress());
|
|
|
|
- enterpriseUser.setAreaCode(member.getAreaCode());
|
|
|
|
- enterpriseUser.setAttachFile(file);
|
|
|
|
- enterpriseUser.setBankAcctType(member.getBankAcctType());
|
|
|
|
- enterpriseUser.setBankCode(member.getBankCode());
|
|
|
|
- enterpriseUser.setBusinessScope(member.getBusinessScope());
|
|
|
|
- enterpriseUser.setCardName(member.getCardName());
|
|
|
|
- enterpriseUser.setCardNo(member.getCardNo());
|
|
|
|
- enterpriseUser.setLegalCertId(member.getLegalCertId());
|
|
|
|
- enterpriseUser.setLegalCertIdExpires(member.getLegalCertIdExpires());
|
|
|
|
- enterpriseUser.setLegalMp(member.getLegalMp());
|
|
|
|
- enterpriseUser.setLegalPerson(member.getLegalPerson());
|
|
|
|
- enterpriseUser.setMemberId(member.getMemberId());
|
|
|
|
- enterpriseUser.setName(member.getName());
|
|
|
|
-
|
|
|
|
- if(StringUtils.equals(env, "prod")){
|
|
|
|
- enterpriseUser.setNotifyUrl(AdapayNotifyConstants.corp_member_notify_url_prod);
|
|
|
|
- }else {
|
|
|
|
- enterpriseUser.setNotifyUrl(AdapayNotifyConstants.corp_member_notify_url_test);
|
|
|
|
- }
|
|
|
|
- enterpriseUser.setProvCode(member.getProvCode());
|
|
|
|
- enterpriseUser.setSocialCreditCode(member.getSocialCreditCode());
|
|
|
|
- enterpriseUser.setSocialCreditCodeExpires(member.getSocialCreditCodeExpires());
|
|
|
|
-
|
|
|
|
- corpMemberService.create(hfMerchantConfig.getMerKey(), hfMerchantConfig.getAppId(), enterpriseUser, enterpriseUser.getNotifyUrl());
|
|
|
|
|
|
+ switch (PaymentChannelEnum.codeOf(member.getPayerName())) {
|
|
|
|
+ case ADAPAY:
|
|
|
|
+ createMemberWithAdapay(member, file);
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ case YEEPAY:
|
|
|
|
+ RegisterSaasMerchantV2Response response = createMemberWithYeepay((YeepayMember) member);
|
|
|
|
+ member.setRequestNo(response.getResult().getRequestNo());
|
|
|
|
+ member.setMemberId(response.getResult().getMerchantNo());
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ default:
|
|
|
|
+
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
|
|
Date nowDate = new Date();
|
|
Date nowDate = new Date();
|
|
member.setCreateTime(nowDate);
|
|
member.setCreateTime(nowDate);
|
|
@@ -119,7 +108,7 @@ public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> impl
|
|
|
|
|
|
Integer tenantId = member.getTenantId();
|
|
Integer tenantId = member.getTenantId();
|
|
|
|
|
|
- HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(tenantId);
|
|
|
|
|
|
+ HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(tenantId, member.getPayerName());
|
|
if(hfMerchantConfig == null){
|
|
if(hfMerchantConfig == null){
|
|
throw new BizException("机构[{}]汇付商户信息找不到", tenantId);
|
|
throw new BizException("机构[{}]汇付商户信息找不到", tenantId);
|
|
}
|
|
}
|
|
@@ -165,7 +154,7 @@ public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> impl
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public boolean mergeSettleAccount(String memberId, AccountInfo accountInfo) throws Exception {
|
|
public boolean mergeSettleAccount(String memberId, AccountInfo accountInfo) throws Exception {
|
|
- HfMember hfMember = hfMemberDao.getByMemberId(memberId);
|
|
|
|
|
|
+ HfMember hfMember = hfMemberDao.getByMemberId(memberId, PaymentChannelEnum.ADAPAY.getCode());
|
|
if (!hfMember.getStatus().equals("succeeded")) {
|
|
if (!hfMember.getStatus().equals("succeeded")) {
|
|
throw new BizException("商户审核通过,才能绑定结算卡");
|
|
throw new BizException("商户审核通过,才能绑定结算卡");
|
|
}
|
|
}
|
|
@@ -186,7 +175,7 @@ public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> impl
|
|
|
|
|
|
Integer tenantId = hfMember.getTenantId();
|
|
Integer tenantId = hfMember.getTenantId();
|
|
|
|
|
|
- HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(tenantId);
|
|
|
|
|
|
+ HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(tenantId, PaymentChannelEnum.ADAPAY.getCode());
|
|
if(hfMerchantConfig == null){
|
|
if(hfMerchantConfig == null){
|
|
throw new BizException("机构[{}]汇付商户信息找不到", tenantId);
|
|
throw new BizException("机构[{}]汇付商户信息找不到", tenantId);
|
|
}
|
|
}
|
|
@@ -205,4 +194,78 @@ public class HfMemberServiceImpl extends BaseServiceImpl<Integer, HfMember> impl
|
|
}
|
|
}
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ private boolean createMemberWithAdapay(HfMember member, File file) {
|
|
|
|
+ Integer tenantId = member.getTenantId();
|
|
|
|
+
|
|
|
|
+ HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(tenantId, member.getPayerName());
|
|
|
|
+ if (hfMerchantConfig == null) {
|
|
|
|
+ throw new BizException("机构[{}]汇付商户信息找不到", tenantId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ EnterpriseUser enterpriseUser = new EnterpriseUser();
|
|
|
|
+ enterpriseUser.setAddress(member.getAddress());
|
|
|
|
+ enterpriseUser.setAreaCode(member.getAreaCode());
|
|
|
|
+ enterpriseUser.setAttachFile(file);
|
|
|
|
+ enterpriseUser.setBankAcctType(member.getBankAcctType());
|
|
|
|
+ enterpriseUser.setBankCode(member.getBankCode());
|
|
|
|
+ enterpriseUser.setBusinessScope(member.getBusinessScope());
|
|
|
|
+ enterpriseUser.setCardName(member.getCardName());
|
|
|
|
+ enterpriseUser.setCardNo(member.getCardNo());
|
|
|
|
+ enterpriseUser.setLegalCertId(member.getLegalCertId());
|
|
|
|
+ enterpriseUser.setLegalCertIdExpires(member.getLegalCertIdExpires());
|
|
|
|
+ enterpriseUser.setLegalMp(member.getLegalMp());
|
|
|
|
+ enterpriseUser.setLegalPerson(member.getLegalPerson());
|
|
|
|
+ enterpriseUser.setMemberId(member.getMemberId());
|
|
|
|
+ enterpriseUser.setName(member.getName());
|
|
|
|
+
|
|
|
|
+ if (StringUtils.equals(env, "prod")) {
|
|
|
|
+ enterpriseUser.setNotifyUrl(AdapayNotifyConstants.corp_member_notify_url_prod);
|
|
|
|
+ } else {
|
|
|
|
+ enterpriseUser.setNotifyUrl(AdapayNotifyConstants.corp_member_notify_url_test);
|
|
|
|
+ }
|
|
|
|
+ enterpriseUser.setProvCode(member.getProvCode());
|
|
|
|
+ enterpriseUser.setSocialCreditCode(member.getSocialCreditCode());
|
|
|
|
+ enterpriseUser.setSocialCreditCodeExpires(member.getSocialCreditCodeExpires());
|
|
|
|
+
|
|
|
|
+ return corpMemberService.create(hfMerchantConfig.getMerKey(), hfMerchantConfig.getAppId(), enterpriseUser, enterpriseUser.getNotifyUrl());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private RegisterSaasMerchantV2Response createMemberWithYeepay(YeepayMember member) {
|
|
|
|
+
|
|
|
|
+ HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(member.getTenantId(), member.getPayerName());
|
|
|
|
+ if (hfMerchantConfig == null) {
|
|
|
|
+ throw new BizException("机构[{}]易宝商户信息找不到", member.getTenantId());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ MerchantInfo merchantInfo = new MerchantInfo();
|
|
|
|
+ merchantInfo.setAddress(member.getAddress());
|
|
|
|
+ merchantInfo.setBankAccountType(member.getBankAcctType());
|
|
|
|
+ merchantInfo.setBankCardNo(member.getCardNo());
|
|
|
|
+ merchantInfo.setCityCode(member.getAreaCode());
|
|
|
|
+ merchantInfo.setContactEmail(member.getContactEmail());
|
|
|
|
+ merchantInfo.setContactLicenceNo(member.getContactLicenseNo());
|
|
|
|
+ merchantInfo.setContactMobile(member.getContactMobile());
|
|
|
|
+ merchantInfo.setContactName(member.getContactName());
|
|
|
|
+ merchantInfo.setDistrictCode(member.getDistrictCode());
|
|
|
|
+ merchantInfo.setLegalLicenceBackUrl(member.getLegalLicenceBackUrl());
|
|
|
|
+ merchantInfo.setLegalLicenceFrontUrl(member.getLegalLicenceFrontUrl());
|
|
|
|
+ merchantInfo.setLegalLicenceNo(member.getLegalCertId());
|
|
|
|
+ merchantInfo.setLegalLicenceType(member.getLegalLicenceType());
|
|
|
|
+ merchantInfo.setLegalName(member.getLegalPerson());
|
|
|
|
+ merchantInfo.setLicenceNo(member.getSocialCreditCode());
|
|
|
|
+ merchantInfo.setLicenceUrl(member.getLicenceUrl());
|
|
|
|
+ merchantInfo.setMerchantName(member.getName());
|
|
|
|
+ merchantInfo.setMobile(member.getLegalMp());
|
|
|
|
+ merchantInfo.setOpenAccountLicenceUrl(member.getOpenAccountLicenceUrl());
|
|
|
|
+ merchantInfo.setProvinceCode(member.getProvCode());
|
|
|
|
+ merchantInfo.setSettlementDirection("BANKCARD");
|
|
|
|
+
|
|
|
|
+ String notifyURL = AdapayNotifyConstants.corp_member_notify_url_test;
|
|
|
|
+ if (StringUtils.equals(env, "prod")) {
|
|
|
|
+ notifyURL = AdapayNotifyConstants.corp_member_notify_url_prod;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return yeepayMerchantService.registerSaasMerchantV2(hfMerchantConfig.getAppId(), merchantInfo, notifyURL);
|
|
|
|
+ }
|
|
}
|
|
}
|