This commit is contained in:
2023-06-09 09:44:20 +08:00
parent d26f9ea21f
commit 78d65e2ca7
3 changed files with 122 additions and 46 deletions

View File

@@ -18,4 +18,37 @@ public class AdapayMemberInfoDTO {
private String gender;
// 昵称
private String nickname;
private String adapayMemberId;
//////////下面是创建结算账户参数///////////
// 银行卡号
private String cardId;
// 银行卡对应的户名
private String cardName;
// 证件号,银行账户类型为对私时,必填
private String certId;
// 证件类型仅支持00-身份证,银行账户类型为对私时,必填
private String certType;
// 手机号
private String telNo;
// 银行编码,详见附录 银行代码,银行账户类型对公时,必填
private String bankCode;
// 开户银行名称
private String bankName;
// 银行账户类型1-对公2-对私
private String bankAcctType;
// 银行账户开户银行所在省份编码 (省市编码),银行账户类型为对公时,必填
private String provCode;
// 银行账户开户银行所在地区编码(省市编码),银行账户类型为对公时,必填
private String areaCode;
}

View File

@@ -0,0 +1,40 @@
package com.jsowell.adapay.dto;
import lombok.*;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CreateSettleAccountDTO {
// 银行卡号
private String cardId;
// 银行卡对应的户名
private String cardName;
// 证件号,银行账户类型为对私时,必填
private String certId;
// 证件类型仅支持00-身份证,银行账户类型为对私时,必填
private String certType;
// 手机号
private String telNo;
// 银行编码,详见附录 银行代码,银行账户类型对公时,必填
private String bankCode;
// 开户银行名称
private String bankName;
// 银行账户类型1-对公2-对私
private String bankAcctType;
// 银行账户开户银行所在省份编码 (省市编码),银行账户类型为对公时,必填
private String provCode;
// 银行账户开户银行所在地区编码(省市编码),银行账户类型为对公时,必填
private String areaCode;
}

View File

@@ -5,7 +5,9 @@ import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.google.common.collect.Maps;
import com.huifu.adapay.core.exception.BaseAdaPayException;
import com.huifu.adapay.model.Member;
import com.huifu.adapay.model.SettleAccount;
import com.jsowell.adapay.dto.AdapayMemberInfoDTO;
import com.jsowell.adapay.vo.AdapayMemberInfoVO;
import com.jsowell.common.exception.BusinessException;
@@ -19,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
@Slf4j
@@ -78,53 +79,12 @@ public class AdapayMemberService {
return member;
}
/**
* 更新 member
*
* @param member_id 待更新的member_id
* @return 更新的member 对象
* @throws Exception 异常
*/
public Map<String, Object> executeUpdateMember(String member_id, String app_id) throws Exception {
log.info("=======execute update Member begin=======");
Map<String, Object> memberParams = Maps.newHashMap();
memberParams.put("member_id", member_id);
memberParams.put("app_id", app_id);
memberParams.put("location", "上海市徐汇区宜山路1");
memberParams.put("email", "1234@163.com");
memberParams.put("gender", "MALE");
memberParams.put("tel_no", "13153333333");
memberParams.put("nickname", "nick_name2");
log.info("更新用户,请求参数:" + JSON.toJSONString(memberParams));
Map<String, Object> member = Member.update(memberParams);
log.info("更新用户,返回参数:" + JSON.toJSONString(member));
log.info("=======execute update Member end=======");
return member;
}
/**
* 查询 member list
*
* @param app_id app_id
* @return 查询的member list
* @throws Exception 异常
* 创建汇付会员
* @param dto
* @throws Exception
*/
public Map<String, Object> executeListMember(String app_id) throws Exception {
System.out.println("=======execute list Member begin=======");
Map<String, Object> memberParams = new HashMap<String, Object>(2);
memberParams.put("page_index", "1");
memberParams.put("app_id", app_id);
memberParams.put("page_size", "20");
memberParams.put("created_gte", String.valueOf(System.currentTimeMillis() - 5 * 60 * 1000));
memberParams.put("created_lte", String.valueOf(System.currentTimeMillis()));
System.out.println("查询用户列表,请求参数:" + JSON.toJSONString(memberParams));
Map<String, Object> member = Member.queryList(memberParams);
System.out.println("查询用户列表,返回参数:" + JSON.toJSONString(member));
System.out.println("=======execute list Member end=======");
return member;
}
public void createMember(AdapayMemberInfoDTO dto) throws Exception {
log.info("=======execute CreateMember begin=======");
Map<String, Object> memberParams = Maps.newHashMap();
@@ -139,7 +99,7 @@ public class AdapayMemberService {
log.info("创建用户,返回参数:" + JSON.toJSONString(member));
log.info("=======execute CreateMember end=======");
if (member == null || StringUtils.equals((String)member.get("status"), "failed")) {
if (member == null || StringUtils.equals((String) member.get("status"), "failed")) {
String errorMsg = member == null ? "创建汇付用户失败" : (String) member.get("error_msg");
throw new BusinessException("00500001", errorMsg);
}
@@ -150,8 +110,17 @@ public class AdapayMemberService {
AdapayMemberInfo adapayMemberInfo = mapper.readValue(jsonObject.toJSONString(), AdapayMemberInfo.class);
adapayMemberInfo.setMerchantId(dto.getMerchantId());
adapayMemberInfoService.insert(adapayMemberInfo);
dto.setAdapayMemberId(adapayMemberInfo.getMemberId());
// 创建结算账户
createSettleAccount(dto);
}
/**
* 查询汇付会员信息
* @param merchantId
* @return
*/
public AdapayMemberInfoVO selectAdapayMember(String merchantId) {
AdapayMemberInfo adapayMemberInfo = adapayMemberInfoService.selectByMerchantId(merchantId);
if (adapayMemberInfo == null) {
@@ -161,4 +130,38 @@ public class AdapayMemberService {
BeanUtils.copyProperties(adapayMemberInfo, resultVO);
return resultVO;
}
/**
* 创建结算账户
*/
public void createSettleAccount(AdapayMemberInfoDTO dto) throws BaseAdaPayException {
Map<String, Object> accountInfo = Maps.newHashMap();
// 银行卡号
accountInfo.put("card_id", dto.getCardId());
// 银行卡对应的户名
accountInfo.put("card_name", dto.getCardName());
// 证件号,银行账户类型为对私时,必填
accountInfo.put("cert_id", dto.getCertId());
// 证件类型仅支持00-身份证,银行账户类型为对私时,必填
accountInfo.put("cert_type", "00");
// 手机号
accountInfo.put("tel_no", dto.getTelNo());
// 银行编码,详见附录 银行代码,银行账户类型对公时,必填
accountInfo.put("bank_code", dto.getBankCode());
// 银行账户类型1-对公2-对私
accountInfo.put("bank_acct_type", dto.getBankAcctType());
// 银行账户开户银行所在省份编码 (省市编码),银行账户类型为对公时,必填
accountInfo.put("prov_code", dto.getAreaCode());
// 银行账户开户银行所在地区编码(省市编码),银行账户类型为对公时,必填
accountInfo.put("area_code", dto.getAreaCode());
Map<String, Object> settleCountParams = Maps.newHashMap();
settleCountParams.put("member_id", dto.getAdapayMemberId());
settleCountParams.put("app_id", ADAPAY_APP_ID);
// channel String Y 目前仅支持bank_account银行卡
settleCountParams.put("channel", "bank_account");
settleCountParams.put("account_info", accountInfo);
Map<String, Object> settleCount = SettleAccount.create(settleCountParams);
log.info("创建汇付结算账户result:{}", settleCount);
}
}