Merge branch 'refs/heads/master' into cc_2021104_twelve_points

# Conflicts:
#	coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
#	coolstore-partner-common/src/main/java/com/cool/store/enums/JoinModeEnum.java
This commit is contained in:
wangff
2025-12-02 19:34:14 +08:00
193 changed files with 10187 additions and 167 deletions

View File

@@ -103,6 +103,10 @@
<artifactId>openpdf</artifactId> <artifactId>openpdf</artifactId>
<version>1.3.30</version> <version>1.3.30</version>
</dependency> </dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.icepdf.os/icepdf-core --> <!-- https://mvnrepository.com/artifact/org.icepdf.os/icepdf-core -->
<dependency> <dependency>
<groupId>org.icepdf.os</groupId> <groupId>org.icepdf.os</groupId>

View File

@@ -235,4 +235,5 @@ public class CommonConstants {
public static final Integer INDEX_ZERO = 0; public static final Integer INDEX_ZERO = 0;
public static final Integer INDEX_ONE = 1; public static final Integer INDEX_ONE = 1;
public static final Integer INDEX_TWO = 2;
} }

View File

@@ -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_STORE_ID = "huo_ma_store_id";
public static final String HUO_MA_TOKEN= "huo_ma_token:{0}"; 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}";
} }

View File

@@ -0,0 +1,37 @@
package com.cool.store.enums.Decoration;
/**
* @Author suzhuhong
* @Date 2025/11/3 9:40
* @Version 1.0
*/
public enum DecorationDescStatus {
TO_BE_ASSIGNED(0, "待分配"),
ASSIGNED(1, "已分配"),
;
private Integer code;
private String descStatus;
DecorationDescStatus(Integer code, String descStatus) {
this.code = code;
this.descStatus = descStatus;
}
public Integer getCode() {
return code;
}
public String getDescStatus() {
return descStatus;
}
}

View File

@@ -0,0 +1,32 @@
package com.cool.store.enums.Decoration;
/**
* @Author suzhuhong
* @Date 2025/10/30 14:35
* @Version 1.0
*/
public enum DecorationUseSystemEnum {
CRM(1,"CRM"),
HQT(2,"红圈通");
private Integer code;
private String userSystemName;
DecorationUseSystemEnum(Integer code, String userSystemName) {
this.code = code;
this.userSystemName = userSystemName;
}
public Integer getCode() {
return code;
}
public String getUserSystemName() {
return userSystemName;
}
}

View File

