From 78d65e2ca7e84318bdf8bd11b9586dae9baccce0 Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Fri, 9 Jun 2023 09:44:20 +0800 Subject: [PATCH] update --- .../adapay/dto/AdapayMemberInfoDTO.java | 33 +++++++ .../adapay/dto/CreateSettleAccountDTO.java | 40 ++++++++ .../adapay/service/AdapayMemberService.java | 95 ++++++++++--------- 3 files changed, 122 insertions(+), 46 deletions(-) create mode 100644 jsowell-pile/src/main/java/com/jsowell/adapay/dto/CreateSettleAccountDTO.java diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/dto/AdapayMemberInfoDTO.java b/jsowell-pile/src/main/java/com/jsowell/adapay/dto/AdapayMemberInfoDTO.java index 55f97ca49..9ece25015 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/dto/AdapayMemberInfoDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/dto/AdapayMemberInfoDTO.java @@ -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; } diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/dto/CreateSettleAccountDTO.java b/jsowell-pile/src/main/java/com/jsowell/adapay/dto/CreateSettleAccountDTO.java new file mode 100644 index 000000000..1ba6fc11b --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/dto/CreateSettleAccountDTO.java @@ -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; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayMemberService.java b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayMemberService.java index 4167184a5..eae6d8632 100644 --- a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayMemberService.java +++ b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayMemberService.java @@ -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 executeUpdateMember(String member_id, String app_id) throws Exception { - log.info("=======execute update Member begin======="); - Map 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 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 executeListMember(String app_id) throws Exception { - System.out.println("=======execute list Member begin======="); - Map memberParams = new HashMap(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 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 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 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 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 settleCount = SettleAccount.create(settleCountParams); + log.info("创建汇付结算账户result:{}", settleCount); + } }