feat:钱包接口对接

This commit is contained in:
苏竹红
2025-11-13 18:44:19 +08:00
parent c99c4375d7
commit 9f042b9dbd
34 changed files with 1606 additions and 197 deletions

View File

@@ -0,0 +1,15 @@
package com.cool.store.dto.wallet;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 16:06
* @Version 1.0
*/
@Data
public class AccountAuthenticationDTO {
private Integer accountStatus;
}

View File

@@ -0,0 +1,64 @@
package com.cool.store.dto.wallet;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 门店签约人账户
* @Author suzhuhong
* @Date 2025/11/13 16:54
* @Version 1.0
*/
@Data
public class AccountInfoDTO {
@ApiModelProperty(value = "结算卡业务类型 枚举值1对公 2对私", required = true)
private String accountType;
@ApiModelProperty(value = "营业执照号码")
private String licenseNo;
@ApiModelProperty(value = "工商注册名称")
private String licenseName;
@ApiModelProperty(value = "法人姓名")
private String legalName;
@ApiModelProperty(value = "法人证件号码")
private String legalNo;
@ApiModelProperty(value = "法人联系电话")
private String legalPhone;
@ApiModelProperty(value = "门店编号", required = true)
private String storeSn;
@ApiModelProperty(value = "账户编号", required = true)
private String accountNo;
@ApiModelProperty(value = "账户名称", required = true)
private String accountName;
@ApiModelProperty(value = "账户别名", required = true)
private String accountAliasName;
@ApiModelProperty(value = "结算银行卡号", required = true)
private String accountCardNo;
@ApiModelProperty(value = "结算卡银行预留手机号", required = true)
private String accountPhone;
@ApiModelProperty(value = "开户支行名称", required = true)
private String bankName;
@ApiModelProperty(value = "支行编号", required = true)
private String bankNo;
@ApiModelProperty(value = "账户状态 1:待提交 2:待鉴权 3:鉴权中 4:开通", required = true)
private Integer accountStatus;
@ApiModelProperty(value = "账户余额", required = true)
private String totalAmount;
}

View File

@@ -0,0 +1,15 @@
package com.cool.store.dto.wallet;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 14:58
* @Version 1.0
*/
@Data
public class AccountNoDTO {
private String accountNo;
}

View File

@@ -0,0 +1,17 @@
package com.cool.store.dto.wallet;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 16:09
* @Version 1.0
*/
@Data
public class AccountVerifyDTO {
private String outStoreId;
private Integer accountStatus;
}

View File

@@ -0,0 +1,17 @@
package com.cool.store.dto.wallet;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 14:59
* @Version 1.0
*/
@Data
public class AddTagDTO {
private Integer status;
private Integer addTagType;
}

View File

@@ -0,0 +1,25 @@
package com.cool.store.dto.wallet;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 10:54
* @Version 1.0
*/
@Data
public class BankDTO {
@ApiModelProperty("银行编号")
private String headCode;
@ApiModelProperty("银行名称")
private String headName;
@ApiModelProperty("支行号")
private String branchCode;
@ApiModelProperty("支行名称")
private String branchName;
@ApiModelProperty("支行地址")
private String branchAddress;
}

View File

@@ -0,0 +1,20 @@
package com.cool.store.dto.wallet;
import com.cool.store.request.wallet.WalletBasicPageInfo;
import lombok.Data;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2025/11/13 14:36
* @Version 1.0
*/
@Data
public class BankListDTO {
WalletBasicPageInfo page;
List<BankDTO> pageData;
}

View File

@@ -0,0 +1,53 @@
package com.cool.store.dto.wallet;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 17:15
* @Version 1.0
*/
@Data
public class LargePaymentDTO {
@ApiModelProperty(value = "外部门店唯一标识", required = true)
private String outStoreId;
@ApiModelProperty(value = "请求预支付Id", required = true)
private String paymentId;
@ApiModelProperty(value = "收款码唯一流水号", required = true)
private String transOrderTrace;
@ApiModelProperty(value = "付款人账户编号", required = true)
private String payerAcctNo;
@ApiModelProperty(value = "付款人户名", required = true)
private String payerAcctName;
@ApiModelProperty(value = "付款银行名称")
private String payerBankName;
@ApiModelProperty(value = "付款银行行号")
private String payerBankNo;
@ApiModelProperty(value = "充值金额", required = true)
private String amt;
@ApiModelProperty(value = "收款账号", required = true)
private String payeeAccNo;
@ApiModelProperty(value = "收款账户名称", required = true)
private String payeeAccName;
@ApiModelProperty(value = "收款银行名称", required = true)
private String payeeBankName;
@ApiModelProperty(value = "收款银行行号", required = true)
private String payeeBankNo;
@ApiModelProperty(value = "账号过期时间")
private String expireTime;
}

View File

