Merge branch 'cc_20251112_wallet' into 'master'
钱包 See merge request hangzhou/java/custom_zxjp!194
This commit is contained in:
@@ -103,6 +103,10 @@
|
||||
<artifactId>openpdf</artifactId>
|
||||
<version>1.3.30</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk15on</artifactId>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.icepdf.os/icepdf-core -->
|
||||
<dependency>
|
||||
<groupId>org.icepdf.os</groupId>
|
||||
|
||||
@@ -235,4 +235,5 @@ public class CommonConstants {
|
||||
|
||||
public static final Integer INDEX_ZERO = 0;
|
||||
public static final Integer INDEX_ONE = 1;
|
||||
public static final Integer INDEX_TWO = 2;
|
||||
}
|
||||
|
||||
@@ -289,4 +289,19 @@ public class RedisConstant {
|
||||
public static final String HUO_MA_STORE_ID = "huo_ma_store_id";
|
||||
|
||||
public static final String HUO_MA_TOKEN= "huo_ma_token:{0}";
|
||||
|
||||
/**
|
||||
* 钱包开通失败/打标失败原因 wallet_open_fail:storeId:1/2 1平安/2网商
|
||||
*/
|
||||
public static final String WALLET_OPEN_FAIL = "wallet_open_fail:{0}:{1}";
|
||||
|
||||
/**
|
||||
* 打标接口创建网商账户失败标识 wallet_online_bank_tag_fail:storeId
|
||||
*/
|
||||
public static final String WALLET_ONLINE_BANK_TAG_FAIL = "wallet_online_bank_tag_fail:{0}";
|
||||
|
||||
/**
|
||||
* 网商账户是否已激活
|
||||
*/
|
||||
public static final String WALLET_ONLINE_BANK_ACTIVATED = "wallet_online_bank_activated:{0}";
|
||||
}
|
||||
|
||||
@@ -318,6 +318,10 @@ public enum ErrorCodeEnum {
|
||||
STORE_NOT_FIND(1610013,"门店不存在",null),
|
||||
//装修
|
||||
TEAM_USED(1612001,"该装修团队有门店使用,无法删除,请确认!",null),
|
||||
|
||||
WALLET_OPEN_ACCOUNT_FAIL(1620001,"钱包开通失败",null),
|
||||
WALLET_WITH_DRAWER_FAIL(1620002,"提现失败",null),
|
||||
WALLET_API_ERROR(1620003,"{0}",null),
|
||||
;
|
||||
|
||||
|
||||
|
||||
@@ -44,4 +44,13 @@ public enum JoinModeEnum {
|
||||
public static boolean isFranchise(Integer code) {
|
||||
return code == FRANCHISE_DEPARTMENT.code || code == AFFILIATES.code;
|
||||
}
|
||||
|
||||
public static JoinModeEnum getModelByCode(Integer code) {
|
||||
for (JoinModeEnum e : JoinModeEnum.values()) {
|
||||
if (e.getCode() == code) {
|
||||
return e;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,8 @@ public enum ResponseCodeEnum {
|
||||
/**
|
||||
* 成功返回
|
||||
*/
|
||||
SUCCESS(200000, "SUCCESS");
|
||||
SUCCESS(200000, "SUCCESS"),
|
||||
SUCCESS_WALLET(200, "SUCCESS");
|
||||
|
||||
/**
|
||||
* 返回码
|
||||
|
||||
@@ -18,6 +18,7 @@ public enum ShopSubStageEnum {
|
||||
SHOP_STAGE_3(ShopStageEnum.SHOP_STAGE_2, 30, "营业执照办理", 23),
|
||||
SHOP_STAGE_4(ShopStageEnum.SHOP_STAGE_2, 40, "食安许可证", 55),
|
||||
SHOP_STAGE_5(ShopStageEnum.SHOP_STAGE_2, 50, "员工招聘", 23),
|
||||
SHOP_STAGE_6(ShopStageEnum.SHOP_STAGE_2, 260, "开通门店平安钱包", 1),
|
||||
SHOP_STAGE_7(ShopStageEnum.SHOP_STAGE_2, 70, "缴纳加盟费/保证金", 1),
|
||||
SHOP_STAGE_8(ShopStageEnum.SHOP_STAGE_2, 80, "加盟合同签约", 4),
|
||||
SHOP_STAGE_8_5(ShopStageEnum.SHOP_STAGE_2, 85, "发票回传", 5),
|
||||
@@ -110,6 +111,8 @@ public enum ShopSubStageEnum {
|
||||
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_10;
|
||||
case SHOP_STAGE_5:
|
||||
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_50;
|
||||
// case SHOP_STAGE_6:
|
||||
// return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_60;
|
||||
case SHOP_STAGE_7:
|
||||
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_70;
|
||||
case SHOP_STAGE_2:
|
||||
|
||||
@@ -36,6 +36,10 @@ public enum ShopSubStageStatusEnum {
|
||||
SHOP_SUB_STAGE_STATUS_50(ShopSubStageEnum.SHOP_STAGE_5, 500, "登记中", Boolean.FALSE),
|
||||
SHOP_SUB_STAGE_STATUS_51(ShopSubStageEnum.SHOP_STAGE_5, 510, "已完成", Boolean.TRUE),
|
||||
|
||||
//开通门店平安钱包
|
||||
SHOP_SUB_STAGE_STATUS_60(ShopSubStageEnum.SHOP_STAGE_6, 2600, "未开通", Boolean.FALSE),
|
||||
SHOP_SUB_STAGE_STATUS_61(ShopSubStageEnum.SHOP_STAGE_6, 2610, "已完成", Boolean.TRUE),
|
||||
|
||||
//缴纳加盟费/保证金
|
||||
SHOP_SUB_STAGE_STATUS_70(ShopSubStageEnum.SHOP_STAGE_7, 700, "待内勤发布账单", Boolean.FALSE),
|
||||
SHOP_SUB_STAGE_STATUS_71(ShopSubStageEnum.SHOP_STAGE_7, 710, "待加盟商缴费", Boolean.FALSE),
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.cool.store.enums.wallet;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 银行卡业务类型 枚举类
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/14
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum BankAccountTypeEnum {
|
||||
|
||||
PUBLIC(1, "对公"),
|
||||
|
||||
PRIVATE(2, "对私"),
|
||||
;
|
||||
|
||||
private final Integer type;
|
||||
|
||||
private final String desc;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.cool.store.enums.wallet;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 银行开户类型 枚举类
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/14
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum BankBusinessTypeEnum {
|
||||
|
||||
ENTERPRISE(1, "企业"),
|
||||
|
||||
INDIVIDUAL(2, "个体工商户"),
|
||||
|
||||
PERSONAL(3, "个人(小微商户)"),
|
||||
;
|
||||
|
||||
private final Integer type;
|
||||
|
||||
private final String desc;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.cool.store.enums.wallet;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 平安钱包账户开通状态
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/14
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum PingAnAccountStatusEnum {
|
||||
|
||||
UNCOMMITTED(1, "待提交"),
|
||||
UNAUTHORIZED(2, "待鉴权"),
|
||||
AUTHENTICATING(3, "鉴权中"),
|
||||
OPEN(4, "开通"),
|
||||
;
|
||||
|
||||
private final Integer status;
|
||||
|
||||
private final String desc;
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.cool.store.enums.wallet;
|
||||
|
||||
import com.cool.store.enums.JoinModeEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 营帐通门店模式
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/19
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum YztStoreModel {
|
||||
// 1.社会加盟 2.强管 3.强加盟 (门店模式)
|
||||
|
||||
SOCIAL_JOIN(1, "社会加盟", Arrays.asList(JoinModeEnum.FRANCHISE_DEPARTMENT, JoinModeEnum.FRANCHISE_COMPANIES)),
|
||||
STRONG_MANAGEMENT(2, "强管", Collections.singletonList(JoinModeEnum.FLAGSHIP_STORE)),
|
||||
STRONG_JOIN(3, "强加盟", Collections.singletonList(JoinModeEnum.AFFILIATES)),
|
||||
;
|
||||
|
||||
private final Integer model;
|
||||
|
||||
private final String desc;
|
||||
|
||||
/**
|
||||
* 对应crm加盟模式枚举类
|
||||
*/
|
||||
private final List<JoinModeEnum> joinModelList;
|
||||
|
||||
public static Integer getYztStoreModel(Integer joinModel) {
|
||||
JoinModeEnum joinModelEnum = JoinModeEnum.getModelByCode(joinModel);
|
||||
for (YztStoreModel e : YztStoreModel.values()) {
|
||||
if (e.joinModelList.contains(joinModelEnum)) {
|
||||
return e.model;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.cool.store.enums.wechat;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 钱包类型
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/20
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum WalletTypeEnum {
|
||||
|
||||
PING_AN(1, "平安银行"),
|
||||
ONLINE_BANK(2, "网商银行"),
|
||||
;
|
||||
|
||||
private final Integer type;
|
||||
|
||||
private final String desc;
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.cool.store.utils;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 12:15
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class KeyFormatUtil {
|
||||
|
||||
/**
|
||||
* 将单行密钥转换为标准PEM多行格式
|
||||
*/
|
||||
public static String convertToPEMFormat(String singleLineKey, String keyType) {
|
||||
if (singleLineKey == null || singleLineKey.trim().isEmpty()) {
|
||||
throw new IllegalArgumentException("密钥不能为空");
|
||||
}
|
||||
|
||||
// 清理密钥,移除可能存在的头尾标记和空白
|
||||
String cleanedKey = cleanKey(singleLineKey);
|
||||
|
||||
// 定义头尾标记
|
||||
String header = getKeyHeader(keyType);
|
||||
String footer = getKeyFooter(keyType);
|
||||
|
||||
// 构建多行格式
|
||||
StringBuilder pemKey = new StringBuilder();
|
||||
pemKey.append(header).append("\n");
|
||||
|
||||
// 每64个字符换行
|
||||
for (int i = 0; i < cleanedKey.length(); i += 64) {
|
||||
int end = Math.min(i + 64, cleanedKey.length());
|
||||
pemKey.append(cleanedKey.substring(i, end)).append("\n");
|
||||
}
|
||||
|
||||
pemKey.append(footer);
|
||||
return pemKey.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 清理密钥字符串
|
||||
*/
|
||||
public static String cleanKey(String key) {
|
||||
return key.replaceAll("-----BEGIN.*-----", "")
|
||||
.replaceAll("-----END.*-----", "")
|
||||
.replaceAll("\\s", "") // 移除所有空白字符
|
||||
.trim();
|
||||
}
|
||||
|
||||
private static String getKeyHeader(String keyType) {
|
||||
switch (keyType.toUpperCase()) {
|
||||
case "PRIVATE":
|
||||
case "PRIVATE_KEY":
|
||||
return "-----BEGIN PRIVATE KEY-----";
|
||||
case "PUBLIC":
|
||||
case "PUBLIC_KEY":
|
||||
return "-----BEGIN PUBLIC KEY-----";
|
||||
case "RSA_PRIVATE":
|
||||
return "-----BEGIN RSA PRIVATE KEY-----";
|
||||
case "RSA_PUBLIC":
|
||||
return "-----BEGIN RSA PUBLIC KEY-----";
|
||||
default:
|
||||
throw new IllegalArgumentException("不支持的密钥类型: " + keyType);
|
||||
}
|
||||
}
|
||||
|
||||
private static String getKeyFooter(String keyType) {
|
||||
switch (keyType.toUpperCase()) {
|
||||
case "PRIVATE":
|
||||
case "PRIVATE_KEY":
|
||||
return "-----END PRIVATE KEY-----";
|
||||
case "PUBLIC":
|
||||
case "PUBLIC_KEY":
|
||||
return "-----END PUBLIC KEY-----";
|
||||
case "RSA_PRIVATE":
|
||||
return "-----END RSA PRIVATE KEY-----";
|
||||
case "RSA_PUBLIC":
|
||||
return "-----END RSA PUBLIC KEY-----";
|
||||
default:
|
||||
throw new IllegalArgumentException("不支持的密钥类型: " + keyType);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,9 +5,10 @@ import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import javax.crypto.Mac;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.*;
|
||||
import java.security.spec.PKCS8EncodedKeySpec;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -110,4 +111,5 @@ public class OpenSignatureUtil {
|
||||
}
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,348 @@
|
||||
package com.cool.store.utils;
|
||||
|
||||
import java.net.URLEncoder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.bouncycastle.asn1.pkcs.RSAPrivateKey;
|
||||
import sun.security.util.DerInputStream;
|
||||
import sun.security.util.DerValue;
|
||||
import java.math.BigInteger;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.KeyFactory;
|
||||
import java.security.PrivateKey;
|
||||
import java.security.PublicKey;
|
||||
import java.security.Signature;
|
||||
import java.security.interfaces.RSAPublicKey;
|
||||
import java.security.spec.*;
|
||||
import java.util.*;
|
||||
/**
|
||||
* RSA签名工具类
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/12 22:57
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Slf4j
|
||||
public class RsaSignUtil {
|
||||
|
||||
|
||||
/**
|
||||
* 加签方法
|
||||
*/
|
||||
public static String generateSign(Map<String, Object> params, String privateKeyPEM) {
|
||||
// 移除可能存在的sign字段
|
||||
params.remove("sign");
|
||||
String afterSort = objectToSortedString(params);
|
||||
log.info("排序后的参数:{}", afterSort);
|
||||
String formattedPrivateKey = KeyFormatUtil.convertToPEMFormat(privateKeyPEM, "RSA_PRIVATE");
|
||||
return rsaPrivateKeySign(afterSort, privateKeyPEM, "SHA256withRSA");
|
||||
}
|
||||
|
||||
/**
|
||||
* 验签方法
|
||||
*/
|
||||
public static boolean verifySign(Map<String, Object> params, String publicKeyPEM) {
|
||||
String sign = String.valueOf(params.get("sign"));
|
||||
params.remove("sign");
|
||||
String afterSort = objectToSortedString(params);
|
||||
log.info("排序后的参数:{}", afterSort);
|
||||
return rsaPublicKeyVerify(afterSort, sign, publicKeyPEM, "SHA256withRSA");
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询签名验证 - 主入口方法
|
||||
*/
|
||||
public static boolean querySignCrm(String publicKey, Map<String, Object> params) {
|
||||
return verifySign(params, publicKey);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将对象转换为排序后的字符串
|
||||
*/
|
||||
public static String objectToSortedString(Map<String, Object> obj) {
|
||||
return convertToSortedString(obj, "");
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归将参数转换为排序字符串
|
||||
*/
|
||||
private static String convertToSortedString(Map<String, Object> params, String prefix) {
|
||||
// 按键排序
|
||||
List<String> keys = new ArrayList<>(params.keySet());
|
||||
Collections.sort(keys);
|
||||
|
||||
List<String> parts = new ArrayList<>();
|
||||
|
||||
for (String key : keys) {
|
||||
Object value = params.get(key);
|
||||
if (value == null || "".equals(value) ||
|
||||
(value instanceof Number && ((Number) value).doubleValue() == 0)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
String currentKey = key;
|
||||
if (!prefix.isEmpty()) {
|
||||
currentKey = prefix + "[" + key + "]";
|
||||
}
|
||||
|
||||
if (value instanceof Map) {
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> nestedMap = (Map<String, Object>) value;
|
||||
String nestedString = convertToSortedString(nestedMap, currentKey);
|
||||
if (!nestedString.isEmpty()) {
|
||||
parts.add(nestedString);
|
||||
}
|
||||
} else if (value instanceof List) {
|
||||
List<?> list = (List<?>) value;
|
||||
List<String> elemStrs = new ArrayList<>();
|
||||
|
||||
for (Object element : list) {
|
||||
String elementStr;
|
||||
if (element instanceof Map) {
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> elementMap = (Map<String, Object>) element;
|
||||
String inner = convertToSortedString(elementMap, "");
|
||||
elementStr = "{" + inner + "}";
|
||||
} else if (element instanceof Double) {
|
||||
elementStr = String.format("%.0f", (Double) element);
|
||||
} else if (element instanceof Float) {
|
||||
elementStr = String.format("%.0f", (Float) element);
|
||||
} else {
|
||||
elementStr = String.valueOf(element);
|
||||
}
|
||||
elemStrs.add(elementStr);
|
||||
}
|
||||
|
||||
// 对元素字符串排序
|
||||
Collections.sort(elemStrs);
|
||||
|
||||
// URL编码并添加到parts
|
||||
for (String es : elemStrs) {
|
||||
String encodedValue = urlEncode(es);
|
||||
parts.add(currentKey + "[]=" + encodedValue);
|
||||
}
|
||||
} else if (value instanceof Double) {
|
||||
String strValue = String.format("%.0f", (Double) value);
|
||||
parts.add(currentKey + "=" + urlEncode(strValue));
|
||||
} else if (value instanceof Float) {
|
||||
String strValue = String.format("%.0f", (Float) value);
|
||||
parts.add(currentKey + "=" + urlEncode(strValue));
|
||||
} else {
|
||||
String strValue = String.valueOf(value);
|
||||
parts.add(currentKey + "=" + urlEncode(strValue));
|
||||
}
|
||||
}
|
||||
|
||||
return String.join("&", parts);
|
||||
}
|
||||
|
||||
/**
|
||||
* URL编码(替换+为%20)
|
||||
*/
|
||||
private static String urlEncode(String value) {
|
||||
try {
|
||||
return URLEncoder.encode(value, StandardCharsets.UTF_8.name())
|
||||
.replace("+", "%20");
|
||||
} catch (Exception e) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* RSA私钥加签
|
||||
*/
|
||||
public static String rsaPrivateKeySign(String text, String privateKeyPEM, String algorithm) {
|
||||
try {
|
||||
// 1. 解析私钥
|
||||
log.debug("Received private key PEM: {}", privateKeyPEM);
|
||||
PrivateKey privateKey = parsePrivateKey(privateKeyPEM);
|
||||
if (privateKey == null) {
|
||||
throw new RuntimeException("解析私钥失败");
|
||||
}
|
||||
|
||||
// 2. 创建签名实例
|
||||
Signature signature = Signature.getInstance(algorithm);
|
||||
signature.initSign(privateKey);
|
||||
signature.update(text.getBytes(StandardCharsets.UTF_8));
|
||||
|
||||
// 3. 生成签名并Base64编码
|
||||
byte[] digitalSignature = signature.sign();
|
||||
return Base64.getEncoder().encodeToString(digitalSignature);
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("加签失败: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* RSA公钥验签
|
||||
*/
|
||||
public static boolean rsaPublicKeyVerify(String text, String signBase64,
|
||||
String publicKeyPEM, String algorithm) {
|
||||
try {
|
||||
// 1. 解码Base64签名
|
||||
byte[] signature = Base64.getDecoder().decode(signBase64);
|
||||
|
||||
// 2. 解析公钥
|
||||
PublicKey publicKey = parsePublicKey(publicKeyPEM);
|
||||
if (publicKey == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// 3. 验证签名
|
||||
Signature sig = Signature.getInstance(algorithm);
|
||||
sig.initVerify(publicKey);
|
||||
sig.update(text.getBytes(StandardCharsets.UTF_8));
|
||||
|
||||
return sig.verify(signature);
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析PEM格式私钥(兼容PKCS#1和PKCS#8格式)
|
||||
*/
|
||||
private static PrivateKey parsePrivateKey(String privateKeyPEM) {
|
||||
try {
|
||||
String pemContent = privateKeyPEM
|
||||
.replace("-----BEGIN PRIVATE KEY-----", "")
|
||||
.replace("-----END PRIVATE KEY-----", "")
|
||||
.replace("-----BEGIN RSA PRIVATE KEY-----", "")
|
||||
.replace("-----END RSA PRIVATE KEY-----", "")
|
||||
.replaceAll("\\s", "");
|
||||
|
||||
byte[] keyBytes = Base64.getDecoder().decode(pemContent);
|
||||
|
||||
// 尝试PKCS#8格式
|
||||
try {
|
||||
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
|
||||
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
|
||||
return keyFactory.generatePrivate(keySpec);
|
||||
} catch (Exception e) {
|
||||
// 使用Bouncy Castle处理PKCS#1
|
||||
RSAPrivateKey rsaPrivKey = RSAPrivateKey.getInstance(keyBytes);
|
||||
return KeyFactory.getInstance("RSA").generatePrivate(
|
||||
new RSAPrivateKeySpec(rsaPrivKey.getModulus(), rsaPrivKey.getPrivateExponent()));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("解析私钥失败: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析PKCS#1格式私钥
|
||||
*/
|
||||
private static PrivateKey parsePKCS1PrivateKey(byte[] keyBytes) {
|
||||
try {
|
||||
int length = keyBytes.length;
|
||||
byte[] pkcs8Header = new byte[] {
|
||||
0x30, (byte) 0x82,
|
||||
(byte) ((length + 26) >> 8), (byte) (length + 26), // 总长度
|
||||
0x02, 0x01, 0x00,
|
||||
0x30, 0x0D, 0x06, 0x09, 0x2A, (byte) 0x86, 0x48, (byte) 0x86, (byte) 0xF7, 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00,
|
||||
0x04, (byte) 0x82,
|
||||
(byte) (length >> 8), (byte) length // BIT STRING 长度
|
||||
};
|
||||
|
||||
byte[] pkcs8Key = new byte[pkcs8Header.length + keyBytes.length];
|
||||
System.arraycopy(pkcs8Header, 0, pkcs8Key, 0, pkcs8Header.length);
|
||||
System.arraycopy(keyBytes, 0, pkcs8Key, pkcs8Header.length, keyBytes.length);
|
||||
|
||||
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(pkcs8Key);
|
||||
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
|
||||
return keyFactory.generatePrivate(keySpec);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("解析PKCS#1私钥失败: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析PEM格式公钥(兼容PKCS#1和PKCS#8格式)
|
||||
*/
|
||||
private static PublicKey parsePublicKey(String publicKeyPEM) {
|
||||
try {
|
||||
// 移除PEM头尾标记和空白字符
|
||||
String pemContent = publicKeyPEM
|
||||
.replace("-----BEGIN PUBLIC KEY-----", "")
|
||||
.replace("-----END PUBLIC KEY-----", "")
|
||||
.replace("-----BEGIN RSA PUBLIC KEY-----", "")
|
||||
.replace("-----END RSA PUBLIC KEY-----", "")
|
||||
.replaceAll("\\s", "");
|
||||
|
||||
byte[] keyBytes = Base64.getDecoder().decode(pemContent);
|
||||
|
||||
// 先尝试PKCS#8格式
|
||||
try {
|
||||
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(keyBytes);
|
||||
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
|
||||
return keyFactory.generatePublic(keySpec);
|
||||
} catch (Exception e) {
|
||||
// 如果PKCS#8失败,尝试PKCS#1格式
|
||||
return parsePKCS1PublicKey(keyBytes);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 解析PKCS#1格式公钥
|
||||
*/
|
||||
private static PublicKey parsePKCS1PublicKey(byte[] keyBytes) {
|
||||
try {
|
||||
// PKCS#1 RSA公钥转换为PKCS#8格式
|
||||
byte[] pkcs8Prefix = new byte[] {
|
||||
0x30, (byte) 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, (byte) 0x86,
|
||||
0x48, (byte) 0x86, (byte) 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03,
|
||||
(byte) 0x82, 0x01, 0x0f, 0x00
|
||||
};
|
||||
|
||||
byte[] pkcs8Key = new byte[pkcs8Prefix.length + keyBytes.length];
|
||||
System.arraycopy(pkcs8Prefix, 0, pkcs8Key, 0, pkcs8Prefix.length);
|
||||
System.arraycopy(keyBytes, 0, pkcs8Key, pkcs8Prefix.length, keyBytes.length);
|
||||
|
||||
X509EncodedKeySpec keySpec = new X509EncodedKeySpec(pkcs8Key);
|
||||
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
|
||||
return keyFactory.generatePublic(keySpec);
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 针对 /zxjp/open/v1/wallet/** 接口的专用验签方法
|
||||
* @param params 包含签名参数的Map
|
||||
* @param privateKeyPEM 用于生成签名的私钥
|
||||
* @return 验签是否通过
|
||||
*/
|
||||
public static boolean verifyWalletSign(Map<String, Object> params, String privateKeyPEM) {
|
||||
try {
|
||||
// 1. 获取请求中的签名
|
||||
String requestSign = String.valueOf(params.get("sign"));
|
||||
if (requestSign == null || requestSign.isEmpty()) {
|
||||
log.warn("请求中缺少签名参数");
|
||||
return false;
|
||||
}
|
||||
|
||||
// 2. 移除签名参数,生成待签名字符串
|
||||
Map<String, Object> paramsToSign = new HashMap<>(params);
|
||||
paramsToSign.remove("sign");
|
||||
|
||||
// 3. 使用相同的私钥生成签名
|
||||
String generatedSign = generateSign(paramsToSign, privateKeyPEM);
|
||||
|
||||
// 4. 对比签名
|
||||
boolean isVerified = Objects.equals(requestSign, generatedSign);
|
||||
|
||||
if (!isVerified) {
|
||||
log.warn("签名验证失败,请求签名: {}, 生成签名: {}", requestSign, generatedSign);
|
||||
}
|
||||
|
||||
return isVerified;
|
||||
} catch (Exception e) {
|
||||
log.error("验签过程中发生异常", e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -17,6 +17,7 @@ import com.cool.store.mapper.ShopInfoMapper;
|
||||
import com.cool.store.request.*;
|
||||
import com.cool.store.response.MiniShopsResponse;
|
||||
import com.cool.store.response.PlatformBuildListResponse;
|
||||
import com.cool.store.utils.UUIDUtils;
|
||||
import com.cool.store.vo.shop.StageShopCountVO;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
@@ -30,10 +31,7 @@ import org.springframework.stereotype.Repository;
|
||||
import tk.mybatis.mapper.entity.Example;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -54,6 +52,7 @@ public class ShopInfoDAO {
|
||||
if(CollectionUtils.isEmpty(shopInfoList)){
|
||||
return CommonConstants.ZERO;
|
||||
}
|
||||
shopInfoList.forEach(v -> v.setStoreId(UUIDUtils.get32UUID()));
|
||||
return shopInfoMapper.batchAddShop(shopInfoList);
|
||||
}
|
||||
|
||||
@@ -70,6 +69,24 @@ public class ShopInfoDAO {
|
||||
return shopInfo;
|
||||
}
|
||||
|
||||
public ShopInfoDO getShopInfoByStoreId(String storeId) {
|
||||
ShopInfoDO shopInfoDO = new ShopInfoDO();
|
||||
shopInfoDO.setStoreId(storeId);
|
||||
shopInfoDO.setDeleted(false);
|
||||
return shopInfoMapper.selectOne(shopInfoDO);
|
||||
}
|
||||
|
||||
public List<ShopInfoDO> getShopInfoByStoreIds(List<String> storeIds) {
|
||||
if (CollectionUtils.isEmpty(storeIds)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
Example example = new Example(ShopInfoDO.class);
|
||||
example.createCriteria()
|
||||
.andIn("storeId", storeIds)
|
||||
.andEqualTo("deleted", false);
|
||||
return shopInfoMapper.selectByExample(example);
|
||||
}
|
||||
|
||||
public List<ShopInfoDO> getShopList(Long lineId){
|
||||
if(Objects.isNull(lineId)){
|
||||
return new ArrayList<>();
|
||||
@@ -95,6 +112,7 @@ public class ShopInfoDAO {
|
||||
* @return
|
||||
*/
|
||||
public Long addShopInfo(ShopInfoDO shopInfo){
|
||||
shopInfo.setStoreId(UUIDUtils.get32UUID());
|
||||
shopInfoMapper.insertSelective(shopInfo);
|
||||
return shopInfo.getId();
|
||||
}
|
||||
|
||||
@@ -58,6 +58,10 @@ public class ShopStageInfoDAO {
|
||||
// 三明治跳过营帐通开通
|
||||
continue;
|
||||
}
|
||||
// TODO: 临时跳过
|
||||
if (shopSubStageEnum.equals(ShopSubStageEnum.SHOP_STAGE_6)) {
|
||||
continue;
|
||||
}
|
||||
ShopStageInfoDO shopStageInfo = new ShopStageInfoDO();
|
||||
shopStageInfo.setLineId(lineId);
|
||||
shopStageInfo.setShopId(shopId);
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.cool.store.dao.wallet;
|
||||
|
||||
import com.cool.store.entity.wallet.OpenBankInfoDO;
|
||||
import com.cool.store.mapper.wallet.OpenBankInfoMapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import tk.mybatis.mapper.entity.Example;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/20 10:37
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Repository
|
||||
public class OpenBankInfoDAO {
|
||||
|
||||
|
||||
@Resource
|
||||
private OpenBankInfoMapper openBankInfoMapper;
|
||||
|
||||
public int insertSelective(OpenBankInfoDO openBankInfoDO){
|
||||
return openBankInfoMapper.insertSelective(openBankInfoDO);
|
||||
}
|
||||
|
||||
public int updateByStoreCode(OpenBankInfoDO openBankInfoDO){
|
||||
return openBankInfoMapper.updateByStoreCode(openBankInfoDO);
|
||||
}
|
||||
|
||||
public OpenBankInfoDO getOpenBankInfo(String storeCode){
|
||||
return openBankInfoMapper.getOpenBankInfo(storeCode);
|
||||
}
|
||||
|
||||
public OpenBankInfoDO getOpenBankInfoByStoreId(String storeId) {
|
||||
return openBankInfoMapper.selectOne(OpenBankInfoDO.builder().storeId(storeId).build());
|
||||
}
|
||||
|
||||
public int insertOrUpdateByStoreId(OpenBankInfoDO openBankInfoDO) {
|
||||
if (StringUtils.isBlank(openBankInfoDO.getStoreId())) {
|
||||
return 0;
|
||||
}
|
||||
if (Objects.isNull(getOpenBankInfo(openBankInfoDO.getStoreId()))) {
|
||||
return openBankInfoMapper.insertSelective(openBankInfoDO);
|
||||
} else {
|
||||
Example example = new Example(OpenBankInfoDO.class);
|
||||
example.createCriteria().andEqualTo("storeId", openBankInfoDO.getStoreId());
|
||||
return openBankInfoMapper.updateByExampleSelective(openBankInfoDO, example);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.cool.store.dao.wallet;
|
||||
|
||||
import com.cool.store.entity.wallet.TempOpenWalletInfoDO;
|
||||
import com.cool.store.mapper.wallet.TempOpenWalletInfoMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/20 10:03
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
public class TempOpenWalletInfoDAO {
|
||||
|
||||
@Resource
|
||||
private TempOpenWalletInfoMapper tempOpenWalletInfoMapper;
|
||||
|
||||
/**
|
||||
* 根据门店编号查询临时开通钱包信息
|
||||
* @param StoreCode
|
||||
* @return
|
||||
*/
|
||||
public TempOpenWalletInfoDO getTempOpenWalletInfoByStoreCode(String StoreCode) {
|
||||
if (StoreCode == null){
|
||||
return null;
|
||||
}
|
||||
return tempOpenWalletInfoMapper.getTempOpenWalletInfoByStoreCode(StoreCode);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.cool.store.dao.wallet;
|
||||
|
||||
import com.cool.store.entity.wallet.WalletPaymentOrderDO;
|
||||
import com.cool.store.mapper.wallet.WalletPaymentOrderMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import tk.mybatis.mapper.entity.Example;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 钱包大额支付DAO
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/18
|
||||
*/
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
public class WalletPaymentOrderDAO {
|
||||
private final WalletPaymentOrderMapper walletPaymentOrderMapper;
|
||||
|
||||
public void insertSelective(WalletPaymentOrderDO walletPaymentOrderDO) {
|
||||
walletPaymentOrderMapper.insertSelective(walletPaymentOrderDO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新订单状态
|
||||
*/
|
||||
public void updateOrderByPaymentId(String storeId, String paymentId, Integer orderStatus) {
|
||||
Example example = new Example(WalletPaymentOrderDO.class);
|
||||
example.createCriteria()
|
||||
.andEqualTo("storeId", storeId)
|
||||
.andEqualTo("paymentId", paymentId);
|
||||
walletPaymentOrderMapper.updateByExampleSelective(WalletPaymentOrderDO.builder().orderStatus(orderStatus).build(), example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询未支付的充值订单
|
||||
*/
|
||||
public List<WalletPaymentOrderDO> getNonPaymentList(String storeId) {
|
||||
Example example = new Example(WalletPaymentOrderDO.class);
|
||||
example.createCriteria()
|
||||
.andEqualTo("storeId", storeId)
|
||||
.andEqualTo("orderStatus", 3)
|
||||
.andEqualTo("type", 0);
|
||||
example.setOrderByClause("create_time DESC");
|
||||
return walletPaymentOrderMapper.selectByExample(example);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.cool.store.mapper.wallet;
|
||||
|
||||
import com.cool.store.entity.wallet.OpenBankInfoDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
|
||||
public interface OpenBankInfoMapper extends Mapper<OpenBankInfoDO> {
|
||||
|
||||
|
||||
/**
|
||||
* 查询门店开户信息
|
||||
* @param storeCode
|
||||
* @return
|
||||
*/
|
||||
OpenBankInfoDO getOpenBankInfo(@Param("storeCode") String storeCode);
|
||||
|
||||
/**
|
||||
* 根据门店编码更新
|
||||
* @param openBankInfoDO
|
||||
* @return
|
||||
*/
|
||||
Integer updateByStoreCode(@Param("dto") OpenBankInfoDO openBankInfoDO);
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.cool.store.mapper.wallet;
|
||||
|
||||
import com.cool.store.entity.wallet.TempOpenWalletInfoDO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
|
||||
public interface TempOpenWalletInfoMapper extends Mapper<TempOpenWalletInfoDO> {
|
||||
|
||||
/**
|
||||
* 根据StoreCode查询临时开放钱包信息
|
||||
* @param StoreCode
|
||||
* @return
|
||||
*/
|
||||
TempOpenWalletInfoDO getTempOpenWalletInfoByStoreCode(@Param("storeCode") String StoreCode);
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.cool.store.mapper.wallet;
|
||||
|
||||
import com.cool.store.entity.wallet.WalletPaymentOrderDO;
|
||||
import tk.mybatis.mapper.common.Mapper;
|
||||
|
||||
public interface WalletPaymentOrderMapper extends Mapper<WalletPaymentOrderDO> {
|
||||
}
|
||||
@@ -38,6 +38,7 @@
|
||||
<result column="manager_region_id" jdbcType="BIGINT" property="managerRegionId"/>
|
||||
<result column="shop_decoration_attributes" jdbcType="INTEGER" property="shopDecorationAttributes"/>
|
||||
<result column="hqt_shop_id" jdbcType="VARCHAR" property="hqtShopId"/>
|
||||
<result column="store_id" jdbcType="VARCHAR" property="storeId"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="allColumn">
|
||||
@@ -46,17 +47,17 @@
|
||||
shop_code, store_num, shop_manager_user_id, supervisor_user_id,
|
||||
plan_open_time, cur_progress, shop_type, shop_stage, deleted, create_time, update_time,
|
||||
join_mode,detail_address,franchise_brand,development_manager,want_shop_area_id,investment_manager,shop_status,create_user_id,update_user_id,store_type
|
||||
, province,province_code,city,city_code,district,district_code,manager_region_id,shop_decoration_attributes,hqt_shop_id
|
||||
, province,province_code,city,city_code,district,district_code,manager_region_id,shop_decoration_attributes,hqt_shop_id,store_id
|
||||
</sql>
|
||||
|
||||
<insert id="batchAddShop" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
|
||||
insert into xfsg_shop_info(region_id, line_id, partner_id, shop_name,
|
||||
store_num,supervisor_user_id,create_time,join_mode,franchise_brand,
|
||||
development_manager,want_shop_area_id,investment_manager) values
|
||||
development_manager,want_shop_area_id,investment_manager,store_id) values
|
||||
<foreach collection="shopInfoList" item="shop" separator=",">
|
||||
(#{shop.regionId}, #{shop.lineId}, #{shop.partnerId}, #{shop.shopName},
|
||||
#{shop.storeNum},#{shop.supervisorUserId},#{shop.createTime},#{shop.joinMode},#{shop.franchiseBrand},#{shop.developmentManager},
|
||||
#{shop.wantShopAreaId},#{shop.investmentManager})
|
||||
#{shop.wantShopAreaId},#{shop.investmentManager},#{shop.storeId})
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
@@ -309,7 +310,8 @@
|
||||
a.franchise_brand as franchiseBrand,
|
||||
a.shop_status as shopStatus,
|
||||
a.detail_address as shopAddress,
|
||||
a.manager_region_id as managerRegionId
|
||||
a.manager_region_id as managerRegionId,
|
||||
a.store_id as storeId
|
||||
from xfsg_shop_info a left join xfsg_line_info b on a.line_id = b.id
|
||||
<if test="request.contractStartTime !=null and request.contractEndTime != null">
|
||||
left join xfsg_sign_franchise c on a.id = c.shop_id
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cool.store.mapper.wallet.OpenBankInfoMapper">
|
||||
<resultMap id="BaseResultMap" type="com.cool.store.entity.wallet.OpenBankInfoDO">
|
||||
<!--
|
||||
WARNING - @mbg.generated
|
||||
-->
|
||||
<result column="store_code" jdbcType="VARCHAR" property="storeCode" />
|
||||
<result column="store_id" jdbcType="VARCHAR" property="storeId" />
|
||||
<result column="signer_name" jdbcType="VARCHAR" property="signerName" />
|
||||
<result column="signer_id_card" jdbcType="VARCHAR" property="signerIdCard" />
|
||||
<result column="signer_phone" jdbcType="VARCHAR" property="signerPhone" />
|
||||
<result column="signer_id_card_front" jdbcType="VARCHAR" property="signerIdCardFront" />
|
||||
<result column="signer_id_card_back" jdbcType="VARCHAR" property="signerIdCardBack" />
|
||||
<result column="business_license_name" jdbcType="VARCHAR" property="businessLicenseName" />
|
||||
<result column="business_license_code" jdbcType="VARCHAR" property="businessLicenseCode" />
|
||||
<result column="business_license_photo" jdbcType="VARCHAR" property="businessLicensePhoto" />
|
||||
<result column="legal_is_signer" jdbcType="TINYINT" property="legalIsSigner" />
|
||||
<result column="legal_name" jdbcType="VARCHAR" property="legalName" />
|
||||
<result column="legal_id_card" jdbcType="VARCHAR" property="legalIdCard" />
|
||||
<result column="legal_id_card_expire_time" jdbcType="VARCHAR" property="legalIdCardExpireTime" />
|
||||
<result column="legal_phone" jdbcType="VARCHAR" property="legalPhone" />
|
||||
<result column="legal_id_card_front" jdbcType="VARCHAR" property="legalIdCardFront" />
|
||||
<result column="legal_id_card_back" jdbcType="VARCHAR" property="legalIdCardBack" />
|
||||
<result column="settlement_card" jdbcType="VARCHAR" property="settlementCard" />
|
||||
<result column="bank_branch_name" jdbcType="VARCHAR" property="bankBranchName" />
|
||||
<result column="bank_branch_code" jdbcType="VARCHAR" property="bankBranchCode" />
|
||||
<result column="bank_reserved_phone" jdbcType="VARCHAR" property="bankReservedPhone" />
|
||||
<result column="source" jdbcType="TINYINT" property="source" />
|
||||
</resultMap>
|
||||
|
||||
<select id="getOpenBankInfo" resultMap="BaseResultMap">
|
||||
select * from zxjp_open_bank_info where store_code = #{storeCode}
|
||||
</select>
|
||||
|
||||
<update id="updateByStoreCode" parameterType="com.cool.store.entity.wallet.OpenBankInfoDO">
|
||||
UPDATE zxjp_open_bank_info
|
||||
<set>
|
||||
<if test="dto.storeId != null and dto.storeId != ''">
|
||||
store_id = #{dto.storeId},
|
||||
</if>
|
||||
<if test="dto.signerName != null and dto.signerName != ''">
|
||||
signer_name = #{dto.signerName},
|
||||
</if>
|
||||
<if test="dto.signerIdCard != null and dto.signerIdCard != ''">
|
||||
signer_id_card = #{dto.signerIdCard},
|
||||
</if>
|
||||
<if test="dto.signerPhone != null and dto.signerPhone != ''">
|
||||
signer_phone = #{dto.signerPhone},
|
||||
</if>
|
||||
<if test="dto.signerIdCardFront != null and dto.signerIdCardFront != ''">
|
||||
signer_id_card_front = #{dto.signerIdCardFront},
|
||||
</if>
|
||||
<if test="dto.signerIdCardBack != null and dto.signerIdCardBack != ''">
|
||||
signer_id_card_back = #{dto.signerIdCardBack},
|
||||
</if>
|
||||
<if test="dto.businessLicenseName != null and dto.businessLicenseName != ''">
|
||||
business_license_name = #{dto.businessLicenseName},
|
||||
</if>
|
||||
<if test="dto.businessLicenseCode != null and dto.businessLicenseCode != ''">
|
||||
business_license_code = #{dto.businessLicenseCode},
|
||||
</if>
|
||||
<if test="dto.businessLicensePhoto != null and dto.businessLicensePhoto != ''">
|
||||
business_license_photo = #{dto.businessLicensePhoto},
|
||||
</if>
|
||||
<if test="dto.legalIsSigner != null">
|
||||
legal_is_signer = #{dto.legalIsSigner},
|
||||
</if>
|
||||
<if test="dto.legalName != null and dto.legalName != ''">
|
||||
legal_name = #{dto.legalName},
|
||||
</if>
|
||||
<if test="dto.legalIdCard != null and dto.legalIdCard != ''">
|
||||
legal_id_card = #{dto.legalIdCard},
|
||||
</if>
|
||||
<if test="dto.legalIdCardExpireTime != null and dto.legalIdCardExpireTime != ''">
|
||||
legal_id_card_expire_time = #{dto.legalIdCardExpireTime},
|
||||
</if>
|
||||
<if test="dto.legalPhone != null and dto.legalPhone != ''">
|
||||
legal_phone = #{dto.legalPhone},
|
||||
</if>
|
||||
<if test="dto.legalIdCardFront != null and dto.legalIdCardFront != ''">
|
||||
legal_id_card_front = #{dto.legalIdCardFront},
|
||||
</if>
|
||||
<if test="dto.legalIdCardBack != null and dto.legalIdCardBack != ''">
|
||||
legal_id_card_back = #{dto.legalIdCardBack},
|
||||
</if>
|
||||
<if test="dto.settlementCard != null and dto.settlementCard != ''">
|
||||
settlement_card = #{dto.settlementCard},
|
||||
</if>
|
||||
<if test="dto.bankBranchName != null and dto.bankBranchName != ''">
|
||||
bank_branch_name = #{dto.bankBranchName},
|
||||
</if>
|
||||
<if test="dto.bankBranchCode != null and dto.bankBranchCode != ''">
|
||||
bank_branch_code = #{dto.bankBranchCode},
|
||||
</if>
|
||||
<if test="dto.bankReservedPhone != null and dto.bankReservedPhone != ''">
|
||||
bank_reserved_phone = #{dto.bankReservedPhone},
|
||||
</if>
|
||||
<if test="dto.source != null">
|
||||
source = #{dto.source},
|
||||
</if>
|
||||
</set>
|
||||
WHERE store_code = #{dto.storeCode}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cool.store.mapper.wallet.TempOpenWalletInfoMapper">
|
||||
<resultMap id="BaseResultMap" type="com.cool.store.entity.wallet.TempOpenWalletInfoDO">
|
||||
<!--
|
||||
WARNING - @mbg.generated
|
||||
-->
|
||||
<result column="store_code" jdbcType="VARCHAR" property="storeCode" />
|
||||
<result column="store_name" jdbcType="VARCHAR" property="storeName" />
|
||||
<result column="store_mode" jdbcType="VARCHAR" property="storeMode" />
|
||||
<result column="ledger_name" jdbcType="VARCHAR" property="ledgerName" />
|
||||
<result column="ledger_status" jdbcType="VARCHAR" property="ledgerStatus" />
|
||||
<result column="business_type" jdbcType="VARCHAR" property="businessType" />
|
||||
<result column="business_reg_name" jdbcType="VARCHAR" property="businessRegName" />
|
||||
<result column="business_license_no" jdbcType="VARCHAR" property="businessLicenseNo" />
|
||||
<result column="business_address" jdbcType="VARCHAR" property="businessAddress" />
|
||||
<result column="province" jdbcType="VARCHAR" property="province" />
|
||||
<result column="city" jdbcType="VARCHAR" property="city" />
|
||||
<result column="district" jdbcType="VARCHAR" property="district" />
|
||||
<result column="legal_person_name" jdbcType="VARCHAR" property="legalPersonName" />
|
||||
<result column="legal_person_id_no" jdbcType="VARCHAR" property="legalPersonIdNo" />
|
||||
<result column="legal_id_start_date" jdbcType="DATE" property="legalIdStartDate" />
|
||||
<result column="legal_id_expire_date" jdbcType="DATE" property="legalIdExpireDate" />
|
||||
<result column="settler_name" jdbcType="VARCHAR" property="settlerName" />
|
||||
<result column="settler_id_no" jdbcType="VARCHAR" property="settlerIdNo" />
|
||||
<result column="settler_id_start_date" jdbcType="DATE" property="settlerIdStartDate" />
|
||||
<result column="settler_id_expire_date" jdbcType="DATE" property="settlerIdExpireDate" />
|
||||
<result column="bank_branch_name" jdbcType="VARCHAR" property="bankBranchName" />
|
||||
<result column="bank_branch_no" jdbcType="VARCHAR" property="bankBranchNo" />
|
||||
<result column="settlement_card_no" jdbcType="VARCHAR" property="settlementCardNo" />
|
||||
<result column="bank_reserved_phone" jdbcType="VARCHAR" property="bankReservedPhone" />
|
||||
<result column="accounting_relation" jdbcType="VARCHAR" property="accountingRelation" />
|
||||
</resultMap>
|
||||
|
||||
<select id="getTempOpenWalletInfoByStoreCode" resultMap="BaseResultMap">
|
||||
select * from zxjp_temp_open_wallet_info where store_code = #{storeCode}
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cool.store.mapper.wallet.WalletPaymentOrderMapper">
|
||||
<resultMap id="BaseResultMap" type="com.cool.store.entity.wallet.WalletPaymentOrderDO">
|
||||
<!--
|
||||
WARNING - @mbg.generated
|
||||
-->
|
||||
<id column="id" jdbcType="BIGINT" property="id" />
|
||||
<result column="store_id" jdbcType="VARCHAR" property="storeId" />
|
||||
<result column="payment_id" jdbcType="VARCHAR" property="paymentId" />
|
||||
<result column="type" jdbcType="TINYINT" property="type" />
|
||||
<result column="amount" jdbcType="DECIMAL" property="amount" />
|
||||
<result column="expire_time" jdbcType="VARCHAR" property="expireTime" />
|
||||
<result column="order_status" jdbcType="BIT" property="orderStatus" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
</resultMap>
|
||||
</mapper>
|
||||
@@ -55,5 +55,7 @@ public class PreparationDTO {
|
||||
|
||||
private Long managerRegionId;
|
||||
|
||||
private String storeId;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/18 17:55
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class AccountActiveUrlDTO {
|
||||
@ApiModelProperty(value = "商户门店编号",required = true)
|
||||
private String outStoreId;
|
||||
@ApiModelProperty(value = "H5 激活页短链(商户需访问此链接完成操作,非公网可直接访问需确认权限)",required = true)
|
||||
private String activateUrl;
|
||||
@ApiModelProperty(value = "短链失效时间(格式:YYYY-MM-DD HH:mm:ss,过期后需重新调用接口生成)",required = true)
|
||||
private String expireTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 16:06
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class AccountAuthenticationDTO {
|
||||
|
||||
private Integer accountStatus;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 门店签约人账户
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 16:54
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class AccountInfoDTO {
|
||||
|
||||
@ApiModelProperty(value = "结算卡业务类型 枚举值:1:对公 2:对私", required = true)
|
||||
private Integer 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 = "总行名称")
|
||||
private String headBankName;
|
||||
|
||||
@ApiModelProperty(value = "账户状态 1:待提交 2:待鉴权 3:鉴权中 4:开通 5:开通失败", required = true)
|
||||
private Integer accountStatus;
|
||||
|
||||
@ApiModelProperty(value = "账户余额", required = true)
|
||||
private String totalAmount;
|
||||
|
||||
@ApiModelProperty(value = "打标状态 0 未打标 1 已打标", required = true)
|
||||
private Integer labelingStatus;
|
||||
|
||||
@ApiModelProperty(value = "是否签约人账户 0 否 1 是", required = true)
|
||||
private Integer isLegal;
|
||||
|
||||
@ApiModelProperty("工商类型 1.企业 2.个体工商户 3.小微商户(自然人)")
|
||||
private Integer businessType;
|
||||
|
||||
@ApiModelProperty("钱包类型 1平安 2网商")
|
||||
private Integer walletType;
|
||||
|
||||
@ApiModelProperty("失败原因(仅网商在创建失败或激活失败时返回)")
|
||||
private String errMsg;
|
||||
|
||||
@ApiModelProperty("crm门店id")
|
||||
private String outStoreId;
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 14:58
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class AccountNoDTO {
|
||||
|
||||
private String accountNo;
|
||||
|
||||
}
|
||||
@@ -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/18 10:12
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class AccountPageDTO {
|
||||
|
||||
private List<AccountInfoDTO> pageData;
|
||||
|
||||
private WalletBasicPageInfo page;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 16:09
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class AccountVerifyDTO {
|
||||
|
||||
private String outStoreId;
|
||||
|
||||
private Integer openStatus;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 14:59
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class AddTagDTO {
|
||||
|
||||
private Integer status;
|
||||
|
||||
private Integer addTagType;
|
||||
|
||||
@ApiModelProperty("网商状态,1.打标成功 2.打标失败 3.处理中")
|
||||
private Integer wsStatus;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 10:54
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class BankDTO {
|
||||
|
||||
@ApiModelProperty("银行编号")
|
||||
private String headCode;
|
||||
@ApiModelProperty("银行名称")
|
||||
private String headName;
|
||||
@ApiModelProperty("支行号")
|
||||
private String branchCode;
|
||||
@ApiModelProperty("支行名称")
|
||||
private String branchName;
|
||||
@ApiModelProperty("支行地址")
|
||||
private String branchAddress;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.cool.store.request.wallet.WalletBasicPageInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 14:36
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class BankListDTO {
|
||||
|
||||
WalletBasicPageInfo page;
|
||||
|
||||
List<BankDTO> pageData;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/14 10:31
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class BillDTO {
|
||||
|
||||
/**
|
||||
* 业务系统付款单号(如 CRM 单号)
|
||||
*/
|
||||
private String reqNo;
|
||||
|
||||
/**
|
||||
* 交易Id(营帐通)
|
||||
*/
|
||||
private Long tradeId;
|
||||
|
||||
/**
|
||||
* 交易编号(扫呗)
|
||||
*/
|
||||
private String outTradeNo;
|
||||
|
||||
/**
|
||||
* 费用科目
|
||||
*/
|
||||
private Integer feeItemId;
|
||||
|
||||
/**
|
||||
* 费用科目名称
|
||||
*/
|
||||
private String feeItemName;
|
||||
|
||||
/**
|
||||
* 门店账户编号
|
||||
*/
|
||||
private String storeAccountNo;
|
||||
|
||||
/**
|
||||
* 公司编号
|
||||
*/
|
||||
private String companyCode;
|
||||
|
||||
/**
|
||||
* 公司账户编号
|
||||
*/
|
||||
private String companyAccountNo;
|
||||
|
||||
/**
|
||||
* 提现银行卡
|
||||
*/
|
||||
private String withdrawalBankCradNo;
|
||||
|
||||
/**
|
||||
* 提现银行卡户名
|
||||
*/
|
||||
private String withdrawalBankCradName;
|
||||
|
||||
/**
|
||||
* 金额(元)
|
||||
*/
|
||||
private String amount;
|
||||
|
||||
/**
|
||||
* 交易状态 1.成功 2.失败 3.处理中
|
||||
*/
|
||||
private Integer tradeStatus;
|
||||
|
||||
/**
|
||||
* 交易类型 1.转账 2.提现
|
||||
*/
|
||||
private Integer tradeType;
|
||||
|
||||
/**
|
||||
* 交易发起时间
|
||||
*/
|
||||
private String createTime;
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/14 10:09
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class BillDetailDTO {
|
||||
|
||||
/**
|
||||
* 外部门店唯一标识
|
||||
*/
|
||||
private String outStoreId;
|
||||
|
||||
/**
|
||||
* 业务系统付款单号(如 CRM 单号)
|
||||
*/
|
||||
private String reqNo;
|
||||
|
||||
/**
|
||||
* 交易Id(营帐通)
|
||||
*/
|
||||
private Long tradeId;
|
||||
|
||||
/**
|
||||
* 交易编号(扫呗)
|
||||
*/
|
||||
private String outTradeNo;
|
||||
|
||||
/**
|
||||
* 交易科目
|
||||
*/
|
||||
private Integer feeItemId;
|
||||
|
||||
/**
|
||||
* 费用科目名称
|
||||
*/
|
||||
private String feeItemName;
|
||||
|
||||
/**
|
||||
* 门店账户编号
|
||||
*/
|
||||
private String storeAccountNo;
|
||||
|
||||
/**
|
||||
* 交易对方账户编号
|
||||
*/
|
||||
private String transAccountNo;
|
||||
|
||||
/**
|
||||
* 交易对方账户名称
|
||||
*/
|
||||
private String transAccountName;
|
||||
|
||||
/**
|
||||
* 公司编号
|
||||
*/
|
||||
private String companyCode;
|
||||
|
||||
/**
|
||||
* 公司账户编号
|
||||
*/
|
||||
private String companyAccountNo;
|
||||
|
||||
/**
|
||||
* 提现银行卡
|
||||
*/
|
||||
private String withdrawalBankCardNo;
|
||||
|
||||
/**
|
||||
* 提现银行卡户名
|
||||
*/
|
||||
private String withdrawalBankCardName;
|
||||
|
||||
/**
|
||||
* 金额(元)
|
||||
*/
|
||||
private String amount;
|
||||
|
||||
/**
|
||||
* 交易状态 1.成功 2.失败 3.处理中
|
||||
*/
|
||||
private Integer tradeStatus;
|
||||
|
||||
/**
|
||||
* 交易类型 1.转账 2.提现
|
||||
*/
|
||||
private Integer tradeType;
|
||||
|
||||
/**
|
||||
* 交易发起时间
|
||||
*/
|
||||
private String createTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.cool.store.request.wallet.WalletBasicPageInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 交易列表DTO
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/17
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class BillPageDTO {
|
||||
private List<TradeRecordDTO> pageData;
|
||||
|
||||
private WalletBasicPageInfo page;
|
||||
|
||||
/**
|
||||
* 收入
|
||||
*/
|
||||
private Long getAmount;
|
||||
|
||||
/**
|
||||
* 支出
|
||||
*/
|
||||
private Long useAmount;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/14 10:34
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class CompanyDTO {
|
||||
|
||||
@ApiModelProperty(value = "公司编号")
|
||||
private String companyCode;
|
||||
|
||||
@ApiModelProperty(value = "公司名称")
|
||||
private String companyName;
|
||||
|
||||
@ApiModelProperty(value = "公司账户")
|
||||
private String companyAccountNo;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.cool.store.request.wallet.WalletBasicPageInfo;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/14 10:57
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class CompanyListDTO {
|
||||
|
||||
private List<CompanyDTO> pageData;
|
||||
|
||||
private WalletBasicPageInfo page;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 17:15
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
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;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,116 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* 开通网商需要的基本信息
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/20 10:49
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class OpenBasicInfoDTO {
|
||||
|
||||
@ApiModelProperty(value = "门店编号")
|
||||
private String storeCode;
|
||||
|
||||
@ApiModelProperty("门店id")
|
||||
private String storeId;
|
||||
|
||||
/**
|
||||
* 签约人名称
|
||||
*/
|
||||
@ApiModelProperty(value = "签约人名称")
|
||||
private String signerName;
|
||||
|
||||
/**
|
||||
* 签约人身份证号码
|
||||
*/
|
||||
@ApiModelProperty(value = "签约人身份证号码")
|
||||
private String signerIdCard;
|
||||
|
||||
/**
|
||||
* 签约人手机号
|
||||
*/
|
||||
@ApiModelProperty(value = "签约人手机号")
|
||||
private String signerPhone;
|
||||
|
||||
/**
|
||||
* 签约人身份证正面
|
||||
*/
|
||||
@ApiModelProperty(value = "签约人身份证正面")
|
||||
private String signerIdCardFront;
|
||||
|
||||
/**
|
||||
* 签约人身份证反面
|
||||
*/
|
||||
@ApiModelProperty(value = "签约人身份证反面")
|
||||
private String signerIdCardBack;
|
||||
|
||||
/**
|
||||
* 营业执照名字
|
||||
*/
|
||||
@ApiModelProperty(value = "营业执照名字")
|
||||
private String businessLicenseName;
|
||||
|
||||
/**
|
||||
* 营业执照社会信用代码
|
||||
*/
|
||||
@ApiModelProperty(value = "营业执照社会信用代码")
|
||||
private String businessLicenseCode;
|
||||
|
||||
/**
|
||||
* 营业执照照片
|
||||
*/
|
||||
@ApiModelProperty(value = "营业执照照片")
|
||||
private String businessLicensePhoto;
|
||||
|
||||
/**
|
||||
* 法人是否签约人
|
||||
*/
|
||||
@ApiModelProperty(value = "法人是否签约人")
|
||||
private Integer legalIsSigner;
|
||||
|
||||
/**
|
||||
* 法人身份证正面
|
||||
*/
|
||||
@ApiModelProperty(value = "法人身份证正面")
|
||||
private String legalIdCardFront;
|
||||
|
||||
/**
|
||||
* 法人身份证反面
|
||||
*/
|
||||
@ApiModelProperty(value = "法人身份证反面")
|
||||
private String legalIdCardBack;
|
||||
|
||||
/**
|
||||
* 结算卡
|
||||
*/
|
||||
@ApiModelProperty(value = "结算卡")
|
||||
private String settlementCard;
|
||||
|
||||
/**
|
||||
* 开户支行名称
|
||||
*/
|
||||
@ApiModelProperty(value = "开户支行名称")
|
||||
private String bankBranchName;
|
||||
|
||||
/**
|
||||
* 开户支行编号
|
||||
*/
|
||||
@ApiModelProperty(value = "开户支行编号")
|
||||
private String bankBranchCode;
|
||||
|
||||
/**
|
||||
* 银行预留手机号
|
||||
*/
|
||||
@ApiModelProperty(value = "银行预留手机号")
|
||||
private String bankReservedPhone;
|
||||
|
||||
@ApiModelProperty("来源,开通流程传1,其他0")
|
||||
private Integer source;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/26 18:14
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class PasswordDTO {
|
||||
|
||||
@ApiModelProperty(value = "密码是否已存在 1.存在 2.不存在", required = true)
|
||||
private Integer isExist;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
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
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
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;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 17:38
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
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;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 14:54
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class StoreAccountDTO {
|
||||
|
||||
/**
|
||||
* 营帐通的账户ID
|
||||
*/
|
||||
private String accountNo;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/18 18:20
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class StoreIdDTO {
|
||||
@ApiModelProperty(value = "商户门店编号",required = true)
|
||||
private String outStoreId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 网商激活短链DTO
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/20
|
||||
*/
|
||||
@Data
|
||||
public class TextMsgSendDTO {
|
||||
@ApiModelProperty("crm门店id")
|
||||
private String outStoreId;
|
||||
|
||||
@ApiModelProperty("H5 激活页短链(商户需访问此链接完成操作,非公网可直接访问需确认权限)")
|
||||
private String activityUrl;
|
||||
|
||||
@ApiModelProperty("短链失效时间(格式:YYYY-MM-DD HH:mm:ss,过期后需重新调用接口生成)")
|
||||
private String expireTime;
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/19 11:14
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class TradeRecordDTO implements Serializable {
|
||||
|
||||
@ApiModelProperty(value = "业务系统付款单号(如 CRM 单号)", required = true)
|
||||
private String reqNo;
|
||||
|
||||
@ApiModelProperty(value = "交易(营帐通)", required = true)
|
||||
private Long tradeId;
|
||||
|
||||
@ApiModelProperty(value = "交易流水号(扫呗)", required = true)
|
||||
private String outTradeNo;
|
||||
|
||||
@ApiModelProperty(value = "费用科目", required = true)
|
||||
private Integer feeItemId;
|
||||
|
||||
@ApiModelProperty(value = "费用科目名称", required = true)
|
||||
private String feeItemName;
|
||||
|
||||
@ApiModelProperty(value = "转出方门店编号")
|
||||
private String outStoreCode;
|
||||
|
||||
@ApiModelProperty(value = "转入方门店编号")
|
||||
private String inStoreCode;
|
||||
|
||||
@ApiModelProperty(value = "转出方门店名称")
|
||||
private String outStoreName;
|
||||
|
||||
@ApiModelProperty(value = "转入方门店名称")
|
||||
private String inStoreName;
|
||||
|
||||
@ApiModelProperty(value = "转出方账户编号")
|
||||
private String outAccountNo;
|
||||
|
||||
@ApiModelProperty(value = "转入方账户编号")
|
||||
private String inAccountNo;
|
||||
|
||||
@ApiModelProperty(value = "转出方账户名称")
|
||||
private String outAccountName;
|
||||
|
||||
@ApiModelProperty(value = "转入方账户名称")
|
||||
private String inAccountName;
|
||||
|
||||
@ApiModelProperty(value = "提现银行卡号")
|
||||
private String withdrawalBankCardNo;
|
||||
|
||||
@ApiModelProperty(value = "提现银行卡户名")
|
||||
private String withdrawalBankCardName;
|
||||
|
||||
@ApiModelProperty(value = "金额(元)", required = true)
|
||||
private String amount;
|
||||
|
||||
@ApiModelProperty(value = "交易状态1.成功 2.失败 3.处理中 4.已退款", required = true)
|
||||
private Integer tradeStatus;
|
||||
|
||||
@ApiModelProperty(value = "1.转账2.提现 交易类型", required = true)
|
||||
private Integer tradeType;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(value = "错误原因")
|
||||
private String errMsg;
|
||||
|
||||
@ApiModelProperty(value = "交易发起时间YYYY-MM-DD HH:MM:SS", required = true)
|
||||
private String createTime;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
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/19 11:15
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class TradeRecordListDTO {
|
||||
|
||||
private List<TradeRecordDTO> pageData;
|
||||
|
||||
|
||||
private WalletBasicPageInfo page;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/14 9:49
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class TransferDTO {
|
||||
|
||||
@ApiModelProperty(value="业务系统付款单号(如 CRM 单号)",required = true)
|
||||
private String reqNo;
|
||||
@ApiModelProperty(value="转账交易Id",required = true)
|
||||
private Long tradeId;
|
||||
@ApiModelProperty(value="金额(元)",required = true)
|
||||
private String amount;
|
||||
@ApiModelProperty(value="交易状态1.成功 2.失败 3.处理中",required = true)
|
||||
private Integer tradeStatus;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.cool.store.dto.wallet;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/14 9:59
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class WithDrawerDTO {
|
||||
|
||||
@ApiModelProperty(value = "门店ID",required = true)
|
||||
private String outStoreId;
|
||||
@ApiModelProperty(value = "业务系统付款单号(如 CRM 单号)",required = true)
|
||||
private String reqNo;
|
||||
@ApiModelProperty(value = "转账交易Id(营帐通系统)",required = true)
|
||||
private String tradeId;
|
||||
@ApiModelProperty(value = "提现科目",required = true)
|
||||
private Long feeItemId;
|
||||
@ApiModelProperty(value = "提现账户编号",required = true)
|
||||
private String accountNo;
|
||||
@ApiModelProperty(value = "金额(元)",required = true)
|
||||
private String amount;
|
||||
@ApiModelProperty(value = "交易状态1.成功 2.失败 3.处理中",required = true)
|
||||
private String tradeStatus;
|
||||
|
||||
}
|
||||
@@ -158,4 +158,7 @@ public class ShopInfoDO {
|
||||
//红圈通门店id
|
||||
@Column(name = "hqt_shop_id")
|
||||
private String hqtShopId;
|
||||
// 门店id
|
||||
@Column(name = "store_id")
|
||||
private String storeId;
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
package com.cool.store.entity.wallet;
|
||||
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
@Table(name = "zxjp_open_bank_info")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class OpenBankInfoDO {
|
||||
/**
|
||||
* 门店编号
|
||||
*/
|
||||
@Column(name = "store_code")
|
||||
private String storeCode;
|
||||
|
||||
/**
|
||||
* 门店id
|
||||
*/
|
||||
@Column(name = "store_id")
|
||||
private String storeId;
|
||||
|
||||
/**
|
||||
* 签约人名称
|
||||
*/
|
||||
@Column(name = "signer_name")
|
||||
private String signerName;
|
||||
|
||||
/**
|
||||
* 签约人身份证号码
|
||||
*/
|
||||
@Column(name = "signer_id_card")
|
||||
private String signerIdCard;
|
||||
|
||||
/**
|
||||
* 签约人手机号
|
||||
*/
|
||||
@Column(name = "signer_phone")
|
||||
private String signerPhone;
|
||||
|
||||
/**
|
||||
* 签约人身份证正面
|
||||
*/
|
||||
@Column(name = "signer_id_card_front")
|
||||
private String signerIdCardFront;
|
||||
|
||||
/**
|
||||
* 签约人身份证反面
|
||||
*/
|
||||
@Column(name = "signer_id_card_back")
|
||||
private String signerIdCardBack;
|
||||
|
||||
/**
|
||||
* 营业执照名字
|
||||
*/
|
||||
@Column(name = "business_license_name")
|
||||
private String businessLicenseName;
|
||||
|
||||
/**
|
||||
* 营业执照社会信用代码
|
||||
*/
|
||||
@Column(name = "business_license_code")
|
||||
private String businessLicenseCode;
|
||||
|
||||
/**
|
||||
* 营业执照照片
|
||||
*/
|
||||
@Column(name = "business_license_photo")
|
||||
private String businessLicensePhoto;
|
||||
|
||||
/**
|
||||
* 法人名称
|
||||
*/
|
||||
@Column(name = "legal_name")
|
||||
private String legalName;
|
||||
|
||||
/**
|
||||
* 法人身份证号码
|
||||
*/
|
||||
@Column(name = "legal_id_card")
|
||||
private String legalIdCard;
|
||||
|
||||
/**
|
||||
* 法人身份证有效期字段
|
||||
*/
|
||||
@Column(name = "legal_id_card_expire_time")
|
||||
private String legalIdCardExpireTime;
|
||||
|
||||
/**
|
||||
* 法人手机号
|
||||
*/
|
||||
@Column(name = "legal_phone")
|
||||
private String legalPhone;
|
||||
|
||||
/**
|
||||
* 法人是否签约人
|
||||
*/
|
||||
@Column(name = "legal_is_signer")
|
||||
private Integer legalIsSigner;
|
||||
|
||||
/**
|
||||
* 法人身份证正面
|
||||
*/
|
||||
@Column(name = "legal_id_card_front")
|
||||
private String legalIdCardFront;
|
||||
|
||||
/**
|
||||
* 法人身份证反面
|
||||
*/
|
||||
@Column(name = "legal_id_card_back")
|
||||
private String legalIdCardBack;
|
||||
|
||||
/**
|
||||
* 结算卡
|
||||
*/
|
||||
@Column(name = "settlement_card")
|
||||
private String settlementCard;
|
||||
|
||||
/**
|
||||
* 开户支行名称
|
||||
*/
|
||||
@Column(name = "bank_branch_name")
|
||||
private String bankBranchName;
|
||||
|
||||
/**
|
||||
* 开户支行编号
|
||||
*/
|
||||
@Column(name = "bank_branch_code")
|
||||
private String bankBranchCode;
|
||||
|
||||
/**
|
||||
* 银行预留手机号
|
||||
*/
|
||||
@Column(name = "bank_reserved_phone")
|
||||
private String bankReservedPhone;
|
||||
|
||||
/**
|
||||
* 来源,开通流程传1,其他0
|
||||
*/
|
||||
@Column(name = "source")
|
||||
private Integer source;
|
||||
}
|
||||
@@ -0,0 +1,599 @@
|
||||
package com.cool.store.entity.wallet;
|
||||
|
||||
import java.util.Date;
|
||||
import javax.persistence.*;
|
||||
|
||||
@Table(name = "zxjp_temp_open_wallet_info")
|
||||
public class TempOpenWalletInfoDO {
|
||||
/**
|
||||
* 门店编号
|
||||
*/
|
||||
@Column(name = "store_code")
|
||||
private String storeCode;
|
||||
|
||||
/**
|
||||
* 门店名称
|
||||
*/
|
||||
@Column(name = "store_name")
|
||||
private String storeName;
|
||||
|
||||
/**
|
||||
* 门店模式
|
||||
*/
|
||||
@Column(name = "store_mode")
|
||||
private String storeMode;
|
||||
|
||||
/**
|
||||
* 台账名称
|
||||
*/
|
||||
@Column(name = "ledger_name")
|
||||
private String ledgerName;
|
||||
|
||||
/**
|
||||
* 台账状态
|
||||
*/
|
||||
@Column(name = "ledger_status")
|
||||
private String ledgerStatus;
|
||||
|
||||
/**
|
||||
* 工商类型
|
||||
*/
|
||||
@Column(name = "business_type")
|
||||
private String businessType;
|
||||
|
||||
/**
|
||||
* 工商注册名称
|
||||
*/
|
||||
@Column(name = "business_reg_name")
|
||||
private String businessRegName;
|
||||
|
||||
/**
|
||||
* 营业执照编号
|
||||
*/
|
||||
@Column(name = "business_license_no")
|
||||
private String businessLicenseNo;
|
||||
|
||||
/**
|
||||
* 工商地址
|
||||
*/
|
||||
@Column(name = "business_address")
|
||||
private String businessAddress;
|
||||
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
private String province;
|
||||
|
||||
/**
|
||||
* 市
|
||||
*/
|
||||
private String city;
|
||||
|
||||
/**
|
||||
* 区
|
||||
*/
|
||||
private String district;
|
||||
|
||||
/**
|
||||
* 法人名称
|
||||
*/
|
||||
@Column(name = "legal_person_name")
|
||||
private String legalPersonName;
|
||||
|
||||
/**
|
||||
* 法人证件号
|
||||
*/
|
||||
@Column(name = "legal_person_id_no")
|
||||
private String legalPersonIdNo;
|
||||
|
||||
/**
|
||||
* 身份证开始时间
|
||||
*/
|
||||
@Column(name = "legal_id_start_date")
|
||||
private Date legalIdStartDate;
|
||||
|
||||
/**
|
||||
* 身份证过期时间
|
||||
*/
|
||||
@Column(name = "legal_id_expire_date")
|
||||
private Date legalIdExpireDate;
|
||||
|
||||
/**
|
||||
* 结算人
|
||||
*/
|
||||
@Column(name = "settler_name")
|
||||
private String settlerName;
|
||||
|
||||
/**
|
||||
* 结算人证件号
|
||||
*/
|
||||
@Column(name = "settler_id_no")
|
||||
private String settlerIdNo;
|
||||
|
||||
/**
|
||||
* 结算人身份证开始时间
|
||||
*/
|
||||
@Column(name = "settler_id_start_date")
|
||||
private Date settlerIdStartDate;
|
||||
|
||||
/**
|
||||
* 结算人身份证过期时间
|
||||
*/
|
||||
@Column(name = "settler_id_expire_date")
|
||||
private Date settlerIdExpireDate;
|
||||
|
||||
/**
|
||||
* 开户支行名称
|
||||
*/
|
||||
@Column(name = "bank_branch_name")
|
||||
private String bankBranchName;
|
||||
|
||||
/**
|
||||
* 开户支行编号
|
||||
*/
|
||||
@Column(name = "bank_branch_no")
|
||||
private String bankBranchNo;
|
||||
|
||||
/**
|
||||
* 结算卡
|
||||
*/
|
||||
@Column(name = "settlement_card_no")
|
||||
private String settlementCardNo;
|
||||
|
||||
/**
|
||||
* 银行预留手机号
|
||||
*/
|
||||
@Column(name = "bank_reserved_phone")
|
||||
private String bankReservedPhone;
|
||||
|
||||
/**
|
||||
* 分账关系
|
||||
*/
|
||||
@Column(name = "accounting_relation")
|
||||
private String accountingRelation;
|
||||
|
||||
/**
|
||||
* 获取门店编号
|
||||
*
|
||||
* @return store_id - 门店编号
|
||||
*/
|
||||
public String getStoreCode() {
|
||||
return storeCode;
|
||||
}
|
||||
|
||||
public void setStoreCode(String storeCode) {
|
||||
this.storeCode = storeCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取门店名称
|
||||
*
|
||||
* @return store_name - 门店名称
|
||||
*/
|
||||
public String getStoreName() {
|
||||
return storeName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置门店名称
|
||||
*
|
||||
* @param storeName 门店名称
|
||||
*/
|
||||
public void setStoreName(String storeName) {
|
||||
this.storeName = storeName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取门店模式
|
||||
*
|
||||
* @return store_mode - 门店模式
|
||||
*/
|
||||
public String getStoreMode() {
|
||||
return storeMode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置门店模式
|
||||
*
|
||||
* @param storeMode 门店模式
|
||||
*/
|
||||
public void setStoreMode(String storeMode) {
|
||||
this.storeMode = storeMode;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取台账名称
|
||||
*
|
||||
* @return ledger_name - 台账名称
|
||||
*/
|
||||
public String getLedgerName() {
|
||||
return ledgerName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置台账名称
|
||||
*
|
||||
* @param ledgerName 台账名称
|
||||
*/
|
||||
public void setLedgerName(String ledgerName) {
|
||||
this.ledgerName = ledgerName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取台账状态
|
||||
*
|
||||
* @return ledger_status - 台账状态
|
||||
*/
|
||||
public String getLedgerStatus() {
|
||||
return ledgerStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置台账状态
|
||||
*
|
||||
* @param ledgerStatus 台账状态
|
||||
*/
|
||||
public void setLedgerStatus(String ledgerStatus) {
|
||||
this.ledgerStatus = ledgerStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取工商类型
|
||||
*
|
||||
* @return business_type - 工商类型
|
||||
*/
|
||||
public String getBusinessType() {
|
||||
return businessType;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置工商类型
|
||||
*
|
||||
* @param businessType 工商类型
|
||||
*/
|
||||
public void setBusinessType(String businessType) {
|
||||
this.businessType = businessType;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取工商注册名称
|
||||
*
|
||||
* @return business_reg_name - 工商注册名称
|
||||
*/
|
||||
public String getBusinessRegName() {
|
||||
return businessRegName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置工商注册名称
|
||||
*
|
||||
* @param businessRegName 工商注册名称
|
||||
*/
|
||||
public void setBusinessRegName(String businessRegName) {
|
||||
this.businessRegName = businessRegName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取营业执照编号
|
||||
*
|
||||
* @return business_license_no - 营业执照编号
|
||||
*/
|
||||
public String getBusinessLicenseNo() {
|
||||
return businessLicenseNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置营业执照编号
|
||||
*
|
||||
* @param businessLicenseNo 营业执照编号
|
||||
*/
|
||||
public void setBusinessLicenseNo(String businessLicenseNo) {
|
||||
this.businessLicenseNo = businessLicenseNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取工商地址
|
||||
*
|
||||
* @return business_address - 工商地址
|
||||
*/
|
||||
public String getBusinessAddress() {
|
||||
return businessAddress;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置工商地址
|
||||
*
|
||||
* @param businessAddress 工商地址
|
||||
*/
|
||||
public void setBusinessAddress(String businessAddress) {
|
||||
this.businessAddress = businessAddress;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取省
|
||||
*
|
||||
* @return province - 省
|
||||
*/
|
||||
public String getProvince() {
|
||||
return province;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置省
|
||||
*
|
||||
* @param province 省
|
||||
*/
|
||||
public void setProvince(String province) {
|
||||
this.province = province;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取市
|
||||
*
|
||||
* @return city - 市
|
||||
*/
|
||||
public String getCity() {
|
||||
return city;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置市
|
||||
*
|
||||
* @param city 市
|
||||
*/
|
||||
public void setCity(String city) {
|
||||
this.city = city;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取区
|
||||
*
|
||||
* @return district - 区
|
||||
*/
|
||||
public String getDistrict() {
|
||||
return district;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置区
|
||||
*
|
||||
* @param district 区
|
||||
*/
|
||||
public void setDistrict(String district) {
|
||||
this.district = district;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取法人名称
|
||||
*
|
||||
* @return legal_person_name - 法人名称
|
||||
*/
|
||||
public String getLegalPersonName() {
|
||||
return legalPersonName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置法人名称
|
||||
*
|
||||
* @param legalPersonName 法人名称
|
||||
*/
|
||||
public void setLegalPersonName(String legalPersonName) {
|
||||
this.legalPersonName = legalPersonName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取法人证件号
|
||||
*
|
||||
* @return legal_person_id_no - 法人证件号
|
||||
*/
|
||||
public String getLegalPersonIdNo() {
|
||||
return legalPersonIdNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置法人证件号
|
||||
*
|
||||
* @param legalPersonIdNo 法人证件号
|
||||
*/
|
||||
public void setLegalPersonIdNo(String legalPersonIdNo) {
|
||||
this.legalPersonIdNo = legalPersonIdNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取身份证开始时间
|
||||
*
|
||||
* @return legal_id_start_date - 身份证开始时间
|
||||
*/
|
||||
public Date getLegalIdStartDate() {
|
||||
return legalIdStartDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置身份证开始时间
|
||||
*
|
||||
* @param legalIdStartDate 身份证开始时间
|
||||
*/
|
||||
public void setLegalIdStartDate(Date legalIdStartDate) {
|
||||
this.legalIdStartDate = legalIdStartDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取身份证过期时间
|
||||
*
|
||||
* @return legal_id_expire_date - 身份证过期时间
|
||||
*/
|
||||
public Date getLegalIdExpireDate() {
|
||||
return legalIdExpireDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置身份证过期时间
|
||||
*
|
||||
* @param legalIdExpireDate 身份证过期时间
|
||||
*/
|
||||
public void setLegalIdExpireDate(Date legalIdExpireDate) {
|
||||
this.legalIdExpireDate = legalIdExpireDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取结算人
|
||||
*
|
||||
* @return settler_name - 结算人
|
||||
*/
|
||||
public String getSettlerName() {
|
||||
return settlerName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置结算人
|
||||
*
|
||||
* @param settlerName 结算人
|
||||
*/
|
||||
public void setSettlerName(String settlerName) {
|
||||
this.settlerName = settlerName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取结算人证件号
|
||||
*
|
||||
* @return settler_id_no - 结算人证件号
|
||||
*/
|
||||
public String getSettlerIdNo() {
|
||||
return settlerIdNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置结算人证件号
|
||||
*
|
||||
* @param settlerIdNo 结算人证件号
|
||||
*/
|
||||
public void setSettlerIdNo(String settlerIdNo) {
|
||||
this.settlerIdNo = settlerIdNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取结算人身份证开始时间
|
||||
*
|
||||
* @return settler_id_start_date - 结算人身份证开始时间
|
||||
*/
|
||||
public Date getSettlerIdStartDate() {
|
||||
return settlerIdStartDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置结算人身份证开始时间
|
||||
*
|
||||
* @param settlerIdStartDate 结算人身份证开始时间
|
||||
*/
|
||||
public void setSettlerIdStartDate(Date settlerIdStartDate) {
|
||||
this.settlerIdStartDate = settlerIdStartDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取结算人身份证过期时间
|
||||
*
|
||||
* @return settler_id_expire_date - 结算人身份证过期时间
|
||||
*/
|
||||
public Date getSettlerIdExpireDate() {
|
||||
return settlerIdExpireDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置结算人身份证过期时间
|
||||
*
|
||||
* @param settlerIdExpireDate 结算人身份证过期时间
|
||||
*/
|
||||
public void setSettlerIdExpireDate(Date settlerIdExpireDate) {
|
||||
this.settlerIdExpireDate = settlerIdExpireDate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取开户支行名称
|
||||
*
|
||||
* @return bank_branch_name - 开户支行名称
|
||||
*/
|
||||
public String getBankBranchName() {
|
||||
return bankBranchName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置开户支行名称
|
||||
*
|
||||
* @param bankBranchName 开户支行名称
|
||||
*/
|
||||
public void setBankBranchName(String bankBranchName) {
|
||||
this.bankBranchName = bankBranchName;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取开户支行编号
|
||||
*
|
||||
* @return bank_branch_no - 开户支行编号
|
||||
*/
|
||||
public String getBankBranchNo() {
|
||||
return bankBranchNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置开户支行编号
|
||||
*
|
||||
* @param bankBranchNo 开户支行编号
|
||||
*/
|
||||
public void setBankBranchNo(String bankBranchNo) {
|
||||
this.bankBranchNo = bankBranchNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取结算卡
|
||||
*
|
||||
* @return settlement_card_no - 结算卡
|
||||
*/
|
||||
public String getSettlementCardNo() {
|
||||
return settlementCardNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置结算卡
|
||||
*
|
||||
* @param settlementCardNo 结算卡
|
||||
*/
|
||||
public void setSettlementCardNo(String settlementCardNo) {
|
||||
this.settlementCardNo = settlementCardNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取银行预留手机号
|
||||
*
|
||||
* @return bank_reserved_phone - 银行预留手机号
|
||||
*/
|
||||
public String getBankReservedPhone() {
|
||||
return bankReservedPhone;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置银行预留手机号
|
||||
*
|
||||
* @param bankReservedPhone 银行预留手机号
|
||||
*/
|
||||
public void setBankReservedPhone(String bankReservedPhone) {
|
||||
this.bankReservedPhone = bankReservedPhone;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取分账关系
|
||||
*
|
||||
* @return accounting_relation - 分账关系
|
||||
*/
|
||||
public String getAccountingRelation() {
|
||||
return accountingRelation;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置分账关系
|
||||
*
|
||||
* @param accountingRelation 分账关系
|
||||
*/
|
||||
public void setAccountingRelation(String accountingRelation) {
|
||||
this.accountingRelation = accountingRelation;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package com.cool.store.entity.wallet;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import javax.persistence.*;
|
||||
|
||||
/**
|
||||
* 钱包支付订单
|
||||
*/
|
||||
@Table(name = "zxjp_wallet_payment_order")
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class WalletPaymentOrderDO {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 门店id
|
||||
*/
|
||||
@Column(name = "store_id")
|
||||
private String storeId;
|
||||
|
||||
/**
|
||||
* 预支付id
|
||||
*/
|
||||
@Column(name = "payment_id")
|
||||
private String paymentId;
|
||||
|
||||
/**
|
||||
* 订单类型,0充值 1提现
|
||||
*/
|
||||
@Column(name = "type")
|
||||
private Integer type;
|
||||
|
||||
/**
|
||||
* 金额
|
||||
*/
|
||||
private BigDecimal amount;
|
||||
|
||||
/**
|
||||
* 过期时间
|
||||
*/
|
||||
@Column(name = "expire_time")
|
||||
private String expireTime;
|
||||
|
||||
/**
|
||||
* 订单状态:1-成功 2-失败 3-支付中 4-撤销
|
||||
*/
|
||||
@Column(name = "order_status")
|
||||
private Integer orderStatus;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Column(name = "create_time")
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@Column(name = "update_time")
|
||||
private Date updateTime;
|
||||
}
|
||||
@@ -16,6 +16,8 @@ import java.util.Date;
|
||||
public class StoreMasterDTO {
|
||||
|
||||
private String enterpriseId;
|
||||
@ApiModelProperty("门店id")
|
||||
private String storeId;
|
||||
|
||||
@ApiModelProperty("门店名称(加盟签约)")
|
||||
private String storeName;
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 14:09
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(description = "营业执照信息请求参数")
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
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;
|
||||
|
||||
@ApiModelProperty(value = "开户许可证图片链接,企业必选", required = true)
|
||||
private String industryLicensePhoto;
|
||||
|
||||
@ApiModelProperty(value = "法人代表证件人像面图片链接", required = true)
|
||||
private String certPhotoA;
|
||||
|
||||
@ApiModelProperty(value = "法人代表证件国徽面 / 签证面图片链接", required = true)
|
||||
private String certPhotoB;
|
||||
|
||||
@ApiModelProperty(value = "营业执照图片链接", required = true)
|
||||
private String licensePhoto;
|
||||
|
||||
@ApiModelProperty(value = "签约人证件人像面图片链接", required = true)
|
||||
private String signatoryPhotoA;
|
||||
|
||||
@ApiModelProperty(value = "签约人证件国徽面图片链接", required = true)
|
||||
private String signatoryPhotoB;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/18 10:02
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class AccountBatchQueryRequest {
|
||||
|
||||
@ApiModelProperty(value = "关键字(账户名称、账户别名)")
|
||||
private String keyword;
|
||||
|
||||
@ApiModelProperty(value = "账户状态 1 待提交 2 待鉴权 3 鉴权中 4开通 账户状态")
|
||||
private Integer accountStatus;
|
||||
|
||||
@ApiModelProperty(value = "工商类型 1.企业 2.个体工商户 3.小微商户(自然人)")
|
||||
private Integer businessType;
|
||||
|
||||
@ApiModelProperty(value = "门店id")
|
||||
private String outStoreId;
|
||||
|
||||
@ApiModelProperty(value = "分页信息",required = true)
|
||||
private WalletBasicPageInfo page;
|
||||
|
||||
@ApiModelProperty(value = "钱包类型 1.平安 2.网商", required = true)
|
||||
private Integer walletType;
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 交易流水查询Request
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/17
|
||||
*/
|
||||
@Data
|
||||
public class AccountBillQueryRequest extends StoreShopRequest {
|
||||
|
||||
@ApiModelProperty("交易开始时间,不传查当月")
|
||||
private Date beginDate;
|
||||
|
||||
@ApiModelProperty("交易结束时间")
|
||||
private Date endDate;
|
||||
|
||||
@ApiModelProperty(value = "钱包类型 1.平安 2.网商", required = true)
|
||||
@NotNull(message = "钱包类型不能为空")
|
||||
private Integer walletType;
|
||||
|
||||
@ApiModelProperty("是否签约人账户 0 否 1 是")
|
||||
private Integer isLegal;
|
||||
|
||||
@ApiModelProperty("交易类型: 0.全部,1.支出 2.收入")
|
||||
private Integer recordType;
|
||||
|
||||
@ApiModelProperty("费用类型ID")
|
||||
private Long feeItemId;
|
||||
|
||||
//页码
|
||||
private Integer pageNum;
|
||||
|
||||
//分页大小
|
||||
private Integer pageSize;
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 平安钱包账户创建Request
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/13
|
||||
*/
|
||||
@Data
|
||||
public class AccountCreateRequest {
|
||||
@ApiModelProperty("门店id")
|
||||
@NotNull(message = "门店id不能为空")
|
||||
private Long shopId;
|
||||
|
||||
@ApiModelProperty("签约人姓名")
|
||||
@NotBlank(message = "签约人姓名不能为空")
|
||||
private String userName;
|
||||
|
||||
@ApiModelProperty("签约人手机号")
|
||||
@NotBlank(message = "签约人手机号不能为空")
|
||||
private String mobile;
|
||||
|
||||
@ApiModelProperty("签约人身份证号")
|
||||
@NotBlank(message = "签约人身份证号不能为空")
|
||||
private String idCardNo;
|
||||
|
||||
@ApiModelProperty("银行卡号")
|
||||
@NotBlank(message = "银行卡号不能为空")
|
||||
private String bankNumber;
|
||||
|
||||
@ApiModelProperty("银行开户支行")
|
||||
@NotBlank(message = "银行开户行不能为空")
|
||||
private String bankName;
|
||||
|
||||
@ApiModelProperty("银行开户支行编号")
|
||||
@NotBlank(message = "银行开户行编号不能为空")
|
||||
private String bankNo;
|
||||
|
||||
@ApiModelProperty("银行卡预留手机号")
|
||||
@NotBlank(message = "银行卡预留手机号不能为空")
|
||||
private String bankMobile;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 平安钱包账户开通Request
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/13
|
||||
*/
|
||||
@Data
|
||||
public class AccountOpenRequest {
|
||||
@ApiModelProperty("shopId")
|
||||
private Long shopId;
|
||||
|
||||
@ApiModelProperty("短信验证码")
|
||||
private String code;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 账户密码维护Request
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/17
|
||||
*/
|
||||
@Data
|
||||
public class AccountPasswordRequest extends StoreShopRequest {
|
||||
|
||||
@ApiModelProperty("维护类型 1.设置密码 2.修改密码")
|
||||
@NotNull(message = "维护类型不能为空")
|
||||
private Integer upholdType;
|
||||
|
||||
@ApiModelProperty("新支付密码(sm3加密后字符串)")
|
||||
@NotNull(message = "新支付密码不能为空")
|
||||
private String newPayPwd;
|
||||
|
||||
@ApiModelProperty("确认新支付密码(sm3加密后字符串)")
|
||||
@NotNull(message = "确认新支付密码不能为空")
|
||||
private String confirmPayPwd;
|
||||
|
||||
@ApiModelProperty("当前使用的支付密码(sm3加密后字符串),维护类型为修改密码时必填")
|
||||
private String currentPayPwd;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.Digits;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 账户充值Request
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/17
|
||||
*/
|
||||
@Data
|
||||
public class AccountPaymentRequest extends StoreShopRequest {
|
||||
@ApiModelProperty(value = "支付金额")
|
||||
@Digits(integer = 10, fraction = 2, message = "金额整数位最多10位,小数位最多2位")
|
||||
private BigDecimal amount;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 账户查询Request
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/19
|
||||
*/
|
||||
@Data
|
||||
public class AccountQueryRequest extends StoreShopRequest {
|
||||
@ApiModelProperty("钱包类型 1平安 2网商")
|
||||
private Integer walletType;
|
||||
|
||||
@ApiModelProperty("账户编号")
|
||||
private String accountNo;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/18 9:36
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class AccountTradeCallbackRequest {
|
||||
|
||||
@ApiModelProperty(name = "CRM门店编号", required = true)
|
||||
private String outStoreId;
|
||||
@ApiModelProperty(name = "业务系统付款单号(如 CRM 单号)", required = true)
|
||||
private String reqNo;
|
||||
@ApiModelProperty(name = "交易Id", required = true)
|
||||
private Long tradeId;
|
||||
@ApiModelProperty(name = "交易编号", required = true)
|
||||
private String outTTradeNo;
|
||||
@ApiModelProperty(name = "金额(元)", required = true)
|
||||
private String amount;
|
||||
@ApiModelProperty(name = "交易状态1.成功 2.失败 3.处理中", required = true)
|
||||
private Integer tradeStatus;
|
||||
@ApiModelProperty(name = "1.转账2.提现", required = true)
|
||||
private Integer tradeType;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 16:08
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class AccountVerifyRequest {
|
||||
|
||||
private String outStoreId;
|
||||
|
||||
private String verifyNo;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/17 13:49
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class AddTagCallbackNoticeRequest {
|
||||
|
||||
@ApiModelProperty(name = "CRM门店编号", required = true)
|
||||
private String outStoreId;
|
||||
@ApiModelProperty(name = "状态1.打标成功 2.打标失败 3.处理中(打标状态)", required = true)
|
||||
private Integer status;
|
||||
@ApiModelProperty(name = "1.法人 2.非法人", required = true)
|
||||
private Integer addTagType;
|
||||
@ApiModelProperty(name = "失败原因", required = false)
|
||||
private String errorMsg;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import com.cool.store.common.PageBasicInfo;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 支行信息查询Request
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/14
|
||||
*/
|
||||
@Data
|
||||
public class BankListRequest extends PageBasicInfo {
|
||||
@ApiModelProperty("银行名称")
|
||||
private String headName;
|
||||
|
||||
@ApiModelProperty("关键字查询")
|
||||
private String keyword;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Description 门店签约账户转账提现查询接口
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/14 10:05
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class BillDetailRequest {
|
||||
|
||||
@ApiModelProperty(value = "转账交易Id(转账交易编号二选一)")
|
||||
private Long tradeId;
|
||||
@ApiModelProperty(value = "转账交易编号(转账交易Id二选一)")
|
||||
private String outTradeNo;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/14 10:17
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class BillPageRequest {
|
||||
|
||||
@ApiModelProperty(value = "门店ID", required = true)
|
||||
private String outStoreId;
|
||||
@ApiModelProperty(value = "交易开始时间YYYY-MM-DD HH:MM:SS", required = true)
|
||||
private String beginDate;
|
||||
@ApiModelProperty(value = "交易结束时间YYYY-MM-DD HH:MM:SS", required = true)
|
||||
private String endDate;
|
||||
@ApiModelProperty(value = "钱包类型 1.平安 2.网商", required = true)
|
||||
private Integer walletType;
|
||||
@ApiModelProperty(value = "是否签约人钱包", required = false)
|
||||
private Integer isLegal;
|
||||
@ApiModelProperty(value = "交易类型: 0.全部,1.支出 2.收入", required = false)
|
||||
private Integer recordType;
|
||||
@ApiModelProperty(value = "费用类型ID", required = true)
|
||||
private Long feeItemId;
|
||||
@ApiModelProperty(value = "当前页码", required = true)
|
||||
private Integer currentPage;
|
||||
@ApiModelProperty(value = "每页数量", required = true)
|
||||
private Integer pageSize;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import com.cool.store.common.PageBasicInfo;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/19 13:56
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class CoolAccountBatchQueryRequest extends PageBasicInfo {
|
||||
|
||||
@ApiModelProperty(value = "关键字(账户名称、账户别名)")
|
||||
private String keyword;
|
||||
|
||||
@ApiModelProperty(value = "账户状态 1 待提交 2 待鉴权 3 鉴权中 4开通 账户状态")
|
||||
private Integer accountStatus;
|
||||
|
||||
@ApiModelProperty(value = "工商类型 1.企业 2.个体工商户 3.小微商户(自然人)")
|
||||
private Integer businessType;
|
||||
|
||||
@ApiModelProperty(value = "门店id")
|
||||
private String outStoreId;
|
||||
|
||||
private Integer walletType;
|
||||
|
||||
public AccountBatchQueryRequest convertToAccountBatchQueryRequest() {
|
||||
AccountBatchQueryRequest target = new AccountBatchQueryRequest();
|
||||
target.setKeyword(this.getKeyword());
|
||||
target.setAccountStatus(this.getAccountStatus());
|
||||
target.setBusinessType(this.getBusinessType());
|
||||
target.setOutStoreId(this.getOutStoreId());
|
||||
target.setWalletType(this.getWalletType());
|
||||
|
||||
WalletBasicPageInfo walletBasicPageInfo = new WalletBasicPageInfo();
|
||||
walletBasicPageInfo.setCurrentPage(this.getPageNum());
|
||||
walletBasicPageInfo.setPageSize(this.getPageSize());
|
||||
target.setPage(walletBasicPageInfo);
|
||||
return target;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/20 13:38
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class CoolOpenBasicInfoRequest {
|
||||
@ApiModelProperty(value = "门店id")
|
||||
private String storeId;
|
||||
|
||||
@ApiModelProperty(value = "门店编号")
|
||||
private String storeCode;
|
||||
|
||||
/**
|
||||
* 签约人名称
|
||||
*/
|
||||
@ApiModelProperty(value = "签约人名称")
|
||||
private String signerName;
|
||||
|
||||
/**
|
||||
* 签约人身份证号码
|
||||
*/
|
||||
@ApiModelProperty(value = "签约人身份证号码")
|
||||
private String signerIdCard;
|
||||
|
||||
/**
|
||||
* 签约人手机号
|
||||
*/
|
||||
@ApiModelProperty(value = "签约人手机号")
|
||||
private String signerPhone;
|
||||
|
||||
/**
|
||||
* 签约人身份证正面
|
||||
*/
|
||||
@ApiModelProperty(value = "签约人身份证正面")
|
||||
private String signerIdCardFront;
|
||||
|
||||
/**
|
||||
* 签约人身份证反面
|
||||
*/
|
||||
@ApiModelProperty(value = "签约人身份证反面")
|
||||
private String signerIdCardBack;
|
||||
|
||||
/**
|
||||
* 营业执照名字
|
||||
*/
|
||||
@ApiModelProperty(value = "营业执照名字")
|
||||
private String businessLicenseName;
|
||||
|
||||
/**
|
||||
* 营业执照社会信用代码
|
||||
*/
|
||||
@ApiModelProperty(value = "营业执照社会信用代码")
|
||||
private String businessLicenseCode;
|
||||
|
||||
/**
|
||||
* 营业执照照片
|
||||
*/
|
||||
@ApiModelProperty(value = "营业执照照片")
|
||||
private String businessLicensePhoto;
|
||||
|
||||
/**
|
||||
* 法人是否签约人
|
||||
*/
|
||||
@ApiModelProperty(value = "法人是否签约人")
|
||||
private Integer legalIsSigner;
|
||||
|
||||
|
||||
/**
|
||||
* 法人名称
|
||||
*/
|
||||
@ApiModelProperty(value = "法人名称")
|
||||
private String legalName;
|
||||
|
||||
/**
|
||||
* 法人身份证号码
|
||||
*/
|
||||
@ApiModelProperty(value = "法人身份证号码")
|
||||
private String legalIdCard;
|
||||
|
||||
@ApiModelProperty("法人身份证有效期字段,yyyy-MM-dd")
|
||||
private String legalIdCardExpireTime;
|
||||
|
||||
/**
|
||||
* 法人手机号
|
||||
*/
|
||||
@ApiModelProperty(value = "法人手机号")
|
||||
private String legalPhone;
|
||||
|
||||
|
||||
/**
|
||||
* 法人身份证正面
|
||||
*/
|
||||
@ApiModelProperty(value = "法人身份证正面")
|
||||
private String legalIdCardFront;
|
||||
|
||||
/**
|
||||
* 法人身份证反面
|
||||
*/
|
||||
@ApiModelProperty(value = "法人身份证反面")
|
||||
private String legalIdCardBack;
|
||||
|
||||
/**
|
||||
* 结算卡
|
||||
*/
|
||||
@ApiModelProperty(value = "结算卡")
|
||||
private String settlementCard;
|
||||
|
||||
/**
|
||||
* 开户支行名称
|
||||
*/
|
||||
@ApiModelProperty(value = "开户支行名称")
|
||||
private String bankBranchName;
|
||||
|
||||
/**
|
||||
* 开户支行编号
|
||||
*/
|
||||
@ApiModelProperty(value = "开户支行编号")
|
||||
private String bankBranchCode;
|
||||
|
||||
/**
|
||||
* 银行预留手机号
|
||||
*/
|
||||
@ApiModelProperty(value = "银行预留手机号")
|
||||
private String bankReservedPhone;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import com.cool.store.common.PageBasicInfo;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/19 14:09
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class CoolTradeRecodePageRequest extends PageBasicInfo {
|
||||
|
||||
@ApiModelProperty(value = "交易开始时间YYYY-MM-DD HH:MM:SS",required = true)
|
||||
private String beginDate;
|
||||
@ApiModelProperty(value = "交易结束时间YYYY-MM-DD HH:MM:SS",required = true)
|
||||
private String endDate;
|
||||
@ApiModelProperty(value = "钱包类型 1.平安 2.网商",required = true)
|
||||
private Integer walletType;
|
||||
@ApiModelProperty(value = "关键字(账户名称,账户编号,业务系统付款单号,提现银行卡号)",required = true)
|
||||
private String keyword;
|
||||
@ApiModelProperty(value = "关键字(门店编号,门店名称)",required = true)
|
||||
private String storeKeyword;
|
||||
@ApiModelProperty(value = "费用科目",required = true)
|
||||
private Integer feeItemId;
|
||||
|
||||
public TradeRecodePageRequest convertToTradeRecodePageRequest() {
|
||||
TradeRecodePageRequest target = new TradeRecodePageRequest();
|
||||
target.setBeginDate(this.getBeginDate());
|
||||
target.setEndDate(this.getEndDate());
|
||||
target.setWalletType(this.getWalletType());
|
||||
target.setKeyword(this.getKeyword());
|
||||
target.setStoreKeyword(this.getStoreKeyword());
|
||||
target.setFeeItemId(this.getFeeItemId());
|
||||
target.setCurrentPage(this.getPageNum());
|
||||
target.setPageSize(this.getPageSize());
|
||||
return target;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 13:49
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class CreateStoreAndAccountRequest {
|
||||
|
||||
@ApiModelProperty(name = "CRM门店编号", required = true)
|
||||
private String outStoreId;
|
||||
@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;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import com.sun.istack.NotNull;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 14:07
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
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;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/14 10:32
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class FindPageCompanyRequest {
|
||||
|
||||
@ApiModelProperty(value = "公司编码")
|
||||
private String companyCode;
|
||||
|
||||
@ApiModelProperty(value = "公司名称")
|
||||
private String companyName;
|
||||
|
||||
private WalletBasicPageInfo page;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 大额支付订单查询Request
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/18
|
||||
*/
|
||||
@Data
|
||||
public class LargePaymentQueryRequest extends StoreShopRequest {
|
||||
@ApiModelProperty("页码")
|
||||
private Integer pageNum = 1;
|
||||
|
||||
@ApiModelProperty("页数量")
|
||||
private Integer pageSize = 10;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 17:00
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class LargePaymentRequest {
|
||||
|
||||
@ApiModelProperty(value = "商户门店编号",required = true)
|
||||
private String outStoreId;
|
||||
|
||||
@ApiModelProperty(value = "请求预支付Id",required = true)
|
||||
private String paymentId;
|
||||
|
||||
@ApiModelProperty(value = "签约人名称",required = true)
|
||||
private String payerAccName;
|
||||
|
||||
@ApiModelProperty(value = "支付金额",required = true)
|
||||
private String amt;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/18 18:16
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class OldStoreAccountCreateRequest {
|
||||
|
||||
@ApiModelProperty(value = "CRM门店编号", required = true)
|
||||
private String outStoreId;
|
||||
|
||||
@ApiModelProperty(value = "联系电话", required = true)
|
||||
private String phoneNumber;
|
||||
|
||||
@ApiModelProperty(value = "结算卡业务类型 枚举值:1:对公 2:对私(结算类型)", required = true, example = "1")
|
||||
private Integer accountType;
|
||||
|
||||
@ApiModelProperty(value = "营业执照号码,与企业证件类型对应的企业注册号(企业与个体户必传)")
|
||||
private String licenseNo;
|
||||
|
||||
@ApiModelProperty(value = "工商注册名称(与注册工商信息时一致)(企业与个体户必传)")
|
||||
private String licenseName;
|
||||
|
||||
@ApiModelProperty(value = "法人姓名", required = true)
|
||||
private String legalName;
|
||||
|
||||
@ApiModelProperty(value = "法人证件号码", required = true)
|
||||
private String legalNo;
|
||||
|
||||
@ApiModelProperty("法人身份证有效期字段")
|
||||
private String legalIdcardExpireTime;
|
||||
|
||||
@ApiModelProperty(value = "法人联系电话(企业与个体户必传)")
|
||||
private String legalPhone;
|
||||
|
||||
@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 bankNo;
|
||||
|
||||
@ApiModelProperty(value = "开户支行名称", required = true)
|
||||
private String bankName;
|
||||
|
||||
@ApiModelProperty(value = "开户许可证图片链接,企业必选")
|
||||
private String industryLicensePhoto;
|
||||
|
||||
@ApiModelProperty(value = "法人代表证件人像面图片链接", required = true)
|
||||
private String certPhotoA;
|
||||
|
||||
@ApiModelProperty(value = "法人代表证件国徽面图片链接", required = true)
|
||||
private String certPhotoB;
|
||||
|
||||
@ApiModelProperty(value = "营业执照图片链接", required = true)
|
||||
private String licensePhoto;
|
||||
|
||||
@ApiModelProperty(value = "签约人姓名", required = true)
|
||||
private String signatoryName;
|
||||
|
||||
@ApiModelProperty(value = "签约人身份证", required = true)
|
||||
private String signatoryNo;
|
||||
|
||||
@ApiModelProperty(value = "签约人联系电话", required = true)
|
||||
private String signatoryPhone;
|
||||
|
||||
@ApiModelProperty(value = "签约人证件人像面图片链接", required = true)
|
||||
private String signatoryPhotoA;
|
||||
|
||||
@ApiModelProperty(value = "签约人证件国徽面图片链接", required = true)
|
||||
private String signatoryPhotoB;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/18 18:00
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class OnlineCommercialBankCallbackRequest {
|
||||
|
||||
@ApiModelProperty(name = "CRM门店编号", required = true)
|
||||
private String outStoreId;
|
||||
@ApiModelProperty(name = "网商账户编号", required = true)
|
||||
private String accountNo;
|
||||
@ApiModelProperty(name = "4.已开通 5.开通失败", required = true)
|
||||
private Integer accountStatus;
|
||||
@ApiModelProperty(name = "开户失败原因", required = true)
|
||||
private String failReason;
|
||||
@ApiModelProperty(name = "钱包类型 1.平安 2.网商 目前只有网商是创建账户异步的 预留字段", required = true)
|
||||
private int walletType;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/13 16:05
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class OutStoreIdRequest {
|
||||
|
||||
@ApiModelProperty(value = "外部门店唯一标识", required = true)
|
||||
private String outStoreId;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 门店idRequest
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/17
|
||||
*/
|
||||
@Data
|
||||
public class StoreShopRequest {
|
||||
@ApiModelProperty("门店id")
|
||||
private Long shopId;
|
||||
|
||||
@ApiModelProperty("门店id,两者取一")
|
||||
private String storeId;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/21 13:53
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class TestVerifyRequest {
|
||||
|
||||
private String key;
|
||||
|
||||
private String sign;
|
||||
|
||||
private Long timestamp;
|
||||
|
||||
private String outStoreId;
|
||||
|
||||
private Integer status;
|
||||
|
||||
private Integer addTagType;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 网商账户重新发送激活短信Request
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/20
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TextMsgSendRequest {
|
||||
@ApiModelProperty("门店id")
|
||||
private String outStoreId;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/19 11:07
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class TradeRecodePageRequest {
|
||||
|
||||
@ApiModelProperty(value = "交易开始时间YYYY-MM-DD HH:MM:SS",required = true)
|
||||
private String beginDate;
|
||||
@ApiModelProperty(value = "交易结束时间YYYY-MM-DD HH:MM:SS",required = true)
|
||||
private String endDate;
|
||||
@ApiModelProperty(value = "钱包类型 1.平安 2.网商",required = true)
|
||||
private Integer walletType;
|
||||
@ApiModelProperty(value = "关键字(账户名称,账户编号,业务系统付款单号,提现银行卡号)",required = true)
|
||||
private String keyword;
|
||||
@ApiModelProperty(value = "关键字(门店编号,门店名称)",required = true)
|
||||
private String storeKeyword;
|
||||
@ApiModelProperty(value = "费用科目",required = true)
|
||||
private Integer feeItemId;
|
||||
@ApiModelProperty(value = "当前页码",required = true)
|
||||
private Integer currentPage;
|
||||
@ApiModelProperty(value = "每页数量",required = true)
|
||||
private Integer pageSize;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/14 9:40
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class TransferRequest {
|
||||
|
||||
@ApiModelProperty(name = "门店唯一标识",required = true)
|
||||
private String outStoreId;
|
||||
@ApiModelProperty(name = "支付密码(sm3加密后字符串)",required = true)
|
||||
private String payPwd;
|
||||
@ApiModelProperty(name = "业务系统付款单号(如 CRM 单号),业务系统唯一",required = true)
|
||||
private String reqNo;
|
||||
@ApiModelProperty(name = "付款科目",required = true)
|
||||
private Integer feeItemId;
|
||||
@ApiModelProperty(name = "公司编号",required = true)
|
||||
private String companyCode;
|
||||
@ApiModelProperty(name = "公司编号绑定多个账户时,必传",required = false)
|
||||
private String companyAccountCode;
|
||||
@ApiModelProperty(name = "金额(元)",required = true)
|
||||
private String amount;
|
||||
@ApiModelProperty(name = "备注 ,交易摘要",required = true)
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/17 11:20
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
public class UpdatePasswordRequest {
|
||||
|
||||
@ApiModelProperty(name = "CRM门店编号", required = true)
|
||||
private String outStoreId;
|
||||
@ApiModelProperty(name = "维护类型 1.设置密码 2.修改密码", required = true)
|
||||
private Integer upholdType;
|
||||
@ApiModelProperty(name = "新支付密码(sm3加密后字符串)", required = true)
|
||||
private String newPayPwd;
|
||||
@ApiModelProperty(name = "确认新支付密码(sm3加密后字符串)", required = true)
|
||||
private String confirmPayPwd;
|
||||
@ApiModelProperty(name = "当前使用的支付密码(sm3加密后字符串),维护类型为修改密码时必填", required = false)
|
||||
private String currentPayPwd;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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(value = "当前页码",required = true)
|
||||
private Integer currentPage;
|
||||
|
||||
@ApiModelProperty(value = "每页数量",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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 钱包门店Request
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/14
|
||||
*/
|
||||
@Data
|
||||
public class WalletShopRequest {
|
||||
@ApiModelProperty("门店id")
|
||||
@NotNull(message = "门店id不能为空")
|
||||
private Long shopId;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.Digits;
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 钱包提现Request
|
||||
* </p>
|
||||
*
|
||||
* @author wangff
|
||||
* @since 2025/11/18
|
||||
*/
|
||||
@Data
|
||||
public class WalletWithDrawerRequest extends StoreShopRequest {
|
||||
@ApiModelProperty("提现金额")
|
||||
@Digits(integer = 10, fraction = 2, message = "金额整数位最多10位,小数位最多2位")
|
||||
@NotNull(message = "提现金额不能为空")
|
||||
private BigDecimal amount;
|
||||
|
||||
@ApiModelProperty("支付密码(sm3加密后字符串)")
|
||||
@NotBlank(message = "支付密码不能为空")
|
||||
private String payPwd;
|
||||
|
||||
@ApiModelProperty("钱包类型 1.平安 2.网商")
|
||||
@NotNull(message = "钱包类型不能为空")
|
||||
private Integer walletType;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.cool.store.request.wallet;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/11/14 9:56
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class WithDrawerRequest {
|
||||
|
||||
@ApiModelProperty(value = "门店ID")
|
||||
private String outStoreId;
|
||||
@ApiModelProperty(value = "支付密码(sm3加密后字符串)")
|
||||
private String payPwd;
|
||||
@ApiModelProperty(value = "业务系统付款单号(如 CRM 单号)")
|
||||
private String reqNo;
|
||||
@ApiModelProperty(value = "提现金额")
|
||||
private String amount;
|
||||
@ApiModelProperty(value = "提现备注")
|
||||
private String remark;
|
||||
@ApiModelProperty(value = "钱包类型 1.平安 2.网商", required = true)
|
||||
private Integer walletType;
|
||||
|
||||
}
|
||||
@@ -61,6 +61,8 @@ public class BranchShopResponse {
|
||||
@ApiModelProperty("所属管理区域name")
|
||||
private String managerRegionName;
|
||||
|
||||
private String storeId;
|
||||
|
||||
|
||||
public void setDays() {
|
||||
if (this.openingActivityEndTime==null){
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user