@@ -300,6 +300,7 @@ public enum ErrorCodeEnum {
PRODUCTS_DISCARDED(1511034,"产品已报销,无法操作",null), PRODUCTS_DISCARDED(1511034,"产品已报销,无法操作",null),
PRODUCTS_SALES_COMPLETED(1511034,"含有销售完成的产品,无法批量报销",null), PRODUCTS_SALES_COMPLETED(1511034,"含有销售完成的产品,无法批量报销",null),
STORE_IS_EXIST(1511035,"该门店已存在",null), STORE_IS_EXIST(1511035,"该门店已存在",null),
FEE_NOT_CONSISTENT(1511036,"合同金额与缴费账单金额不一致,请确定!",null),
MESSAGE_TEMPLATE_NOT_SUPPORT_EDIT(1610001,"当前消息已发布,不支持编辑!",null), MESSAGE_TEMPLATE_NOT_SUPPORT_EDIT(1610001,"当前消息已发布,不支持编辑!",null),
@@ -316,7 +317,13 @@ public enum ErrorCodeEnum {
NOT_FLAGSHIP_STORE_NOT_EXIST(1610011,"当前阶段加盟类型不能变更!",null), NOT_FLAGSHIP_STORE_NOT_EXIST(1610011,"当前阶段加盟类型不能变更!",null),
JOIN_MODE_NOT_ALLOW_OPERATE(1610012,"加盟部人员只能新建加盟店或联营店,请确认!",null), JOIN_MODE_NOT_ALLOW_OPERATE(1610012,"加盟部人员只能新建加盟店或联营店,请确认!",null),
STORE_NOT_FIND(1610013,"门店不存在",null), STORE_NOT_FIND(1610013,"门店不存在",null),
SHOP_NAME_INVALID(1610014, "门店名称包含禁止关键词",null),
//装修
TEAM_USED(1612001,"该装修团队有门店使用,无法删除,请确认!",null),
WALLET_OPEN_ACCOUNT_FAIL(1620001,"钱包开通失败",null),
WALLET_WITH_DRAWER_FAIL(1620002,"提现失败",null),
WALLET_API_ERROR(1620003,"{0}",null),
/** /**
* 181 十二分制 * 181 十二分制
*/ */
@@ -334,6 +341,9 @@ public enum ErrorCodeEnum {
TP_PENALTY_APPLY_NO_NEED_PAY(1810011, "该处罚单无需缴费", null), TP_PENALTY_APPLY_NO_NEED_PAY(1810011, "该处罚单无需缴费", null),
; ;
CURRENT_BRAND_SORT_NUMBER_EXIST(16100007,"当前品牌已存在该排序数字!",null),
CONTRACT_CONFIG_NOT_EXIST(16100008,"合同配置不存在!",null);
;
protected static final Map<Integer, ErrorCodeEnum> map = Arrays.stream(values()).collect( protected static final Map<Integer, ErrorCodeEnum> map = Arrays.stream(values()).collect(

View File

@@ -14,20 +14,27 @@ import java.util.stream.Collectors;
* @注释: * @注释:
*/ */
public enum FranchiseBrandEnum { public enum FranchiseBrandEnum {
ZXJP(1,"正新鸡排","option486"), ZXJP(1,"正新鸡排","option486","上海正新食品集团有限公司","海南正新多品牌管理有限公司"),
ZXSMZ(2,"正新三明治","option622"), ZXSMZ(2,"正新三明治","option622","上海小熊与树食品科技有限公司","上海小熊与树食品科技有限公司"),
ZJS(3,"正烧记","option488"), ZJS(3,"正烧记","option488","上海正烧信息科技有限公司","上海正烧信息科技有限公司"),
DGMX(4,"大鼓米线","option624"), DGMX(4,"大鼓米线","option624","",""),
CXM(5,"串小妹","option626"), CXM(5,"串小妹","option626","",""),
MZG(6,"茂掌柜","option490"); MZG(6,"茂掌柜","option490","","");
private int code; private int code;
private String desc; private String desc;
//红圈通code /**法大大合同编号*/
private String hqtCode; private String hqtCode;
FranchiseBrandEnum(int code, String desc,String hqtCode) { /**品牌方*/
private String brandOwner;
/**收款方*/
private String payeeName;
FranchiseBrandEnum(int code, String desc,String hqtCode,String brandOwner,String payeeName) {
this.code = code; this.code = code;
this.desc = desc; this.desc = desc;
this.hqtCode = hqtCode; this.hqtCode = hqtCode;
this.brandOwner = brandOwner;
this.payeeName = payeeName;
} }
public int getCode() { public int getCode() {
return code; return code;
@@ -40,6 +47,14 @@ public enum FranchiseBrandEnum {
return hqtCode; return hqtCode;
} }
public String getBrandOwner() {
return brandOwner;
}
public String getPayeeName() {
return payeeName;
}
public static String getDescByCode(String code) { public static String getDescByCode(String code) {
if (StringUtils.isBlank(code)){ if (StringUtils.isBlank(code)){
return null; return null;
@@ -52,6 +67,20 @@ public enum FranchiseBrandEnum {
} }
return null; return null;
} }
public static FranchiseBrandEnum getEnumByCode(String code) {
if (StringUtils.isBlank(code)){
return null;
}
int i = Integer.parseInt(code);
for (FranchiseBrandEnum e : FranchiseBrandEnum.values()) {
if (i == e.getCode()) {
return e;
}
}
return null;
}
public static String getDescByCode(Integer code) { public static String getDescByCode(Integer code) {
if (code==null){ if (code==null){
return null; return null;

View File

@@ -45,6 +45,15 @@ public enum JoinModeEnum {
return code == FRANCHISE_DEPARTMENT.code || code == AFFILIATES.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;
}
public static String getDescByCode(Integer code) { public static String getDescByCode(Integer code) {
for (JoinModeEnum e : JoinModeEnum.values()) { for (JoinModeEnum e : JoinModeEnum.values()) {
if (e.getCode() == code) { if (e.getCode() == code) {

View File

@@ -10,7 +10,8 @@ public enum ResponseCodeEnum {
/** /**
* 成功返回 * 成功返回
*/ */
SUCCESS(200000, "SUCCESS"); SUCCESS(200000, "SUCCESS"),
SUCCESS_WALLET(200, "SUCCESS");
/** /**
* 返回码 * 返回码

View File

@@ -33,7 +33,8 @@ public enum RocketMqGroupEnum {
FEI_SHU_EVENT_LISTENER("fei_shu_event_listener", new ArrayList<>(Arrays.asList(RocketMqTagEnum.USER_EVENT, RocketMqTagEnum.AUTH_SCOPE_CHANGE, RocketMqTagEnum.DEPT_EVENT))), FEI_SHU_EVENT_LISTENER("fei_shu_event_listener", new ArrayList<>(Arrays.asList(RocketMqTagEnum.USER_EVENT, RocketMqTagEnum.AUTH_SCOPE_CHANGE, RocketMqTagEnum.DEPT_EVENT))),
STORE_USER_UPDATE("store_user_update", new ArrayList<>(Arrays.asList(RocketMqTagEnum.STORE_USER_UPDATE))) STORE_USER_UPDATE("store_user_update", new ArrayList<>(Arrays.asList(RocketMqTagEnum.STORE_USER_UPDATE))),
SHOP_DECORATION_ASSIGN("shop_decoration_assign", new ArrayList<>(Arrays.asList(RocketMqTagEnum.DELAY_SHOP_DECORATION_ASSIGN)))
; ;

View File

@@ -18,7 +18,8 @@ public enum RocketMqTagEnum {
ZXJP_CREATE_STORE("zxjp_create_store", "正新鸡排招商创建门店"), ZXJP_CREATE_STORE("zxjp_create_store", "正新鸡排招商创建门店"),
PARTNER_LICENSE_SYNC_QUEUE("partner_license_sync_queue", "招商证照信息同步"), PARTNER_LICENSE_SYNC_QUEUE("partner_license_sync_queue", "招商证照信息同步"),
BUSINESS_SYNC("business_sync", "工商食安信息同步"), BUSINESS_SYNC("business_sync", "工商食安信息同步"),
STORE_USER_UPDATE("store_user_update", "门店信息人员变更同步菜品"); STORE_USER_UPDATE("store_user_update", "门店信息人员变更同步菜品"),
DELAY_SHOP_DECORATION_ASSIGN("shop_decoration_assign","门店装修分配");
; ;

View File

@@ -7,11 +7,11 @@ package com.cool.store.enums;
*/ */
public enum SMSMsgEnum { public enum SMSMsgEnum {
PAY_FRANCHISE_FEES("缴纳加盟费/保证金", "", "SMS_474655067"), PAY_FRANCHISE_FEES("缴纳加盟费/保证金", "", "SMS_498895215"),
SIGN_CONTRACT("合同签署", "", "SMS_474450102"), SIGN_CONTRACT("合同签署", "", "SMS_498840165"),
DESIGN_STAGE("设计阶段", "", "SMS_474490087"), DESIGN_STAGE("设计阶段", "", "SMS_498750214"),
CONSTRUCTION_STAGE("施工阶段", "", "SMS_474525082"), CONSTRUCTION_STAGE("施工阶段", "", "SMS_498870170"),
PLATFORM_BUILD_STORE("平台建店", "", "SMS_474645064"), PLATFORM_BUILD_STORE("平台建店", "", "SMS_498730163"),
; ;
private String title; private String title;

View File

@@ -18,6 +18,7 @@ public enum ShopSubStageEnum {
SHOP_STAGE_3(ShopStageEnum.SHOP_STAGE_2, 30, "营业执照办理", 23), SHOP_STAGE_3(ShopStageEnum.SHOP_STAGE_2, 30, "营业执照办理", 23),
SHOP_STAGE_4(ShopStageEnum.SHOP_STAGE_2, 40, "食安许可证", 55), SHOP_STAGE_4(ShopStageEnum.SHOP_STAGE_2, 40, "食安许可证", 55),
SHOP_STAGE_5(ShopStageEnum.SHOP_STAGE_2, 50, "员工招聘", 23), 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_7(ShopStageEnum.SHOP_STAGE_2, 70, "缴纳加盟费/保证金", 1),
SHOP_STAGE_8(ShopStageEnum.SHOP_STAGE_2, 80, "加盟合同签约", 4), SHOP_STAGE_8(ShopStageEnum.SHOP_STAGE_2, 80, "加盟合同签约", 4),
SHOP_STAGE_8_5(ShopStageEnum.SHOP_STAGE_2, 85, "发票回传", 5), SHOP_STAGE_8_5(ShopStageEnum.SHOP_STAGE_2, 85, "发票回传", 5),
@@ -110,6 +111,8 @@ public enum ShopSubStageEnum {
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_10; return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_10;
case SHOP_STAGE_5: case SHOP_STAGE_5:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_50; return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_50;
// case SHOP_STAGE_6:
// return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_60;
case SHOP_STAGE_7: case SHOP_STAGE_7:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_70; return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_70;
case SHOP_STAGE_2: case SHOP_STAGE_2:

View File

@@ -36,6 +36,10 @@ public enum ShopSubStageStatusEnum {
SHOP_SUB_STAGE_STATUS_50(ShopSubStageEnum.SHOP_STAGE_5, 500, "登记中", Boolean.FALSE), 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_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_70(ShopSubStageEnum.SHOP_STAGE_7, 700, "待内勤发布账单", Boolean.FALSE),
SHOP_SUB_STAGE_STATUS_71(ShopSubStageEnum.SHOP_STAGE_7, 710, "待加盟商缴费", Boolean.FALSE), SHOP_SUB_STAGE_STATUS_71(ShopSubStageEnum.SHOP_STAGE_7, 710, "待加盟商缴费", Boolean.FALSE),

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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);
}
}
}

View File

@@ -5,9 +5,10 @@ import lombok.extern.slf4j.Slf4j;
import javax.crypto.Mac; import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec; import javax.crypto.spec.SecretKeySpec;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException; import java.security.*;
import java.security.NoSuchAlgorithmException; import java.security.spec.PKCS8EncodedKeySpec;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -110,4 +111,5 @@ public class OpenSignatureUtil {
} }
return result.toString(); return result.toString();
} }
} }

View File

@@ -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;
}
}
}

View File

@@ -0,0 +1,67 @@
package com.cool.store.dao;
import com.cool.store.entity.ContractConfigDO;
import com.cool.store.mapper.ContractConfigMapper;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2025/9/8 15:37
* @Version 1.0
*/
@Repository
public class ContractConfigDAO {
@Resource
private ContractConfigMapper contractConfigMapper;
public ContractConfigDO queryContractConfigById(Long id){
return contractConfigMapper.selectByPrimaryKey(id);
}
public int addContractConfig(ContractConfigDO contractConfigDO){
return contractConfigMapper.insertSelective(contractConfigDO);
}
public int updateContractConfig(ContractConfigDO contractConfigDO){
return contractConfigMapper.updateByPrimaryKeySelective(contractConfigDO);
}
/**
* 根据品牌查询对应排序是否存在
* @param brand
* @param serialNumber
* @return
*/
public ContractConfigDO queryContractConfigByBrand(String brand,Integer serialNumber){
return contractConfigMapper.queryContractConfigByBrand(brand,serialNumber);
}
/**
* 合同配置列表
* @param brand
* @return
*/
public List<ContractConfigDO> queryContractConfigList(String brand) {
return contractConfigMapper.queryContractConfigList(brand);
}
/**
* 根据加盟品牌与加盟模式 查出所有的未删除状态的合并合同
* @param brand
* @param mode
* @return
*/
public List<ContractConfigDO> queryContractConfigListByBrandAndMode(String brand,String mode) {
return contractConfigMapper.queryContractConfigListByBrandAndMode(brand,mode);
}
public void deleteContractConfig(Long id) {
contractConfigMapper.deleteByPrimaryKey(id);
}
}

View File

@@ -17,6 +17,7 @@ import com.cool.store.mapper.ShopInfoMapper;
import com.cool.store.request.*; import com.cool.store.request.*;
import com.cool.store.response.MiniShopsResponse; import com.cool.store.response.MiniShopsResponse;
import com.cool.store.response.PlatformBuildListResponse; import com.cool.store.response.PlatformBuildListResponse;
import com.cool.store.utils.UUIDUtils;
import com.cool.store.vo.shop.StageShopCountVO; import com.cool.store.vo.shop.StageShopCountVO;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
@@ -30,10 +31,7 @@ import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -54,6 +52,10 @@ public class ShopInfoDAO {
if(CollectionUtils.isEmpty(shopInfoList)){ if(CollectionUtils.isEmpty(shopInfoList)){
return CommonConstants.ZERO; return CommonConstants.ZERO;
} }
for (ShopInfoDO shopInfo : shopInfoList) {
validateShopName(shopInfo.getShopName());
shopInfo.setStoreId(UUIDUtils.get32UUID());
}
return shopInfoMapper.batchAddShop(shopInfoList); return shopInfoMapper.batchAddShop(shopInfoList);
} }
@@ -70,6 +72,24 @@ public class ShopInfoDAO {
return shopInfo; 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){ public List<ShopInfoDO> getShopList(Long lineId){
if(Objects.isNull(lineId)){ if(Objects.isNull(lineId)){
return new ArrayList<>(); return new ArrayList<>();
@@ -95,6 +115,8 @@ public class ShopInfoDAO {
* @return * @return
*/ */
public Long addShopInfo(ShopInfoDO shopInfo){ public Long addShopInfo(ShopInfoDO shopInfo){
validateShopName(shopInfo.getShopName());
shopInfo.setStoreId(UUIDUtils.get32UUID());
shopInfoMapper.insertSelective(shopInfo); shopInfoMapper.insertSelective(shopInfo);
return shopInfo.getId(); return shopInfo.getId();
} }
@@ -104,6 +126,7 @@ public class ShopInfoDAO {
log.info("店铺为空 或者店铺id为空"); log.info("店铺为空 或者店铺id为空");
throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR); throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR);
} }
validateShopName(shopInfo.getShopName());
return shopInfoMapper.updateByPrimaryKeySelective(shopInfo); return shopInfoMapper.updateByPrimaryKeySelective(shopInfo);
} }
@@ -359,4 +382,14 @@ public class ShopInfoDAO {
public List<ShopInfoDO> getPushHqtShopList(){ public List<ShopInfoDO> getPushHqtShopList(){
return shopInfoMapper.getPushHqtShopList(); return shopInfoMapper.getPushHqtShopList();
} }
/**
* 校验名称 不能包含旗舰二字
* @param shopName
*/
private void validateShopName(String shopName) {
if (StringUtils.isNotBlank(shopName) && shopName.contains("旗舰")) {
throw new ServiceException(ErrorCodeEnum.SHOP_NAME_INVALID);
}
}
} }

View File

@@ -58,6 +58,10 @@ public class ShopStageInfoDAO {
// 三明治跳过营帐通开通 // 三明治跳过营帐通开通
continue; continue;
} }
// TODO: 临时跳过
if (shopSubStageEnum.equals(ShopSubStageEnum.SHOP_STAGE_6)) {
continue;
}
ShopStageInfoDO shopStageInfo = new ShopStageInfoDO(); ShopStageInfoDO shopStageInfo = new ShopStageInfoDO();
shopStageInfo.setLineId(lineId); shopStageInfo.setLineId(lineId);
shopStageInfo.setShopId(shopId); shopStageInfo.setShopId(shopId);

View File

@@ -1,6 +1,8 @@
package com.cool.store.dao; package com.cool.store.dao;
import com.alibaba.excel.util.CollectionUtils; import com.alibaba.excel.util.CollectionUtils;
import com.alibaba.excel.util.StringUtils;
import com.cool.store.dto.contract.ContractCallbackDTO;
import com.cool.store.entity.SignFranchiseDO; import com.cool.store.entity.SignFranchiseDO;
import com.cool.store.mapper.SignFranchiseMapper; import com.cool.store.mapper.SignFranchiseMapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@@ -38,4 +40,11 @@ public class SignFranchiseDAO {
public SignFranchiseDO selectByShopId(Long shopId){ public SignFranchiseDO selectByShopId(Long shopId){
return signFranchiseMapper.selectByShopId(shopId); return signFranchiseMapper.selectByShopId(shopId);
} }
public void updateAuditByShopId(Long auditId, Long shopId, ContractCallbackDTO dto){
if (dto==null || (StringUtils.isEmpty(dto.getReason())&&dto.getInfoConsistencyFlag()==null)){
return;
}
signFranchiseMapper.updateAuditByShopId(auditId,shopId,dto);
}
} }

View File

@@ -0,0 +1,42 @@
package com.cool.store.dao.decoration;
import com.cool.store.dto.decoration.DecorationTeamDTO;
import com.cool.store.entity.decoration.DecorationTeamConfigDO;
import com.cool.store.mapper.decoration.DecorationTeamConfigMapper;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2025/10/29 15:07
* @Version 1.0
*/
@Repository
public class DecorationTeamConfigDAO {
@Resource
private DecorationTeamConfigMapper decorationTeamConfigMapper;
public void addTeam(DecorationTeamConfigDO decorationTeamConfigDO){
decorationTeamConfigMapper.insertSelective(decorationTeamConfigDO);
}
public void updateTeam(DecorationTeamConfigDO decorationTeamConfigDO){
decorationTeamConfigMapper.updateByPrimaryKeySelective(decorationTeamConfigDO);
}
public DecorationTeamConfigDO getById(Long id){
if (id == null){
return null;
}
return decorationTeamConfigMapper.selectByPrimaryKey(id);
}
public List<DecorationTeamDTO> listByCondition(){
return decorationTeamConfigMapper.listByCondition();
}
}

View File

@@ -0,0 +1,71 @@
package com.cool.store.dao.decoration;
import com.cool.store.dao.HyOpenAreaInfoDAO;
import com.cool.store.dto.decoration.DecorationListDTO;
import com.cool.store.entity.HyOpenAreaInfoDO;
import com.cool.store.entity.decoration.ShopDecorationAssignDO;
import com.cool.store.mapper.decoration.ShopDecorationAssignMapper;
import com.cool.store.request.decoration.DecorationListRequest;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author suzhuhong
* @Date 2025/10/29 15:07
* @Version 1.0
*/
@Repository
public class ShopDecorationAssignDAO {
@Resource
private ShopDecorationAssignMapper shopDecorationAssignMapper;
@Resource
HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
public Integer insert(ShopDecorationAssignDO shopDecorationAssignDO) {
if (shopDecorationAssignDO == null){
return 0;
}
return shopDecorationAssignMapper.insert(shopDecorationAssignDO);
}
public ShopDecorationAssignDO getById(Long id) {
if (id == null){
return null;
}
return shopDecorationAssignMapper.selectByPrimaryKey(id);
}
public Integer update(ShopDecorationAssignDO shopDecorationAssignDO) {
if (shopDecorationAssignDO == null){
return 0;
}
return shopDecorationAssignMapper.updateByPrimaryKey(shopDecorationAssignDO);
}
public Integer countByTeamId(Long teamId) {
if (teamId == null){
return 0;
}
return shopDecorationAssignMapper.countByTeamId(teamId);
}
public List<DecorationListDTO> listByCondition(DecorationListRequest request) {
if (request == null){
return null;
}
if (request.getWantShopAreaId()!=null){
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(request.getWantShopAreaId());
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOList = hyOpenAreaInfoDAO.queryByKeyword(hyOpenAreaInfoDO.getAreaPath(), null, null, false);
List<Long> wantShopAreaIds = hyOpenAreaInfoDOList.stream().map(HyOpenAreaInfoDO::getId).collect(Collectors.toList());
request.setWantShopAreaIds(wantShopAreaIds);
}
return shopDecorationAssignMapper.listByCondition(request);
}
}

View File

@@ -0,0 +1,73 @@
package com.cool.store.dao.decoration;
import com.aliyun.openservices.shade.com.google.common.collect.Maps;
import com.cool.store.dto.decoration.TeamAreaMappingDTO;
import com.cool.store.entity.decoration.TeamAreaMappingDO;
import com.cool.store.mapper.decoration.TeamAreaMappingMapper;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Author suzhuhong
* @Date 2025/10/29 15:08
* @Version 1.0
*/
@Repository
public class TeamAreaMappingDAO {
@Resource
private TeamAreaMappingMapper teamAreaMappingMapper;
public void batchInsert(Long teamId,List<Long> cityId){
if (teamId == null || CollectionUtils.isEmpty(cityId)){
return;
}
List<TeamAreaMappingDO> list = new ArrayList<>();
cityId.forEach(x->{
TeamAreaMappingDO teamAreaMappingDO = new TeamAreaMappingDO();
teamAreaMappingDO.setTeamId(teamId);
teamAreaMappingDO.setOpenCityId(x);
list.add(teamAreaMappingDO);
});
teamAreaMappingMapper.batchInsert(list);
}
public int deletedByTeamId(Long teamId){
if (teamId == null){
return 0;
}
return teamAreaMappingMapper.deletedByTeamId(teamId);
}
public int deletedIds(List<Long> ids){
if (CollectionUtils.isEmpty(ids)){
return 0;
}
return teamAreaMappingMapper.deletedIds(ids);
}
public TeamAreaMappingDO getByCityId(Long cityId){
return teamAreaMappingMapper.getByCityId(cityId);
}
public Map<Long, List<TeamAreaMappingDTO>> listByTeamIdList(List<Long> teamIdList){
if (CollectionUtils.isEmpty(teamIdList)){
return Maps.newHashMap();
}
List<TeamAreaMappingDTO> teamAreaMappingDTOS = teamAreaMappingMapper.listByTeamIdList(teamIdList);
Map<Long, List<TeamAreaMappingDTO>> map = teamAreaMappingDTOS.stream().collect(Collectors.groupingBy(TeamAreaMappingDTO::getTeamId));
return map;
}
}

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -0,0 +1,18 @@
package com.cool.store.mapper;
import com.cool.store.entity.ContractConfigDO;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface ContractConfigMapper extends Mapper<ContractConfigDO> {
ContractConfigDO queryContractConfigByBrand(String brand, Integer serialNumber);
List<ContractConfigDO> queryContractConfigList(String brand);
List<ContractConfigDO> queryContractConfigListByBrandAndMode(String brand, String mode);
}

View File

@@ -1,5 +1,6 @@
package com.cool.store.mapper; package com.cool.store.mapper;
import com.cool.store.dto.contract.ContractCallbackDTO;
import com.cool.store.entity.SignFranchiseDO; import com.cool.store.entity.SignFranchiseDO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper; import tk.mybatis.mapper.common.Mapper;
@@ -11,7 +12,8 @@ public interface SignFranchiseMapper extends Mapper<SignFranchiseDO> {
SignFranchiseDO selectByShopId(@Param("shopId") Long shopId); SignFranchiseDO selectByShopId(@Param("shopId") Long shopId);
void updateAuditByShopId(@Param("auditId") Long auditId, void updateAuditByShopId(@Param("auditId") Long auditId,
@Param("shopId") Long shopId); @Param("shopId") Long shopId,
@Param("dto") ContractCallbackDTO dto);
List<SignFranchiseDO> selectByShopIds( @Param("list")List<Long> shopIds); List<SignFranchiseDO> selectByShopIds( @Param("list")List<Long> shopIds);
Integer dateHandle(); Integer dateHandle();

View File

@@ -0,0 +1,20 @@
package com.cool.store.mapper.decoration;
import com.cool.store.dto.decoration.DecorationTeamDTO;
import com.cool.store.entity.decoration.DecorationTeamConfigDO;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface DecorationTeamConfigMapper extends Mapper<DecorationTeamConfigDO> {
/**
* 查询团队
* @return
*/
List<DecorationTeamDTO> listByCondition();
}

View File

@@ -0,0 +1,30 @@
package com.cool.store.mapper.decoration;
import com.cool.store.dto.decoration.DecorationListDTO;
import com.cool.store.entity.decoration.ShopDecorationAssignDO;
import com.cool.store.request.decoration.DecorationListRequest;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface ShopDecorationAssignMapper extends Mapper<ShopDecorationAssignDO> {
/**
* 查询团队被门店使用次数
* @param teamId
* @return
*/
Integer countByTeamId(Long teamId);
/**
* 查询分配装修团队列表
* @param request
* @return
*/
List<DecorationListDTO> listByCondition(DecorationListRequest request);
}

View File

@@ -0,0 +1,48 @@
package com.cool.store.mapper.decoration;
import com.cool.store.dto.decoration.TeamAreaMappingDTO;
import com.cool.store.entity.decoration.TeamAreaMappingDO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface TeamAreaMappingMapper extends Mapper<TeamAreaMappingDO> {
/**
* 批量插入
* @param list
* @return
*/
Integer batchInsert(@Param("list") List<TeamAreaMappingDO> list);
/**
* 根据团队id删除 更新团队id时候删除
* @param teamId
* @return
*/
Integer deletedByTeamId(@Param("teamId") Long teamId);
/**
* 根据ids删除
* @param ids
* @return
*/
Integer deletedIds(@Param("ids") List<Long> ids);
/**
* 根据城市id查询
* @param cityId
* @return
*/
TeamAreaMappingDO getByCityId(@Param("cityId") Long cityId);
/**
* 根据团队id批量查询
* @param teamIdList
* @return
*/
List<TeamAreaMappingDTO> listByTeamIdList(@Param("teamIdList") List<Long> teamIdList);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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> {
}

View File

@@ -0,0 +1,45 @@
<?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.ContractConfigMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.ContractConfigDO">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="brand" jdbcType="VARCHAR" property="brand" />
<result column="contract_name" jdbcType="VARCHAR" property="contractName" />
<result column="party_a" jdbcType="VARCHAR" property="partyA" />
<result column="party_b" jdbcType="VARCHAR" property="partyB" />
<result column="party_c" jdbcType="VARCHAR" property="partyC" />
<result column="franchise_mode" jdbcType="VARCHAR" property="franchiseMode" />
<result column="fadada_template_id" jdbcType="VARCHAR" property="fadadaTemplateId" />
<result column="serial_number" jdbcType="INTEGER" property="serialNumber" />
<result column="payee_name" jdbcType="VARCHAR" property="payeeName"/>
<result column="deleted" jdbcType="TINYINT" property="deleted" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<select id="queryContractConfigByBrand" resultMap="BaseResultMap">
select * from xfsg_contract_config where brand = #{brand} and serial_number = #{serialNumber} and deleted = 0
</select>
<select id="queryContractConfigList" resultMap="BaseResultMap">
select * from xfsg_contract_config
where deleted = 0
<if test="brand!=null and brand !=''">
and brand = #{brand}
</if>
</select>
<select id="queryContractConfigListByBrandAndMode" resultMap="BaseResultMap">
select * from xfsg_contract_config
where deleted = 0
<if test="brand!=null and brand !=''">
and brand = #{brand}
</if>
<if test="mode!=null and mode !=''">
and franchise_mode like concat('%,',#{mode},',%')
</if>
</select>
</mapper>

View File

@@ -38,6 +38,7 @@
<result column="manager_region_id" jdbcType="BIGINT" property="managerRegionId"/> <result column="manager_region_id" jdbcType="BIGINT" property="managerRegionId"/>
<result column="shop_decoration_attributes" jdbcType="INTEGER" property="shopDecorationAttributes"/> <result column="shop_decoration_attributes" jdbcType="INTEGER" property="shopDecorationAttributes"/>
<result column="hqt_shop_id" jdbcType="VARCHAR" property="hqtShopId"/> <result column="hqt_shop_id" jdbcType="VARCHAR" property="hqtShopId"/>
<result column="store_id" jdbcType="VARCHAR" property="storeId"/>
</resultMap> </resultMap>
<sql id="allColumn"> <sql id="allColumn">
@@ -46,17 +47,17 @@
shop_code, store_num, shop_manager_user_id, supervisor_user_id, 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, 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 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> </sql>
<insert id="batchAddShop" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> <insert id="batchAddShop" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into xfsg_shop_info(region_id, line_id, partner_id, shop_name, insert into xfsg_shop_info(region_id, line_id, partner_id, shop_name,
store_num,supervisor_user_id,create_time,join_mode,franchise_brand, 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=","> <foreach collection="shopInfoList" item="shop" separator=",">
(#{shop.regionId}, #{shop.lineId}, #{shop.partnerId}, #{shop.shopName}, (#{shop.regionId}, #{shop.lineId}, #{shop.partnerId}, #{shop.shopName},
#{shop.storeNum},#{shop.supervisorUserId},#{shop.createTime},#{shop.joinMode},#{shop.franchiseBrand},#{shop.developmentManager}, #{shop.storeNum},#{shop.supervisorUserId},#{shop.createTime},#{shop.joinMode},#{shop.franchiseBrand},#{shop.developmentManager},
#{shop.wantShopAreaId},#{shop.investmentManager}) #{shop.wantShopAreaId},#{shop.investmentManager},#{shop.storeId})
</foreach> </foreach>
</insert> </insert>
@@ -309,7 +310,8 @@
a.franchise_brand as franchiseBrand, a.franchise_brand as franchiseBrand,
a.shop_status as shopStatus, a.shop_status as shopStatus,
a.detail_address as shopAddress, 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 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"> <if test="request.contractStartTime !=null and request.contractEndTime != null">
left join xfsg_sign_franchise c on a.id = c.shop_id left join xfsg_sign_franchise c on a.id = c.shop_id

View File

@@ -3,7 +3,19 @@
<mapper namespace="com.cool.store.mapper.SignFranchiseMapper"> <mapper namespace="com.cool.store.mapper.SignFranchiseMapper">
<update id="updateAuditByShopId"> <update id="updateAuditByShopId">
update xfsg_sign_franchise update xfsg_sign_franchise
set audit_id = #{auditId} <set>
<if test="auditId!=null">
audit_id = #{auditId},
</if>
<if test="dto!=null">
<if test="dto.infoConsistencyFlag != null">
info_consistency_flag = #{dto.infoConsistencyFlag},
</if>
<if test="dto.reason != null and dto.reason != ''">
reason = #{dto.reason},
</if>
</if>
</set>
where shop_id = #{shopId} where shop_id = #{shopId}
</update> </update>
<update id="dateHandle"> <update id="dateHandle">

View File

@@ -139,7 +139,7 @@
FROM store_${enterpriseId} a FROM store_${enterpriseId} a
WHERE a.is_delete = 'effective' and a.store_status != 'closed' WHERE a.is_delete = 'effective' and a.store_status != 'closed'
<if test="storeName!=null and storeName!=''"> <if test="storeName!=null and storeName!=''">
AND a.store_name LIKE CONCAT('%', #{storeName}, '%') AND (a.store_name LIKE CONCAT('%', #{storeName}, '%') or a.store_num LIKE CONCAT('%', #{storeName}, '%'))
</if> </if>
<if test="storeNum!=null and storeNum!=''"> <if test="storeNum!=null and storeNum!=''">
AND a.store_num = #{storeNum} AND a.store_num = #{storeNum}
@@ -157,7 +157,7 @@
INNER JOIN store_master_signer_info_${enterpriseId} b ON a.store_id = b.store_id INNER JOIN store_master_signer_info_${enterpriseId} b ON a.store_id = b.store_id
WHERE a.is_delete = 'effective' and a.store_status != 'closed' WHERE a.is_delete = 'effective' and a.store_status != 'closed'
<if test="storeName!=null and storeName!=''"> <if test="storeName!=null and storeName!=''">
AND a.store_name LIKE CONCAT('%', #{storeName}, '%') AND (a.store_name LIKE CONCAT('%', #{storeName}, '%') or a.store_num LIKE CONCAT('%', #{storeName}, '%'))
</if> </if>
<if test="storeNum!=null and storeNum!=''"> <if test="storeNum!=null and storeNum!=''">
AND a.store_num = #{storeNum} AND a.store_num = #{storeNum}
@@ -172,7 +172,7 @@
INNER JOIN store_master_signer_info_${enterpriseId} b ON a.store_id = b.store_id INNER JOIN store_master_signer_info_${enterpriseId} b ON a.store_id = b.store_id
WHERE a.is_delete = 'effective' and a.store_status != 'closed' WHERE a.is_delete = 'effective' and a.store_status != 'closed'
<if test="storeName!=null and storeName!=''"> <if test="storeName!=null and storeName!=''">
AND a.store_name LIKE CONCAT('%', #{storeName}, '%') AND (a.store_name LIKE CONCAT('%', #{storeName}, '%') or a.store_num LIKE CONCAT('%', #{storeName}, '%'))
</if> </if>
<if test="storeNum!=null and storeNum!=''"> <if test="storeNum!=null and storeNum!=''">
AND a.store_num = #{storeNum} AND a.store_num = #{storeNum}

View File

@@ -0,0 +1,27 @@
<?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.decoration.DecorationTeamConfigMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.decoration.DecorationTeamConfigDO">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="team_name" jdbcType="VARCHAR" property="teamName" />
<result column="team_code" jdbcType="VARCHAR" property="teamCode" />
<result column="use_system" jdbcType="TINYINT" property="useSystem" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="deleted" jdbcType="TINYINT" property="deleted" />
</resultMap>
<select id="listByCondition" resultType="com.cool.store.dto.decoration.DecorationTeamDTO">
select
t.id,
t.team_name,
t.team_code,
t.use_system
from
zxjp_decoration_team_config t
where t.deleted = 0
</select>
</mapper>

View File

@@ -0,0 +1,68 @@
<?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.decoration.ShopDecorationAssignMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.decoration.ShopDecorationAssignDO">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="shop_id" jdbcType="BIGINT" property="shopId" />
<result column="decoration_desc_status" jdbcType="TINYINT" property="decorationDescStatus" />
<result column="decoration_team_id" jdbcType="BIGINT" property="decorationTeamId" />
<result column="created_time" jdbcType="TIMESTAMP" property="createdTime" />
<result column="updated_time" jdbcType="TIMESTAMP" property="updatedTime" />
</resultMap>
<select id="countByTeamId" resultType="java.lang.Integer">
select count(1) from zxjp_shop_decoration_assign where decoration_team_id = #{teamId}
</select>
<select id="listByCondition" resultType="com.cool.store.dto.decoration.DecorationListDTO">
SELECT
zsda.id as id ,
zsda.shop_id AS shopId,
zsda.decoration_desc_status as decorationDescStatus,
zsda.decoration_team_id as teamId,
xsi.shop_name AS shopName,
xsi.shop_code AS shopCode,
xsi.region_id AS regionId,
xsi.province AS province,
xsi.city AS city,
xsi.district AS district,
xsi.detail_address AS detailAddress,
xsi.store_type AS storeType,
xsf.sign_type AS signType
FROM zxjp_shop_decoration_assign zsda
LEFT JOIN xfsg_shop_info xsi ON zsda.shop_id = xsi.id
LEFT JOIN xfsg_sign_franchise xsf ON zsda.shop_id = xsf.shop_id
<where>
<if test="keyword != null and keyword != ''">
AND (xsi.shop_name LIKE CONCAT('%', #{keyword}, '%') OR xsi.shop_code LIKE CONCAT('%', #{keyword}, '%'))
</if>
<if test="storeType != null">
AND xsi.store_type = #{storeType}
</if>
<if test="signType != null">
AND xsf.sign_type = #{signType}
</if>
<if test="regionId != null">
AND xsi.region_id = #{regionId}
</if>
<if test="decorationDescStatus != null">
AND zsda.decoration_desc_status = #{decorationDescStatus}
</if>
<if test="wantShopAreaIds != null and wantShopAreaIds.size() > 0">
and b.want_shop_area_id in
<foreach collection="wantShopAreaIds" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
</where>
</select>
</mapper>

View File

@@ -0,0 +1,66 @@
<?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.decoration.TeamAreaMappingMapper">
<resultMap id="BaseResultMap" type="com.cool.store.entity.decoration.TeamAreaMappingDO">
<!--
WARNING - @mbg.generated
-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="team_id" jdbcType="BIGINT" property="teamId" />
<result column="open_city_id" jdbcType="BIGINT" property="openCityId" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>
<!-- 批量插入 -->
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO zxjp_team_area_mapping (
team_id,
open_city_id
) VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.teamId},
#{item.openCityId}
)
</foreach>
</insert>
<!-- 根据团队id删除 更新团队id时候删除 -->
<delete id="deletedByTeamId" parameterType="java.lang.Long">
DELETE FROM zxjp_team_area_mapping
WHERE team_id = #{teamId}
</delete>
<!-- 根据ids删除 -->
<delete id="deletedIds" parameterType="java.util.List">
DELETE FROM zxjp_team_area_mapping
WHERE id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="getByCityId" parameterType="java.lang.Long" resultType="com.cool.store.entity.decoration.TeamAreaMappingDO">
SELECT
*
FROM zxjp_team_area_mapping
WHERE open_city_id = #{cityId}
LIMIT 1
</select>
<select id="listByTeamIdList" parameterType="java.util.List" resultType="com.cool.store.dto.decoration.TeamAreaMappingDTO">
SELECT
a.team_id as teamId,
a.open_city_id as openCityId,
b.area_name as openCityName
FROM zxjp_team_area_mapping a
left join xfsg_open_area_info b on a.open_city_id = b.id
WHERE a.team_id IN
<foreach collection="teamIdList" item="teamId" open="(" separator="," close=")">
#{teamId}
</foreach>
</select>
</mapper>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -0,0 +1,102 @@
package com.cool.store.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Author suzhuhong
* @Date 2025/9/8 10:13
* @Version 1.0
*/
@Data
public class ContractInformationDTO {
@ApiModelProperty("门店ID")
private Long shopId;
@ApiModelProperty("门店名称")
private String shopName;
@ApiModelProperty("签约人1名称")
private String sign1Name;
@ApiModelProperty("签约人2名称")
private String sign2Name;
@ApiModelProperty("加盟模式")
private Integer joinModel;
@ApiModelProperty("每年加盟费")
private String yearFranchiseFee;
@ApiModelProperty("保证金")
private String loanMargin;
@ApiModelProperty("第一年度管理费")
private String firstYearManagementFee;
@ApiModelProperty("第一年度品牌使用费")
private String firstYearFee;
@ApiModelProperty("设计费")
private String performanceBond;
@ApiModelProperty("收款方名称")
private String payeeName;
@ApiModelProperty("品牌方")
private String brandOwner;
@ApiModelProperty("老店编码 签约类型选择老店转加盟时有")
private String oldShopCode;
@ApiModelProperty("合同编号")
private String contractNo;
@ApiModelProperty("币种")
private String currency;
@ApiModelProperty(name = "合同加盟费")
private String contractFranchiseFee;
@ApiModelProperty(name = "合同管理费")
private String contractManageFee;
@ApiModelProperty(name = "合同品牌使用费")
private String contractBrandUseFee;
@ApiModelProperty(name = "合同设计费")
private String contractPerformanceBond;
@ApiModelProperty(name = "合同保证金")
private String contractLoanMargin;
@ApiModelProperty(name = "合同系统使用费")
private String contractSysUserFee;
@ApiModelProperty(name = "加盟来源 other-其他 招商会-investment 加盟商推荐-partner_recommend 自然流量-organic_traffic 员工推荐-employee_recommend ")
private String joinSource;
@ApiModelProperty(name = "签约形式 纸质合同-paper_contract 电子合同-electronic_contract 已付款未签约-paid_but_not_signed")
private String signModality;
@ApiModelProperty(name = "加盟费频率")
private Integer franchiseFeeFrequency;
@ApiModelProperty(name = "品牌使用费频率")
private Integer brandUseFeeFrequency;
@ApiModelProperty(name = "管理费频率")
private Integer manageFeeFrequency;
@ApiModelProperty(name = "管理费频率")
private String discountAmount;
@ApiModelProperty(name = "提交人")
private String summitUserName;
@ApiModelProperty(name = "签约人地址")
private String signerAddress;
@ApiModelProperty(name = "签约人手机号")
private String signerPhone;
@ApiModelProperty(name = "合同使用年限")
private Integer contractServiceLife;
@ApiModelProperty(name = "合同开始时间")
private String contractStartTime;
@ApiModelProperty(name = "合同结束时间")
private String contractEndTime;
}

View File

@@ -55,5 +55,7 @@ public class PreparationDTO {
private Long managerRegionId; private Long managerRegionId;
private String storeId;
} }

View File

@@ -0,0 +1,26 @@
package com.cool.store.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/3 15:22
* @Version 1.0
*/
@Data
public class ShopSignerInfoDTO {
@ApiModelProperty("签约人1姓名")
private String partnershipSignatoryFirst;
@ApiModelProperty("签约人1手机号")
private String partnershipSignatoryFirstMobile;
@ApiModelProperty("签约人2姓名")
private String partnershipSignatorySecond;
@ApiModelProperty("签约人2手机号")
private String partnershipSignatorySecondMobile;
}

View File

@@ -58,5 +58,16 @@ public class StoreDTO {
private String branchName; private String branchName;
@ApiModelProperty("门店状态") @ApiModelProperty("门店状态")
private String storeStatus;
@ApiModelProperty("门店状态名称")
private String status; private String status;
@ApiModelProperty("")
private String province;
@ApiModelProperty("")
private String city;
@ApiModelProperty("")
private String county;
} }

View File

@@ -0,0 +1,19 @@
package com.cool.store.dto.contract;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/9/17 14:42
* @Version 1.0
*/
@Data
public class ContractCallbackDTO {
private Integer infoConsistencyFlag;
private String reason;
private String storeCode;
}

View File

@@ -0,0 +1,53 @@
package com.cool.store.dto.contract;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2025/9/8 15:52
* @Version 1.0
*/
@Data
public class ContractConfigDTO {
@ApiModelProperty("主键 新建时忽略")
private Long id;
@ApiModelProperty("品牌")
@NotBlank(message = "品牌不能为空")
private String brand;
@ApiModelProperty("合同名称")
@NotBlank(message = "合同名称不能为空")
private String contractName;
@ApiModelProperty("甲方名称")
@NotBlank(message = "甲方名称不能为空")
private String partyA;
@ApiModelProperty("乙方名称")
private String partyB;
@ApiModelProperty(" 丙方名称")
private String partyC;
@ApiModelProperty("加盟模式 多选 用逗号隔开")
private List<String> franchiseModeList;
@ApiModelProperty("法大大模板ID")
private String fadadaTemplateId;
@ApiModelProperty("序号")
@NotNull(message = "序号不能为空")
private Integer serialNumber;
@ApiModelProperty("收款方名称")
private String payeeName;
}

View File

@@ -0,0 +1,167 @@
package com.cool.store.dto.contract;
import com.cool.store.common.PageBasicInfo;
import com.cool.store.enums.JoinModeEnum;
import com.cool.store.utils.StringUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author suzhuhong
* @Date 2025/9/8 16:43
* @Version 1.0
*/
public class ContractListDTO {
@ApiModelProperty("主键 新建时忽略")
private Long id;
@ApiModelProperty("品牌")
@NotBlank(message = "品牌不能为空")
private String brand;
@ApiModelProperty("合同名称")
@NotBlank(message = "合同名称不能为空")
private String contractName;
@ApiModelProperty("甲方名称")
@NotBlank(message = "甲方名称不能为空")
private String partyA;
@ApiModelProperty("乙方名称")
@NotBlank(message = "乙方名称不能为空")
private String partyB;
@ApiModelProperty(" 丙方名称")
private String partyC;
@ApiModelProperty("加盟模式 多选 用逗号隔开")
private List<FranchiseModeDTO> franchiseModeList;
@ApiModelProperty("法大大模板ID")
private String fadadaTemplateId;
@ApiModelProperty("序号")
@NotNull(message = "序号不能为空")
private Integer serialNumber;
@ApiModelProperty("收款方名称")
private String payeeName;
private String franchiseMode;
@Data
protected class FranchiseModeDTO{
private String id;
private String name;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getContractName() {
return contractName;
}
public void setContractName(String contractName) {
this.contractName = contractName;
}
public String getPartyA() {
return partyA;
}
public void setPartyA(String partyA) {
this.partyA = partyA;
}
public String getPartyB() {
return partyB;
}
public void setPartyB(String partyB) {
this.partyB = partyB;
}
public String getPartyC() {
return partyC;
}
public void setPartyC(String partyC) {
this.partyC = partyC;
}
public void setFranchiseModeList(List<FranchiseModeDTO> franchiseModeList) {
this.franchiseModeList = franchiseModeList;
}
public String getFadadaTemplateId() {
return fadadaTemplateId;
}
public void setFadadaTemplateId(String fadadaTemplateId) {
this.fadadaTemplateId = fadadaTemplateId;
}
public Integer getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(Integer serialNumber) {
this.serialNumber = serialNumber;
}
public String getPayeeName() {
return payeeName;
}
public void setPayeeName(String payeeName) {
this.payeeName = payeeName;
}
public String getFranchiseMode() {
return franchiseMode;
}
public void setFranchiseMode(String franchiseMode) {
this.franchiseMode = franchiseMode;
}
public List<FranchiseModeDTO> getFranchiseModeList(){
String[] split = this.franchiseMode.split(",");
ArrayList<FranchiseModeDTO> result = new ArrayList<>();
Arrays.stream(split).filter(item -> StringUtil.isNotEmpty(item)).forEach(item -> {
FranchiseModeDTO franchiseModeDTO = new FranchiseModeDTO();
franchiseModeDTO.setId(item);
franchiseModeDTO.setName(JoinModeEnum.getByCode(Integer.parseInt(item)));
result.add(franchiseModeDTO);
});
return result;
}
}

View File

@@ -0,0 +1,44 @@
package com.cool.store.dto.contract;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
/**
* @Author suzhuhong
* @Date 2025/9/9 13:35
* @Version 1.0
*/
@Data
public class PushContractDTO {
/**
* 品牌
*/
@ApiModelProperty("品牌方名称")
private String brand;
@ApiModelProperty("合同名称")
private String contractName;
@ApiModelProperty("甲方名称")
private String partyA;
@ApiModelProperty("乙方名称")
private String partyB;
@ApiModelProperty("丙方名称")
private String partyC;
@ApiModelProperty("法大大模板ID")
private String fadadaTemplateId;
@ApiModelProperty("合同签约顺序")
private Integer serialNumber;
@ApiModelProperty("收款方名称")
private String payeeName;
}

View File

@@ -0,0 +1,16 @@
package com.cool.store.dto.contract;
import com.cool.store.common.PageBasicInfo;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/9/8 16:43
* @Version 1.0
*/
@Data
public class QueryContractListDTO extends PageBasicInfo {
private String brand;
}

View File

@@ -0,0 +1,55 @@
package com.cool.store.dto.decoration;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2025/11/3 11:23
* @Version 1.0
*/
@Data
public class DecorationListDTO {
private Long id;
@ApiModelProperty("装修团队ID")
private Long teamId;
@ApiModelProperty("门店ID")
private Long shopId;
@ApiModelProperty("门店名称")
private String shopName;
@ApiModelProperty("门店编号")
private String shopCode;
@ApiModelProperty("门店区域ID")
private String regionId;
@ApiModelProperty("门店区域名称")
private String regionName;
@ApiModelProperty("门店省")
private String province;
@ApiModelProperty("门店市")
private String city;
@ApiModelProperty("门店县")
private String district;
@ApiModelProperty("门店详细地址")
private String detailAddress;
@ApiModelProperty("门店类型")
private Integer storeType;
@ApiModelProperty("门店签约类型")
private Integer signType;
@ApiModelProperty("门店装修分配状态")
private Integer decorationDescStatus;
}

View File

@@ -0,0 +1,25 @@
package com.cool.store.dto.decoration;
import lombok.Data;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2025/10/29 18:41
* @Version 1.0
*/
@Data
public class DecorationTeamDTO {
private Long id;
private String teamName;
private String teamCode;
private Integer useSystem;
private List<TeamAreaMappingDTO> cityList;
}

View File

@@ -0,0 +1,21 @@
package com.cool.store.dto.decoration;
import lombok.Data;
import javax.persistence.Column;
/**
* @Author suzhuhong
* @Date 2025/10/29 19:01
* @Version 1.0
*/
@Data
public class TeamAreaMappingDTO {
private Long teamId;
private Long openCityId;
private String openCityName;
}

View File

@@ -78,4 +78,7 @@ public class StoreXinFaDeviceDetail {
} }
} }
public String getDeviceId() {
return id;
}
} }

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -0,0 +1,89 @@
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 = "可提现余额", required = true)
private String withdrawAmount;
@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;
}

View File

@@ -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;
}

View File

@@ -0,0 +1,20 @@
package com.cool.store.dto.wallet;
import com.cool.store.request.wallet.WalletBasicPageInfo;
import lombok.Data;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2025/11/18 10:12
* @Version 1.0
*/
@Data
public class AccountPageDTO {
private List<AccountInfoDTO> pageData;
private WalletBasicPageInfo page;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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/26 18:14
* @Version 1.0
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class PasswordDTO {
@ApiModelProperty(value = "密码是否已存在 1.存在 2.不存在", required = true)
private Integer isExist;
@ApiModelProperty(value = "是否已存在账户 1.存在 2.不存在", required = true)
private Boolean isExistAccount;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -0,0 +1,297 @@
package com.cool.store.entity;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import java.util.Date;
import javax.persistence.*;
@Table(name = "xfsg_contract_config")
public class ContractConfigDO {
/**
* 主键ID
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 品牌
*/
private String brand;
/**
* 合同名称
*/
@Column(name = "contract_name")
private String contractName;
/**
* 甲方名称
*/
@Column(name = "party_a")
private String partyA;
/**
* 乙方名称
*/
@Column(name = "party_b")
private String partyB;
/**
* 丙方名称
*/
@Column(name = "party_c")
private String partyC;
/**
* 加盟模式 多选 用逗号隔开
*/
@Column(name = "franchise_mode")
private String franchiseMode;
/**
* 法大大模板ID
*/
@Column(name = "fadada_template_id")
private String fadadaTemplateId;
/**
* 序号
*/
@Column(name = "serial_number")
private Integer serialNumber;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
@Column(name = "payee_name")
@ApiModelProperty("收款方名称")
private String payeeName;
@Column(name = "deleted")
private Integer deleted;
public String getPayeeName() {
return payeeName;
}
public void setPayeeName(String payeeName) {
this.payeeName = payeeName;
}
public Integer getDeleted() {
return deleted;
}
public void setDeleted(Integer deleted) {
this.deleted = deleted;
}
/**
* 获取主键ID
*
* @return id - 主键ID
*/
public Long getId() {
return id;
}
/**
* 设置主键ID
*
* @param id 主键ID
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取品牌
*
* @return brand - 品牌
*/
public String getBrand() {
return brand;
}
/**
* 设置品牌
*
* @param brand 品牌
*/
public void setBrand(String brand) {
this.brand = brand;
}
/**
* 获取合同名称
*
* @return contract_name - 合同名称
*/
public String getContractName() {
return contractName;
}
/**
* 设置合同名称
*
* @param contractName 合同名称
*/
public void setContractName(String contractName) {
this.contractName = contractName;
}
/**
* 获取甲方名称
*
* @return party_a - 甲方名称
*/
public String getPartyA() {
return partyA;
}
/**
* 设置甲方名称
*
* @param partyA 甲方名称
*/
public void setPartyA(String partyA) {
this.partyA = partyA;
}
/**
* 获取乙方名称
*
* @return party_b - 乙方名称
*/
public String getPartyB() {
return partyB;
}
/**
* 设置乙方名称
*
* @param partyB 乙方名称
*/
public void setPartyB(String partyB) {
this.partyB = partyB;
}
/**
* 获取丙方名称
*
* @return party_c - 丙方名称
*/
public String getPartyC() {
return partyC;
}
/**
* 设置丙方名称
*
* @param partyC 丙方名称
*/
public void setPartyC(String partyC) {
this.partyC = partyC;
}
/**
* 获取加盟模式 多选 用逗号隔开
*
* @return franchise_mode - 加盟模式 多选 用逗号隔开
*/
public String getFranchiseMode() {
return franchiseMode;
}
/**
* 设置加盟模式 多选 用逗号隔开
*
* @param franchiseMode 加盟模式 多选 用逗号隔开
*/
public void setFranchiseMode(String franchiseMode) {
this.franchiseMode = franchiseMode;
}
/**
* 获取法大大模板ID
*
* @return fadada_template_id - 法大大模板ID
*/
public String getFadadaTemplateId() {
return fadadaTemplateId;
}
/**
* 设置法大大模板ID
*
* @param fadadaTemplateId 法大大模板ID
*/
public void setFadadaTemplateId(String fadadaTemplateId) {
this.fadadaTemplateId = fadadaTemplateId;
}
/**
* 获取序号
*
* @return serial_number - 序号
*/
public Integer getSerialNumber() {
return serialNumber;
}
/**
* 设置序号
*
* @param serialNumber 序号
*/
public void setSerialNumber(Integer serialNumber) {
this.serialNumber = serialNumber;
}
/**
* 获取创建时间
*
* @return create_time - 创建时间
*/
public Date getCreateTime() {
return createTime;
}
/**
* 设置创建时间
*
* @param createTime 创建时间
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 获取更新时间
*
* @return update_time - 更新时间
*/
public Date getUpdateTime() {
return updateTime;
}
/**
* 设置更新时间
*
* @param updateTime 更新时间
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}

View File

@@ -158,4 +158,7 @@ public class ShopInfoDO {
//红圈通门店id //红圈通门店id
@Column(name = "hqt_shop_id") @Column(name = "hqt_shop_id")
private String hqtShopId; private String hqtShopId;
// 门店id
@Column(name = "store_id")
private String storeId;
} }

View File

@@ -86,4 +86,102 @@ public class SignFranchiseDO {
//是否统管 1-统管0-不统管', //是否统管 1-统管0-不统管',
@Column(name = "unified_management") @Column(name = "unified_management")
private Integer unifiedManagement; private Integer unifiedManagement;
/**
* 信息是否一致 财务使用
*/
@Column(name = "info_consistency_flag")
private Integer infoConsistencyFlag;
/**
* 不一致原因
*/
@Column(name = "reason")
private String reason;
@Column(name = "old_shop_code")
private String oldShopCode;
/**
* 合同加盟费
*/
@Column(name = "contract_franchise_fee")
private String contractFranchiseFee;
/**
* 合同管理费
*/
@Column(name = "contract_manage_fee")
private String contractManageFee;
/**
* 合同品牌使用费
*/
@Column(name = "contract_brand_use_fee")
private String contractBrandUseFee;
/**
* 合同设计费
*/
@Column(name = "contract_performance_bond")
private String contractPerformanceBond;
/**
* 合同保证金
*/
@Column(name = "contract_loan_margin")
private String contractLoanMargin;
/**
* 合同系统使用费
*/
@Column(name = "contract_sys_user_fee")
private String contractSysUserFee;
/**
* 加盟来源
*/
@Column(name = "join_source")
private String joinSource;
/**
* 签约形式
*/
@Column(name = "sign_modality")
private String signModality;
/**
* 加盟费频率
*/
@Column(name = "franchise_fee_frequency")
private Integer franchiseFeeFrequency;
/**
* 品牌使用费频率
*/
@Column(name = "brand_use_fee_frequency")
private Integer brandUseFeeFrequency;
/**
* 管理费频率
*/
@Column(name = "manage_fee_frequency")
private Integer manageFeeFrequency;
/**
* 加盟费折扣金额
*/
@Column(name = "discount_amount")
private String discountAmount;
@Column(name = "create_user_id")
private String createUserId;
@Column(name = "update_user_id")
private String updateUserId;
@Column(name = "currency")
private String currency;
@Column(name = "contract_service_life")
private Integer contractServiceLife;
} }

View File

@@ -0,0 +1,168 @@
package com.cool.store.entity.decoration;
import java.util.Date;
import javax.persistence.*;
@Table(name = "zxjp_decoration_team_config")
public class DecorationTeamConfigDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 团队名称
*/
@Column(name = "team_name")
private String teamName;
/**
* 团队编号
*/
@Column(name = "team_code")
private String teamCode;
/**
* 使用系统1-CRM2-红圈通)
*/
@Column(name = "use_system")
private Integer useSystem;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* 更新时间
*/
@Column(name = "update_time")
private Date updateTime;
/**
* 删除状态0-正常1-删除)
*/
private Integer deleted;
/**
* @return id
*/
public Long getId() {
return id;
}
/**
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取团队名称
*
* @return team_name - 团队名称
*/
public String getTeamName() {
return teamName;
}
/**
* 设置团队名称
*
* @param teamName 团队名称
*/
public void setTeamName(String teamName) {
this.teamName = teamName;
}
/**
* 获取团队编号
*
* @return team_code - 团队编号
*/
public String getTeamCode() {
return teamCode;
}
/**
* 设置团队编号
*
* @param teamCode 团队编号
*/
public void setTeamCode(String teamCode) {
this.teamCode = teamCode;
}
/**
* 获取使用系统1-CRM2-红圈通)
*
* @return use_system - 使用系统1-CRM2-红圈通)
*/
public Integer getUseSystem() {
return useSystem;
}
/**
* 设置使用系统1-CRM2-红圈通)
*
* @param useSystem 使用系统1-CRM2-红圈通)
*/
public void setUseSystem(Integer useSystem) {
this.useSystem = useSystem;
}
/**
* 获取创建时间
*
* @return create_time - 创建时间
*/
public Date getCreateTime() {
return createTime;
}
/**
* 设置创建时间
*
* @param createTime 创建时间
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* 获取更新时间
*
* @return update_time - 更新时间
*/
public Date getUpdateTime() {
return updateTime;
}
/**
* 设置更新时间
*
* @param updateTime 更新时间
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
/**
* 获取删除状态0-正常1-删除)
*
* @return deleted - 删除状态0-正常1-删除)
*/
public Integer getDeleted() {
return deleted;
}
/**
* 设置删除状态0-正常1-删除)
*
* @param deleted 删除状态0-正常1-删除)
*/
public void setDeleted(Integer deleted) {
this.deleted = deleted;
}
}

View File

@@ -0,0 +1,145 @@
package com.cool.store.entity.decoration;
import java.util.Date;
import javax.persistence.*;
@Table(name = "zxjp_shop_decoration_assign")
public class ShopDecorationAssignDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 装修团队id
*/
@Column(name = "shop_id")
private Long shopId;
/**
* 分配状态0-待分配1-已分配)
*/
@Column(name = "decoration_desc_status")
private Integer decorationDescStatus;
/**
* 装修团队id
*/
@Column(name = "decoration_team_id")
private Long decorationTeamId;
/**
* 创建时间
*/
@Column(name = "created_time")
private Date createdTime;
/**
* 更新时间
*/
@Column(name = "updated_time")
private Date updatedTime;
/**
* @return id
*/
public Long getId() {
return id;
}
/**
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取装修团队id
*
* @return shop_id - 装修团队id
*/
public Long getShopId() {
return shopId;
}
/**
* 设置装修团队id
*
* @param shopId 装修团队id
*/
public void setShopId(Long shopId) {
this.shopId = shopId;
}
/**
* 获取分配状态0-待分配1-已分配)
*
* @return decoration_desc_status - 分配状态0-待分配1-已分配)
*/
public Integer getDecorationDescStatus() {
return decorationDescStatus;
}
/**
* 设置分配状态0-待分配1-已分配)
*
* @param decorationDescStatus 分配状态0-待分配1-已分配)
*/
public void setDecorationDescStatus(Integer decorationDescStatus) {
this.decorationDescStatus = decorationDescStatus;
}
/**
* 获取装修团队id
*
* @return decoration_team_id - 装修团队id
*/
public Long getDecorationTeamId() {
return decorationTeamId;
}
/**
* 设置装修团队id
*
* @param decorationTeamId 装修团队id
*/
public void setDecorationTeamId(Long decorationTeamId) {
this.decorationTeamId = decorationTeamId;
}
/**
* 获取创建时间
*
* @return created_time - 创建时间
*/
public Date getCreatedTime() {
return createdTime;
}
/**
* 设置创建时间
*
* @param createdTime 创建时间
*/
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
/**
* 获取更新时间
*
* @return updated_time - 更新时间
*/
public Date getUpdatedTime() {
return updatedTime;
}
/**
* 设置更新时间
*
* @param updatedTime 更新时间
*/
public void setUpdatedTime(Date updatedTime) {
this.updatedTime = updatedTime;
}
}

View File

@@ -0,0 +1,97 @@
package com.cool.store.entity.decoration;
import java.util.Date;
import javax.persistence.*;
@Table(name = "zxjp_team_area_mapping")
public class TeamAreaMappingDO {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
/**
* 团队ID
*/
@Column(name = "team_id")
private Long teamId;
/**
* 城市ID
*/
@Column(name = "open_city_id")
private Long openCityId;
/**
* 创建时间
*/
@Column(name = "create_time")
private Date createTime;
/**
* @return id
*/
public Long getId() {
return id;
}
/**
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取团队ID
*
* @return team_id - 团队ID
*/
public Long getTeamId() {
return teamId;
}
/**
* 设置团队ID
*
* @param teamId 团队ID
*/
public void setTeamId(Long teamId) {
this.teamId = teamId;
}
/**
* 获取城市ID
*
* @return open_city_id - 城市ID
*/
public Long getOpenCityId() {
return openCityId;
}
/**
* 设置城市ID
*
* @param openCityId 城市ID
*/
public void setOpenCityId(Long openCityId) {
this.openCityId = openCityId;
}
/**
* 获取创建时间
*
* @return create_time - 创建时间
*/
public Date getCreateTime() {
return createTime;
}
/**
* 设置创建时间
*
* @param createTime 创建时间
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -1,6 +1,7 @@
package com.cool.store.request; package com.cool.store.request;
import com.cool.store.entity.SignFranchiseDO; import com.cool.store.entity.SignFranchiseDO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@@ -62,7 +63,7 @@ public class AddSignFranchiseRequest {
private Date contractStartTime; private Date contractStartTime;
@ApiModelProperty("合同结束日期") @ApiModelProperty("合同结束日期")
private Date contractStartEndTime; private Date contractEndTime;
@ApiModelProperty("用印次数") @ApiModelProperty("用印次数")
private String impressionNum; private String impressionNum;
@@ -148,6 +149,91 @@ public class AddSignFranchiseRequest {
@ApiModelProperty("是否统管 1-统管0-不统管") @ApiModelProperty("是否统管 1-统管0-不统管")
private Integer unifiedManagement; private Integer unifiedManagement;
@ApiModelProperty("老店编码 签约类型选择老店转加盟时有")
private String oldShopCode;
@ApiModelProperty("合同加盟费")
@NotBlank(message = "合同加盟费不能为空")
private String contractFranchiseFee;
/**
* 合同管理费
*/
@ApiModelProperty("合同管理费")
@NotBlank(message = "合同管理费不能为空")
private String contractManageFee;
/**
* 合同品牌使用费
*/
@ApiModelProperty("合同品牌使用费")
@NotBlank(message = "合同品牌使用费不能为空")
private String contractBrandUseFee;
/**
* 合同设计费
*/
@ApiModelProperty("合同设计费")
@NotBlank(message = "合同设计费不能为空")
private String contractPerformanceBond;
/**
* 合同保证金
*/
@ApiModelProperty("合同保证金")
@NotBlank(message = "合同保证金不能为空")
private String contractLoanMargin;
/**
* 合同系统使用费
*/
@ApiModelProperty("合同系统使用费")
@NotBlank(message = "合同系统使用费不能为空")
private String contractSysUserFee;
/**
* 加盟来源
*/
@ApiModelProperty("加盟来源")
private String joinSource;
/**
* 签约形式
*/
@ApiModelProperty("签约形式")
private String signModality;
/**
* 加盟费频率
*/
@ApiModelProperty("加盟费频率")
private Integer franchiseFeeFrequency;
/**
* 品牌使用费频率
*/
@ApiModelProperty("品牌使用费频率")
private Integer brandUseFeeFrequency;
/**
* 管理费频率
*/
@ApiModelProperty("管理费频率")
private Integer manageFeeFrequency;
/**
* 加盟费折扣金额
*/
@ApiModelProperty("加盟费折扣金额")
private String discountAmount;
@ApiModelProperty("币种")
private String currency;
@ApiModelProperty("合同使用年限")
private Integer contractServiceLife;
public SignFranchiseDO toSignFranchiseDO() { public SignFranchiseDO toSignFranchiseDO() {
@@ -159,8 +245,9 @@ public class AddSignFranchiseRequest {
signFranchiseDO.setIsBusinessLicense(this.isBusinessLicense); signFranchiseDO.setIsBusinessLicense(this.isBusinessLicense);
signFranchiseDO.setIsFoodLicense(this.isFoodLicense); signFranchiseDO.setIsFoodLicense(this.isFoodLicense);
signFranchiseDO.setContractStartTime(this.contractStartTime); signFranchiseDO.setContractStartTime(this.contractStartTime);
signFranchiseDO.setContractEndTime(this.contractStartEndTime); signFranchiseDO.setContractEndTime(this.contractEndTime);
signFranchiseDO.setImpressionNum(this.impressionNum); signFranchiseDO.setImpressionNum(this.impressionNum);
signFranchiseDO.setOldShopCode(this.oldShopCode);
// signFranchiseDO.setBusinessStartHours(setMill(this.businessStartHours)); // signFranchiseDO.setBusinessStartHours(setMill(this.businessStartHours));
// signFranchiseDO.setBusinessEndHours(setMill(this.businessEndHours)); // signFranchiseDO.setBusinessEndHours(setMill(this.businessEndHours));
// signFranchiseDO.setIrregularReason(this.irregularReason); // signFranchiseDO.setIrregularReason(this.irregularReason);
@@ -180,6 +267,20 @@ public class AddSignFranchiseRequest {
signFranchiseDO.setIntroductionAward(this.introductionAward); signFranchiseDO.setIntroductionAward(this.introductionAward);
signFranchiseDO.setPartnershipSignatoryFirstWhichStore(this.partnershipSignatoryFirstWhichStore); signFranchiseDO.setPartnershipSignatoryFirstWhichStore(this.partnershipSignatoryFirstWhichStore);
signFranchiseDO.setUnifiedManagement(this.unifiedManagement); signFranchiseDO.setUnifiedManagement(this.unifiedManagement);
signFranchiseDO.setContractFranchiseFee(this.contractFranchiseFee);
signFranchiseDO.setContractManageFee(this.contractManageFee);
signFranchiseDO.setContractBrandUseFee(this.contractBrandUseFee);
signFranchiseDO.setContractPerformanceBond(this.contractPerformanceBond);
signFranchiseDO.setContractLoanMargin(this.contractLoanMargin);
signFranchiseDO.setContractSysUserFee(this.contractSysUserFee);
signFranchiseDO.setJoinSource(this.joinSource);
signFranchiseDO.setSignModality(this.signModality);
signFranchiseDO.setFranchiseFeeFrequency(this.franchiseFeeFrequency);
signFranchiseDO.setBrandUseFeeFrequency(this.brandUseFeeFrequency);
signFranchiseDO.setManageFeeFrequency(this.manageFeeFrequency);
signFranchiseDO.setDiscountAmount(this.discountAmount);
signFranchiseDO.setCurrency(this.currency);
signFranchiseDO.setContractServiceLife(this.contractServiceLife);
return signFranchiseDO; return signFranchiseDO;
} }

View File

@@ -16,6 +16,8 @@ import java.util.Date;
public class StoreMasterDTO { public class StoreMasterDTO {
private String enterpriseId; private String enterpriseId;
@ApiModelProperty("门店id")
private String storeId;
@ApiModelProperty("门店名称(加盟签约)") @ApiModelProperty("门店名称(加盟签约)")
private String storeName; private String storeName;

Some files were not shown because too many files have changed in this diff Show More