@@ -0,0 +1,74 @@
package com.cool.store.dto.wallet;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Pattern;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2025/11/13 18:23
* @Version 1.0
*/
@Data
public class PaymentDTO {
@ApiModelProperty(name = "外部门店唯一标识", required = true)
private String outStoreId;
@ApiModelProperty(name = "请求预支付Id", required = true)
private String paymentId;
@ApiModelProperty(name = "收款码唯一流水号", required = true)
private String transOrderTrace;
@ApiModelProperty(name = "金额", required = true)
private String totalFee;
@ApiModelProperty(name = "状态:1-成功 2-失败 3-支付中 4-撤销", required = true)
private Integer orderStatus;
@ApiModelProperty(name = "利楚订单号(商户订单号)")
private String outTradeNo;
@ApiModelProperty(name = "通道订单号(银行订单号)")
private String channelOrderNo;
@ApiModelProperty(name = "付款人账号")
private String payerAccNo;
@ApiModelProperty(name = "付款人户名")
private String payerAccName;
@ApiModelProperty(name = "付款人银行名称")
private String payerBankName;
@ApiModelProperty(name = "付款银行行号")
private String payerBankNo;
@ApiModelProperty(name = "收款账号", required = true)
private String payeeAccNo;
@ApiModelProperty(name = "收款账户名称", required = true)
private String payeeAccName;
@ApiModelProperty(name = "收款银行名称", required = true)
private String payeeBankName;
@ApiModelProperty(name = "收款银行行号", required = true)
private String payeeBankNo;
@ApiModelProperty(name = "账号过期时间")
private String expireTime;
@ApiModelProperty(name = "创建时间")
private String createTime;
@ApiModelProperty(name = "付款明细")
private List<PaymentDetailDTO> payList;
}

View File

@@ -0,0 +1,32 @@
package com.cool.store.dto.wallet;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 17:38
* @Version 1.0
*/
@Data
public class PaymentDetailDTO {
@ApiModelProperty(value = "打款金额", required = true)
private String tranAmt;
@ApiModelProperty(value = "付款人账号", required = true)
private String payerAccountName;
@ApiModelProperty(value = "付款时间", required = true)
private String paySuccessTime;
@ApiModelProperty(value = "付款银行账号", required = true)
private String payerAccountBankNo;
@ApiModelProperty(value = "银行受理时间", required = true)
private String tranSeqNo;
@ApiModelProperty(value = "付款账号", required = true)
private String payerAccountNo;
}

View File

@@ -0,0 +1,19 @@
package com.cool.store.dto.wallet;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 14:54
* @Version 1.0
*/
@Data
public class StoreAccountDTO {
/**
* 营帐通的账户ID
*/
private String accountId;
}

View File

@@ -0,0 +1,51 @@
package com.cool.store.request.wallet;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
/**
* @Author suzhuhong
* @Date 2025/11/13 14:09
* @Version 1.0
*/
@Data
@ApiModel(description = "营业执照信息请求参数")
public class AccountAddTagRequest {
@ApiModelProperty(value = "外部门店唯一标识", required = true)
@NotBlank(message = "外部门店唯一标识不能为空")
private String outStoreId;
@ApiModelProperty(value = "营业执照号码", required = true)
@NotBlank(message = "营业执照号码不能为空")
private String licenseNo;
@ApiModelProperty(value = "工商注册名称", required = true)
@NotBlank(message = "工商注册名称不能为空")
private String licenseName;
@ApiModelProperty(value = "营业执照到期日格式YYYY-MM-DD如果证件到期日期为“长期”则传“2999-12-31”")
private String licenseExpire;
@ApiModelProperty(value = "法人姓名", required = true)
@NotBlank(message = "法人姓名不能为空")
private String legalName;
@ApiModelProperty(value = "法人证件号码", required = true)
@NotBlank(message = "法人证件号码不能为空")
private String legalNo;
@ApiModelProperty(value = "证件发证日期 yyyy-MM-dd")
private String idCardStartDate;
@ApiModelProperty(value = "证件到期日期 yyyy-MM-dd如果证件到期日期为“长期”则传“2999-12-31”")
private String idCardEndDate;
@ApiModelProperty(value = "法人联系电话", required = true)
@NotBlank(message = "法人联系电话不能为空")
private String legalPhone;
}

View File

@@ -0,0 +1,17 @@
package com.cool.store.request.wallet;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 16:08
* @Version 1.0
*/
@Data
public class AccountVerifyRequest {
private String outStoreId;
private String verifyNo;
}

View File

@@ -0,0 +1,43 @@
package com.cool.store.request.wallet;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 13:49
* @Version 1.0
*/
@Data
public class CreateStoreAndAccountRequest {
@ApiModelProperty(name = "CRM门店编号", required = true)
private String outStoreId;
@ApiModelProperty(name = "组织编号", required = true)
private String orgCode;
@ApiModelProperty(name = "组织名称", required = true)
private String orgName;
@ApiModelProperty(name = "联系电话", required = true)
private String phoneNumber;
@ApiModelProperty(name = "结算卡业务类型 枚举值1对公 2对私", required = true)
private Integer accountType;
@ApiModelProperty(name = "开户类型:1企业 2个体工商户3个人(小微商户) ", required = true)
private Integer businessType;
@ApiModelProperty(name = "法人姓名", required = true)
private String legalName;
@ApiModelProperty(name = "法人证件号码", required = true)
private String legalNo;
@ApiModelProperty(name = "账户简称", required = true)
private String accountAliasName;
@ApiModelProperty(name = "结算银行卡号", required = true)
private String accountCardno;
@ApiModelProperty(name = "结算卡银行预留手机号", required = true)
private String accountPhone;
@ApiModelProperty(name = "支行编号", required = true)
private String bankNo;
@ApiModelProperty(name = "开户支行名称", required = true)
private String bankName;
}

