提交实体类

This commit is contained in:
2023-06-29 16:16:25 +08:00
parent e6993927fc
commit 199c73c66e
8 changed files with 282 additions and 13 deletions

View File

@@ -10,7 +10,9 @@ import com.jsowell.adapay.service.AdapayMemberService;
import com.jsowell.adapay.vo.AdapayAccountBalanceVO;
import com.jsowell.common.core.controller.BaseController;
import com.jsowell.common.core.domain.AjaxResult;
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -37,6 +39,9 @@ public class AdapayMemberController extends BaseController {
logger.info("创建结算账户接口 param:{}", JSON.toJSONString(dto));
AjaxResult result;
try {
if (StringUtils.isBlank(dto.getMerchantId())) {
throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR);
}
adapayMemberService.createSettleAccount(dto);
result = AjaxResult.success();
} catch (BusinessException e) {
@@ -56,10 +61,16 @@ public class AdapayMemberController extends BaseController {
public AjaxResult selectAdapayMember(@RequestBody AdapayMemberInfoDTO dto) {
AjaxResult result;
try {
if (StringUtils.isBlank(dto.getMerchantId())) {
throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR);
}
Map<String, Object> map = adapayMemberService.selectAdapayMember(dto.getMerchantId());
result = AjaxResult.success(map);
} catch (BusinessException e) {
logger.warn("查询汇付会员接口异常warn", e);
result = AjaxResult.error(e.getMessage());
} catch (Exception e) {
logger.error("查询汇付会员接口异常", e);
logger.error("查询汇付会员接口异常error", e);
result = AjaxResult.error("查询汇付会员接口异常");
}
return result;

View File

@@ -225,4 +225,10 @@ public class Constants {
// N-否
public static final String N = "N";
// 汇付个人用户前缀
public static final String ADAPAY_MEMBER_PREFIX = "AM";
// 汇付企业用户前缀
public static final String ADAPAY_CORP_MEMBER_PREFIX = "ACM";
}

View File

@@ -0,0 +1,41 @@
package com.jsowell.adapay.common;
import lombok.Getter;
import lombok.Setter;
/**
* 结算账户信息
*/
@Getter
@Setter
public class AccountInfo {
// 银行卡号
private String card_id;
// 银行卡对应的户名
private String card_name;
// 证件号,银行账户类型为对私时,必填
private String cert_id;
// 证件类型仅支持00-身份证,银行账户类型为对私时,必填
private String cert_type;
// 手机号
private String tel_no;
// 银行编码,详见附录 银行代码,银行账户类型对公时,必填
private String bank_code;
// 开户银行名称
private String bank_name;
// 银行账户类型1-对公2-对私
private String bank_acct_type;
// 银行账户开户银行所在省份编码 (省市编码),银行账户类型为对公时,必填
private String prov_code;
// 银行账户开户银行所在地区编码(省市编码),银行账户类型为对公时,必填
private String area_code;
}

View File

@@ -0,0 +1,101 @@
package com.jsowell.adapay.common;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class CorpMember {
// 控制台 主页面应用的app_id
private String app_id;
// 请求订单号只能为英文、数字或者下划线的一种或多种组合保证在app_id下唯一
private String order_no;
// 商户下的用户id只能为英文、数字或者下划线的一种或多种组合保证在app_id下唯一
private String member_id;
// 企业名称
private String name;
// 省份编码 (省市编码)
private String prov_code;
// 地区编码 (省市编码)
private String area_code;
// 统一社会信用码
private String social_credit_code;
// 统一社会信用证有效期格式YYYYMMDD例如20190909
private String social_credit_code_expires;
// 经营范围
private String business_scope;
// 法人姓名
private String legal_person;
// 法人身份证号码
private String legal_cert_id;
// 法人身份证有效期格式YYYYMMDD例如20190909
private String legal_cert_id_expires;
// 法人手机号
private String legal_mp;
// 企业地址
private String address;
// 邮编
private String zip_code;
// 企业电话
private String telphone;
// 企业邮箱
private String email;
// 上传附件,传入的中文文件名称为 UTF-8 字符集 URLEncode 编码后的字符串。
// 内容须包含三证合一证件照、法人身份证正面照、法人身份证反面照、开户银行许可证照。 压缩 zip包后上
private String attach_file;
// 银行代码,如果需要自动开结算账户,本字段必填(详见附录 银行代码)
private String bank_code;
// 银行账户类型1-对公2-对私,如果需要自动开结算账户,本字段必填
private String bank_acct_type;
// 银行卡号,如果需要自动开结算账户,本字段必填
private String card_no;
// 银行卡对应的户名,如果需要自动开结算账户,本字段必填
private String card_name;
// SettleAccount对象 列表
private List<SettleAccount> settle_accounts;
// 审核状态状态包括A-待审核B-审核失败C-开户失败D-开户成功但未创建结算账户E-开户和创建结算账户成功
private String audit_state;
// 审核结果描述
private String audit_desc;
// 当前交易状态,参见 状态 说明
private String status;
// 错误码,详见 错误
private String error_code;
// 错误描述,详见 错误
private String error_msg;
// 错误类型,详见 错误
private String error_type;
// 当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误
private String invalid_param;
}

View File

@@ -0,0 +1,23 @@
package com.jsowell.adapay.common;
import lombok.Getter;
import lombok.Setter;
/**
* 分账对象信息
*/
@Getter
@Setter
public class DivMembers {
// 分账用户 Member对象 的 id若是商户本身时传入0
private String member_id;
// 分账金额精确到分如0.501.00等,分账总金额必须等于主交易金额,金额不能为0.00
private String amount;
// 是否手续费承担方N-否Y-是,手续费承担方有且只能有一个
private String fee_flag;
// 控制台 主页面应用的app_id不上送默认取商户自身app_id
private String app_id;
}

View File

@@ -0,0 +1,44 @@
package com.jsowell.adapay.common;
import lombok.Getter;
import lombok.Setter;
/**
* 结算账户
*/
@Getter
@Setter
public class SettleAccount {
// 由 Adapay 生成的结算账户对象 id
private String id;
// 结算账户对象settle_account
private String object;
// 目前仅支持bank_account银行卡
private String channel;
// 创建时的时间戳
private String create_time;
// 是否 prod模式true 是 prod模式false 是 mock模式
private String prod_mode;
// 结算账户信息,参见 结算账户信息对象
private String account_info;
// 当前交易状态,参见 状态 说明
private String status;
// 错误码,详见 错误
private String error_code;
// 错误描述,详见 错误
private String error_msg;
// 错误类型,详见 错误
private String error_type;
// 当发生参数错误时返回具体的参数名,便于定位错误原因,详见 错误
private String invalid_param;
}

View File

@@ -69,7 +69,7 @@ public class AdapayMemberService {
}
log.info("=======execute CreateMember begin=======");
Map<String, Object> memberParams = Maps.newHashMap();
String adapayMemberId = "AM" + IdUtils.getMemberId();
String adapayMemberId = Constants.ADAPAY_MEMBER_PREFIX + IdUtils.getMemberId();
memberParams.put("member_id", adapayMemberId);
memberParams.put("app_id", ADAPAY_APP_ID);
memberParams.put("location", dto.getLocation());
@@ -154,18 +154,31 @@ public class AdapayMemberService {
}
String adapayMemberId = adapayMemberAccount.getAdapayMemberId();
String settleAccountId = adapayMemberAccount.getSettleAccountId();
String bankAcctType;
if (StringUtils.startsWith(adapayMemberId, Constants.ADAPAY_MEMBER_PREFIX)) {
bankAcctType = Constants.ONE;
// 查询个人用户
AdapayMemberInfoVO adapayMemberInfoVO = queryAdapayMemberInfo(adapayMemberId);
if (adapayMemberInfoVO != null) {
adapayMemberInfoVO.setMerchantId(merchantId);
}
AdapaySettleAccountVO adapaySettleAccountVO = queryAdapaySettleAccount(adapayMemberId, adapayMemberAccount.getSettleAccountId());
if (adapaySettleAccountVO != null) {
adapaySettleAccountVO.setMerchantId(merchantId);
}
map.put("adapayMember", adapayMemberInfoVO);
map.put("settleAccountList", Lists.newArrayList(adapaySettleAccountVO));
AdapayMemberInfoVO adapayMemberInfoVO = queryAdapayMemberInfo(adapayMemberId);
if (adapayMemberInfoVO != null) {
adapayMemberInfoVO.setMerchantId(merchantId);
} else {
bankAcctType = Constants.TWO;
// 查询企业用户
queryCorpAdapayMemberInfo(adapayMemberId);
}
AdapaySettleAccountVO adapaySettleAccountVO = queryAdapaySettleAccount(adapayMemberId, settleAccountId);
if (adapaySettleAccountVO != null) {
adapaySettleAccountVO.setMerchantId(merchantId);
}
map.put("adapayMember", adapayMemberInfoVO);
map.put("settleAccountList", Lists.newArrayList(adapaySettleAccountVO));
map.put("bankAcctType", bankAcctType);
return map;
}
@@ -198,6 +211,24 @@ public class AdapayMemberService {
return resultVO;
}
/**
* 查询企业用户信息
*/
public AdapayMemberInfoVO queryCorpAdapayMemberInfo(String adapayMemberId) throws BaseAdaPayException {
Map<String, Object> memberParams = Maps.newHashMap();
memberParams.put("member_id", adapayMemberId);
memberParams.put("app_id", ADAPAY_APP_ID);
Map<String, Object> member = CorpMember.query(memberParams);
if (member == null || member.isEmpty() || !"succeeded".equals(member.get("status"))) {
return null;
}
return null;
}
/**
* 查询汇付结算账户信息
*/
@@ -302,7 +333,7 @@ public class AdapayMemberService {
*/
public void createCorpMember(CreateSettleAccountDTO dto) throws BaseAdaPayException, IOException {
Map<String, Object> memberParams = Maps.newHashMap();
String adapayMemberId = "ACM" + IdUtils.getMemberId();
String adapayMemberId = Constants.ADAPAY_CORP_MEMBER_PREFIX + IdUtils.getMemberId();
memberParams.put("member_id", adapayMemberId);
memberParams.put("app_id", ADAPAY_APP_ID);
memberParams.put("order_no", "jsdk_order" + System.currentTimeMillis());

View File

@@ -0,0 +1,12 @@
package com.jsowell.adapay.vo;
import lombok.*;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AdapayCorpMemberInfoVO {
}