View File

@@ -0,0 +1,60 @@
package com.cool.store.request.wallet;
import com.sun.istack.NotNull;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author suzhuhong
* @Date 2025/11/13 14:07
* @Version 1.0
*/
@Data
public class CreateStoreRequest {
@ApiModelProperty(value = "CRM门店编号", required = true)
@NotBlank(message = "CRM门店编号不能为空")
private String outStoreId;
@ApiModelProperty(value = "门店编号", required = true)
@NotBlank(message = "门店编号不能为空")
private String storeSn;
@ApiModelProperty(value = "门店名称", required = true)
@NotBlank(message = "门店名称不能为空")
private String storeName;
@ApiModelProperty(value = "门店内部名称")
private String inStoreName;
@ApiModelProperty(value = "组织编号", required = true)
@NotBlank(message = "组织编号不能为空")
private String orgCode;
@ApiModelProperty(value = "组织名称", required = true)
@NotBlank(message = "组织名称不能为空")
private String orgName;
@ApiModelProperty(value = "联系电话", required = true)
@NotBlank(message = "联系电话不能为空")
private String phoneNumber;
@ApiModelProperty(value = "门店模式: 1.社会加盟 2.强管 3.强加盟", required = true)
private Integer storeMode;
@ApiModelProperty(value = "省-标准行政区域编码", required = true)
private Integer province;
@ApiModelProperty(value = "市-标准行政区域编码", required = true)
private Integer city;
@ApiModelProperty(value = "区县-标准行政区域编码", required = true)
private Integer district;
@ApiModelProperty(value = "门店地址", required = true)
@NotBlank(message = "门店地址不能为空")
private String address;
}

View File

@@ -0,0 +1,21 @@
package com.cool.store.request.wallet;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 10:55
* @Version 1.0
*/
@Data
public class GetBankRequest {
@ApiModelProperty("银行名称")
private String headName;
@ApiModelProperty("关键字查询")
private String keyword;
@ApiModelProperty("分页查询参数")
private WalletBasicPageInfo page;
}

View File

@@ -0,0 +1,17 @@
package com.cool.store.request.wallet;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 18:28
* @Version 1.0
*/
@Data
public class LargePaymentDetailRequest {
private String transOrderTrace;
private String paymentId;
}

View File

@@ -0,0 +1,26 @@
package com.cool.store.request.wallet;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 17:00
* @Version 1.0
*/
@Data
public class LargePaymentRequest {
@ApiModelProperty(name = "商户门店编号",required = true)
private String outStoreId;
@ApiModelProperty(name = "请求预支付Id",required = true)
private String paymentId;
@ApiModelProperty(name = "签约人名称",required = true)
private String payerAccName;
@ApiModelProperty(name = "支付金额",required = true)
private String amt;
}

View File

@@ -0,0 +1,15 @@
package com.cool.store.request.wallet;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 16:05
* @Version 1.0
*/
@Data
public class OutStoreIdRequest {
private String outStoreId;
}

View File

@@ -0,0 +1,15 @@
package com.cool.store.request.wallet;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 17:37
* @Version 1.0
*/
@Data
public class PaymentDetailRequest {
private String paymentId;
}

View File

@@ -0,0 +1,29 @@
package com.cool.store.request.wallet;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/13 16:46
* @Version 1.0
*/
@Data
public class UpdateStoreAccountRequest {
@ApiModelProperty(name = "商户门店编号",required = true)
private String outStoreId;
@ApiModelProperty(name = "法人/自然人证件号码",required = true)
private String idnum;
@ApiModelProperty(name = "签约人姓名(对私结算卡必传)以上二选一",required = true)
private String accountName;
@ApiModelProperty(name = "结算银行卡号",required = true)
private String accountCardno;
@ApiModelProperty(name = "结算卡银行预留手机号。",required = true)
private String accountPhone;
@ApiModelProperty(name = "支行编号",required = true)
private String bankNo;
@ApiModelProperty(name = "开户支行名称",required = true)
private String bankName;
}

View File

@@ -0,0 +1,40 @@
package com.cool.store.request.wallet;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Author suzhuhong
* @Date 2025/11/13 10:56
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class WalletBasicPageInfo {
@ApiModelProperty(name = "当前页码",required = true)
private Integer currentPage;
@ApiModelProperty(name = "每页数量",required = true)
private Integer pageSize;
private Integer total;
private Integer count;
private Boolean first;
private Boolean last;
public WalletBasicPageInfo(Integer currentPage, Integer pageSize){
this.currentPage = currentPage;
this.pageSize = pageSize;
}
}