diff --git a/coolstore-partner-common/src/main/java/com/cool/store/common/PageBasicInfo.java b/coolstore-partner-common/src/main/java/com/cool/store/common/PageBasicInfo.java
index 97e5a9e1a..35a03a0fe 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/common/PageBasicInfo.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/common/PageBasicInfo.java
@@ -1,5 +1,6 @@
package com.cool.store.common;
+import lombok.Builder;
import lombok.Data;
@Data
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/DictConstants.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/DictConstants.java
index 615539ea9..30794c267 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/constants/DictConstants.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/DictConstants.java
@@ -1,5 +1,8 @@
package com.cool.store.constants;
+import java.util.Arrays;
+import java.util.List;
+
/**
*
* 字典表常量池
@@ -13,4 +16,21 @@ public class DictConstants {
* 装修设计要求-统一装修设计
*/
public static final String DECORATION_REQUIREMENT_UNIFORM = "decoration_requirement_uniform";
+
+ /**
+ * 加盟费-费用类型
+ */
+ public static final String EXPENSE_TYPE = "expense_type";
+
+ /**
+ * 平安钱包默认分账费用类型字典项code
+ */
+ public static final List PING_AN_DEFAULT_ALLOCATION_EXPENSE_TYPE_CODES = Arrays.asList(
+ "expense_franchise_fee",
+ "expense_management_fee",
+ "expense_brand_usage_fee",
+ "expense_design_fee_group",
+// "expense_design_fee_lg",
+ "expense_earnest_money"
+ );
}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java
index a853fcff9..81b296147 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java
@@ -346,7 +346,9 @@ public class RedisConstant {
* 十二分导入锁
*/
public static final String TP_PENALTY_APPLY_IMPORT_LOCK = "tp_penalty_apply_import_lock";
-
+
+ public static final String STANDARD_STORE_PAY_LOCK_KEY = "standard_store_pay_lock_key:{0}";
+
/**
* 拜访记录导出锁
*/
@@ -361,4 +363,14 @@ public class RedisConstant {
* 我的铺位导出锁
*/
public static final String MY_POINT_EXPORT_LOCK = "my_point_export_lock";
+
+ /**
+ * 钱包分账公司配置-招商分部
+ */
+ public static final String WALLET_ALLOCATION_CONFIG_INVEST_DIVISION = "wallet_invest_allocation_id";
+
+ /**
+ * 钱包分账支付锁
+ */
+ public static final String WALLET_ALLOCATION_PAY_LOCK_KEY = "wallet_allocation_pay_lock_key:{0}";
}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditTypeEnum.java
index 07bf20308..e89528457 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditTypeEnum.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/AuditTypeEnum.java
@@ -19,6 +19,7 @@ public enum AuditTypeEnum {
BUILDINFORMATION(15,"建店资料信息"),
JINg_DONG_WAI_MAI(16,"京东外卖"),
OPENING_ACCEPTANCE(17,"开业验收"),
+ STANDARD_STORE(18,"标准店"),
;
private Integer code;
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/BusinessModuleEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/BusinessModuleEnum.java
new file mode 100644
index 000000000..c6c5f4f9b
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/BusinessModuleEnum.java
@@ -0,0 +1,31 @@
+package com.cool.store.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 业务模块枚举
+ *
+ * @author system
+ */
+@Getter
+@AllArgsConstructor
+public enum BusinessModuleEnum {
+ WALLET_ALLOCATION_CONFIG("WALLET_ALLOCATION_CONFIG", "分账配置"),
+ PAYEE_BANK_CONFIG("PAYEE_BANK_CONFIG", "收款银行配置"),
+ FEE_STANDARD_CONFIG("FEE_STANDARD_CONFIG", "加盟费用标准收费额配置"),
+ ;
+
+ private final String code;
+ private final String desc;
+
+ public static BusinessModuleEnum getByCode(String code) {
+ for (BusinessModuleEnum e : BusinessModuleEnum.values()) {
+ if (e.getCode().equals(code)) {
+ return e;
+ }
+ }
+ return null;
+ }
+}
+
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
index d6549d304..256da59c5 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
@@ -334,9 +334,38 @@ public enum ErrorCodeEnum {
STORE_NOT_FIND(1610013,"门店不存在",null),
SHOP_NAME_INVALID(1610014, "门店名称包含禁止关键词",null),
CONTRACT_STAGE_NO_COMPLETE(1610015, "当前阶段无法分配运营顾问!",null),
+
+ CONFIG_OPTION_USED(1610015, "配置选项已被店型使用,无法删除", null),
+ STORE_TYPE_OPTION_DEFAULT_DUPLICATE(1610016, "同一配置项下只能设置一个默认选项", null),
+ STORE_TYPE_MUST_DISABLE_BEFORE_DELETE(1610017, "店型已启用,无法删除,请先停用", null),
+ STORE_ORDER_ITEM_CODE_DUPLICATE(1610018, "同一配置项只能选择一个选项", null),
+ CONFIG_OPTION_NAME_EXIST(1610019, "配置选项名称已存在", null),
+ THE_OPTION_IS_NOT_PART_OF_THIS_STORE_TYPE(1610022, "选项不属于该店型", null),
+ THE_QUANTITY_MUST_BE_GREATER_THAN_0(1610020, "数量必须大于0", null),
+ THE_NUMBER_OF_OPTIONS_IS_NOT_MODIFIABLE(1610021, "该选项数量不可修改", null),
+ SHOP_HAS_UNFINISHED_ORDER(1610023, "当前门店存在未结束订单,无法新建", null),
+ SHOP_HAS_PAID_ORDER(1610024, "当前门店已支付完成,不支持新建订单", null),
+ ORDER_PAYING_CANT_ADJUST(1610025,"订单支付中,无法调整", null),
+ ORDER_AMOUNT_NOT_DIFF(1610025,"分账明细与订单金额不相等,请确认!", null),
+ CODE_EXIST(1610026,"存在相同的编码,请确认!", null),
+
+
+ STORE_ORDER_NOT_FOUND(1610100, "订单不存在", null),
+ STORE_ORDER_STATUS_INVALID(1610101, "订单状态不合法", null),
+ STORE_ORDER_UPDATE_FORBIDDEN(1610102, "当前订单状态不允许修改", null),
+ STORE_ORDER_WITHDRAW_FORBIDDEN(1610103, "当前订单状态不允许撤回", null),
+ STORE_ORDER_CANCEL_FORBIDDEN(1610104, "当前订单状态不允许作废", null),
+ CURRENT_STORE_TYPE_EXIST(1610105, "当前店型已存在", null),
+ CURRENT_STORE_TYPE_NOT_EXIST(1610106, "当前店型不存在", null),
+ PAY_FAIL(1610107, "支付失败", null),
+ DUPLICATE_PAYMENTS(1610108, "订单支付中,请勿重复支付!", null),
+ CURRENT_ORDER_NOT_SUPPORT(1610109, "当前订单状态不支持审批!", null),
+
+
+
//装修
TEAM_USED(1612001,"该装修团队有门店使用,无法删除,请确认!",null),
- CURRENT_BRAND_SORT_NUMBER_EXIST(16100007,"当前品牌已存在该排序数字!",null),
+ CURRENT_BRAND_SORT_NUMBER_EXIST(16100007,"已存在该排序数字!",null),
CONTRACT_CONFIG_NOT_EXIST(16100008,"合同配置不存在!",null),
WALLET_OPEN_ACCOUNT_FAIL(1620001,"钱包开通失败",null),
@@ -393,6 +422,30 @@ public enum ErrorCodeEnum {
VISIT_RECORD_COMPLETE(1820005, "已完成拜访", null),
EXPORT_TASK_LIMIT(1830006, "导出任务数量达上限,请稍后再试", null),
CITY_PLANNING_EXISTS(1820001, "同年份同季度同省市已存在规划,不能重复添加", null),
+
+ WALLET_INVEST_TYPE_EXISTS(1830000, "同品牌同费用仅能存在分部或全部", null),
+ WALLET_UNIQUE_KEY_EXISTS(1830001, "该加盟品牌、招商分部、费用类型已存在", null),
+ BANK_CONFIG_INVEST_TYPE_EXISTS(1830002, "同品牌同付款方式只能配置全部或分部其中一种", null),
+ BANK_CONFIG_UNIQUE_KEY_EXISTS(1830003, "该加盟品牌、招商分部、付款方式配置已存在", null),
+ FEE_STANDARD_UNIQUE_KEY_EXISTS(1830003, "该加盟品牌、费用类型配置已存在", null),
+ NO_PAYMENT_METHOD_IS_SET(1830004, "未设置支付方式", null),
+ FRANCHISE_FEE_PAY_TYPE_ERROR(1830005,"缴款方式已选择,不可更改!",null),
+ EXIST_PAY_INFO(1830006, "存在缴款,无法修改分账信息", null),
+ PAY_TYPE_UNEQUAL_TO_PING_AN_WALLET(1830007, "支付方式不为平安钱包支付", null),
+ NONSUPPORT_EXPENSE_TYPE(1830008, "不支持的费用类型", null),
+ EXPENSE_TYPE_HAS_PAID(1830009, "{0}已完成支付", null),
+ EXPENSE_CHANGED(1830010, "费用发生变化,请刷新页面后重试", null),
+ THERE_IS_NO_PAYMENT_INFORMATION(1830011, "不存在缴费信息", null),
+ THE_USER_IS_PAYING_UNABLE_UPDATE(1830012, "用户缴费中,无法编辑", null),
+ THE_USER_IS_PAYING(1830018, "用户缴费中,请稍后再试", null),
+ ALLOCATION_CONFIG_NOT_EXIST(1830013, "不存在分账配置信息", null),
+ NOT_EXIST_CALLBACK_RESOLVE(1830014, "不存在回调处理策略", null),
+ NOT_EXIST_PING_AN_ACCOUNT(1830015, "不存在平安账户,请开通", null),
+ NOT_ENOUGH_BALANCE(1830016, "账户余额不足", null),
+ WALLET_TRANS_FAIL(1830017, "钱包交易失败", null),
+ WALLET_RE_PAY_FAIL(1830019, "重新支付异常,请联系管理员", null),
+ WALLET_PAY_CANNOT_CANCEL(1830020, "该交易无法取消", null),
+ TOTAL_FEES_NEED_EQUAL(1830021, "分账总金额需与合计缴费金额一致", null),
;
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/FileTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/FileTypeEnum.java
index c72c44a55..311435bdd 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/enums/FileTypeEnum.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/FileTypeEnum.java
@@ -30,6 +30,7 @@ public enum FileTypeEnum {
TP_PENALTY_IMPORT("tpPenaltyImport", "十二分惩处申请单导入"),
TP_PENALTY_ERROR_EXPORT("tpPenaltyErrorExport", "十二分惩处申请单导入错误列表"),
VISIT_RECORD_EXPORT("visitRecordExport", "拜访记录列表"),
+ ORDER_RECORD_EXPORT("orderRecordExport", "订单记录列表"),
POINT_EXPORT("pointExport", "铺位管理列表"),
MY_POINT_EXPORT("myPointExport", "我的铺位管理列表"),
;
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/StoreTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/StoreTypeEnum.java
index 9b560b250..4932e8d7e 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/enums/StoreTypeEnum.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/StoreTypeEnum.java
@@ -10,7 +10,9 @@ public enum StoreTypeEnum {
//:0-无展示门店、1-餐厅店、2-普通门店
NO_SHOW_STORE(0, "无展示门店"),
RESTAURANT_STORE(1, "餐厅店"),
- ORDINARY_STORE(2, "普通门店");
+ ORDINARY_STORE(2, "普通门店"),
+ X_STORE(3, "X店型"),
+ Z_STORE(4, "Z店型");
private Integer code;
private String message;
StoreTypeEnum(Integer code, String message) {
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/dict/DictTableEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/dict/DictTableEnum.java
new file mode 100644
index 000000000..7a8bb8c67
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/dict/DictTableEnum.java
@@ -0,0 +1,33 @@
+package com.cool.store.enums.dict;
+
+/**
+ * @Auther zx_szh
+ * @Date 2026/1/22 16:24
+ * @Version 1.0
+ */
+public enum DictTableEnum {
+
+
+ STANDARD_STORE_TYPE_CONFIG_TYPE("standard_store_type_config_type","标准店型配置类型"),
+ STANDARD_STORE_TYPE_CONFIG_COLUMN("standard_store_type_config_column","标准店型配置项"),
+
+ ;
+
+ private String code;
+
+ private String message;
+
+ DictTableEnum(String code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/fees/AllocationPayStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/fees/AllocationPayStatusEnum.java
new file mode 100644
index 000000000..5a08d4661
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/fees/AllocationPayStatusEnum.java
@@ -0,0 +1,36 @@
+package com.cool.store.enums.fees;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *
+ * 平安钱包缴费转账状态枚举类
+ *
+ *
+ * @author wangff
+ * @since 2026/2/3
+ */
+@Getter
+@AllArgsConstructor
+public enum AllocationPayStatusEnum {
+
+ PAID(1, "已支付"),
+ FAIL(2, "支付失败"),
+ PAYING(3, "支付中"),
+ CANCEL(4, "已取消")
+ ;
+
+ private final Integer status;
+
+ private final String desc;
+
+ public static String getDescByStatus(Integer status) {
+ for (AllocationPayStatusEnum value : values()) {
+ if (value.status.equals(status)) {
+ return value.desc;
+ }
+ }
+ return "";
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/fees/PayTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/fees/PayTypeEnum.java
new file mode 100644
index 000000000..cf7a0fb8f
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/fees/PayTypeEnum.java
@@ -0,0 +1,25 @@
+package com.cool.store.enums.fees;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *
+ * 支付方式枚举类
+ *
+ *
+ * @author wangff
+ * @since 2026/1/29
+ */
+@Getter
+@AllArgsConstructor
+public enum PayTypeEnum {
+
+ OFFLINE(1, "线下支付"),
+ PING_AN(2, "平安钱包支付"),
+ ;
+
+ private final Integer type;
+
+ private final String desc;
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/fees/WalletFeeItemEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/fees/WalletFeeItemEnum.java
new file mode 100644
index 000000000..3fb30d750
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/fees/WalletFeeItemEnum.java
@@ -0,0 +1,50 @@
+package com.cool.store.enums.fees;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *
+ * 钱包转账费用科目枚举类
+ *
+ *
+ * @author wangff
+ * @since 2026/1/30
+ */
+@Getter
+@AllArgsConstructor
+public enum WalletFeeItemEnum {
+ FRANCHISE_FEE(310, "expense_franchise_fee", "加盟费"),
+ MANAGEMENT_FEE(311, "expense_management_fee", "管理费(年)"),
+ BRAND_USAGE_FEE(312, "expense_brand_usage_fee", "品牌使用费(年)"),
+ DESIGN_FEE_GROUP(313, "expense_design_fee_group", "设计费-集团"),
+// DESIGN_FEE_LG(314, "expense_design_fee_lg", "设计费-立规"),
+ EARNEST_MONEY(315, "expense_earnest_money", "保证金"),
+ EXPENSE_DECORATION_MONEY(316, "expense_decoration_money", "装修费"),
+ EXPENSE_EQUIPMENT_MONEY(317, "expense_equipment_money", "设备费"),
+ ;
+
+ private final Integer feeItemId;
+
+ private final String expenseType;
+
+ private final String desc;
+
+ public static WalletFeeItemEnum getByExpenseType(String expenseType) {
+ for (WalletFeeItemEnum value : WalletFeeItemEnum.values()) {
+ if (value.expenseType.equals(expenseType)) {
+ return value;
+ }
+ }
+ return null;
+ }
+
+ public static WalletFeeItemEnum getByFeeItemId(Integer feeItemId) {
+ for (WalletFeeItemEnum value : WalletFeeItemEnum.values()) {
+ if (value.feeItemId.equals(feeItemId)) {
+ return value;
+ }
+ }
+ return null;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/order/StoreOrderStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/order/StoreOrderStatusEnum.java
new file mode 100644
index 000000000..6ff1013a6
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/order/StoreOrderStatusEnum.java
@@ -0,0 +1,56 @@
+package com.cool.store.enums.order;
+
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+@Getter
+public enum StoreOrderStatusEnum {
+
+ DRAFT(0, "草稿"),
+ WAIT_CONFIRM(5, "待立规确认"),
+ INVEST_MANAGER_CONFIRM(7, "待招商经理确认"),
+ FINANCIAL_CONFIRM(8, "待财务确认"),
+ WAIT_ADJUST(10, "待调整"),
+ WAIT_PAY(15, "待支付"),
+ PAID(20, "已支付"),
+ PAY_FAIL(22, "支付失败"),
+ CLOSED(25, "已关闭");
+
+ private final Integer code;
+ private final String desc;
+
+ StoreOrderStatusEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ private static final Map MAP = Arrays.stream(values())
+ .collect(Collectors.toMap(StoreOrderStatusEnum::getCode, Function.identity(), (a, b) -> a));
+
+ public static StoreOrderStatusEnum of(Integer code) {
+ return MAP.get(code);
+ }
+
+
+ /**
+ * 可撤回阶段
+ * @param code
+ * @return
+ */
+ public static boolean canWithdraw(Integer code) {
+ return WAIT_CONFIRM.getCode().equals(code) || WAIT_PAY.getCode().equals(code)||INVEST_MANAGER_CONFIRM.getCode().equals(code);
+ }
+
+ /**
+ * 待审核状态
+ * @param code
+ * @return
+ */
+ public static boolean approve(Integer code) {
+ return WAIT_CONFIRM.getCode().equals(code) || INVEST_MANAGER_CONFIRM.getCode().equals(code);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java
index 97e73dd6d..1692a2756 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java
@@ -43,6 +43,8 @@ public enum ShopSubStageEnum {
SHOP_STAGE_6(ShopStageEnum.SHOP_STAGE_2, 260, "开通门店平安钱包", 1),
SHOP_STAGE_27(ShopStageEnum.SHOP_STAGE_2, 270, "开业验收", 1),
+ SHOP_STAGE_28(ShopStageEnum.SHOP_STAGE_2, 280, "选择标准店型", 1),
+
SHOP_STAGE_30(ShopStageEnum.SHOP_STAGE_2, 300, "开业日期报备", 1),
@@ -68,11 +70,19 @@ public enum ShopSubStageEnum {
this.planCompleteDays = planCompleteDays;
}
- public static Integer getTotalStageIsLocationAndPreparation() {
+ public static Integer getTotalStageIsLocationAndPreparation(Integer useStandardStore) {
int total = 0;
for (ShopSubStageEnum shopStageEnum : ShopSubStageEnum.values()) {
if (shopStageEnum.getShopStageEnum().getShopStage().equals(ShopStageEnum.SHOP_STAGE_1.getShopStage())
|| shopStageEnum.getShopStageEnum().getShopStage().equals(ShopStageEnum.SHOP_STAGE_2.getShopStage())) {
+ //如果不是标准店 且是SHOP_STAGE_28 直接continue
+ if (useStandardStore==0&&shopStageEnum.getShopSubStage().equals(SHOP_STAGE_28.getShopSubStage())){
+ continue;
+ }
+ //是标准店 没有缴费阶段
+ if (useStandardStore==1&&shopStageEnum.getShopSubStage().equals(SHOP_STAGE_8.getShopSubStage())){
+ continue;
+ }
total++;
}
}
@@ -110,20 +120,16 @@ public enum ShopSubStageEnum {
*
* @return
*/
- public ShopSubStageStatusEnum getInitStatus() {
+ public ShopSubStageStatusEnum getInitStatus(Integer userStrandard) {
switch (this) {
case SHOP_STAGE_1:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_10;
case SHOP_STAGE_5:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_50;
-// case SHOP_STAGE_6:
-// return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_60;
-// case SHOP_STAGE_7:
-// return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_70;
+ case SHOP_STAGE_6:
case SHOP_STAGE_2:
case SHOP_STAGE_3:
case SHOP_STAGE_4:
- case SHOP_STAGE_7:
case SHOP_STAGE_8:
case SHOP_STAGE_8_5:
case SHOP_STAGE_8_6:
@@ -145,6 +151,20 @@ public enum ShopSubStageEnum {
case SHOP_STAGE_27:
case SHOP_STAGE_30:
return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_00;
+ case SHOP_STAGE_7:
+ if (userStrandard==1){
+ //是标准店 不需要单独缴费 统一收款
+ return null;
+ }else {
+ return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_00;
+ }
+ case SHOP_STAGE_28:
+ if (userStrandard==1){
+ //是标准店 需要选择店型 其他情况不需要选择店型
+ return ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_00;
+ }else {
+ return null;
+ }
default:
return null;
}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java
index bf8df2d4c..610bda606 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java
@@ -166,6 +166,16 @@ public enum ShopSubStageStatusEnum {
SHOP_SUB_STAGE_STATUS_274(ShopSubStageEnum.SHOP_STAGE_27, 2740,"待整改", Boolean.FALSE),
SHOP_SUB_STAGE_STATUS_276(ShopSubStageEnum.SHOP_STAGE_27, 2760,"已完成", Boolean.TRUE),
+
+ SHOP_SUB_STAGE_STATUS_280(ShopSubStageEnum.SHOP_STAGE_28, 2800, "待选购", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_281(ShopSubStageEnum.SHOP_STAGE_28, 2810, "待立规审批", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_281_5(ShopSubStageEnum.SHOP_STAGE_28, 2815, "待招商经理审批", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_282(ShopSubStageEnum.SHOP_STAGE_28, 2820, "待财务确认", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_283(ShopSubStageEnum.SHOP_STAGE_28, 2830, "审批拒绝", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_284(ShopSubStageEnum.SHOP_STAGE_28, 2840, "待缴费", Boolean.FALSE),
+ SHOP_SUB_STAGE_STATUS_285(ShopSubStageEnum.SHOP_STAGE_28, 2850, "已完成", Boolean.TRUE),
+
+
//开业日期报备
SHOP_SUB_STAGE_STATUS_300(ShopSubStageEnum.SHOP_STAGE_30, 3000, "待填写", Boolean.FALSE),
SHOP_SUB_STAGE_STATUS_310(ShopSubStageEnum.SHOP_STAGE_30, 3010, "待开业确认", Boolean.FALSE),
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/visit/StoreVisitReservationStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/visit/StoreVisitReservationStatusEnum.java
new file mode 100644
index 000000000..a1900146e
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/visit/StoreVisitReservationStatusEnum.java
@@ -0,0 +1,32 @@
+package com.cool.store.enums.visit;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 预约到店状态
+ */
+@Getter
+@AllArgsConstructor
+public enum StoreVisitReservationStatusEnum {
+
+ WAIT_CONFIRM(10, "待确认"),
+ WAIT_VISIT(20, "待看店"),
+ ARRIVED(30, "已到店"),
+ CANCELED(40, "已取消");
+
+ private final Integer status;
+ private final String desc;
+
+ public static boolean isValid(Integer status) {
+ if (status == null) {
+ return false;
+ }
+ for (StoreVisitReservationStatusEnum value : values()) {
+ if (value.status.equals(status)) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/wallet/WalletTradeModuleEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/wallet/WalletTradeModuleEnum.java
new file mode 100644
index 000000000..38e1a5afe
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/wallet/WalletTradeModuleEnum.java
@@ -0,0 +1,34 @@
+package com.cool.store.enums.wallet;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ *
+ * 钱包交易业务模块枚举类
+ *
+ *
+ * @author wangff
+ * @since 2026/2/4
+ */
+@Getter
+@AllArgsConstructor
+public enum WalletTradeModuleEnum {
+
+ FRANCHISE_PAY("FRANCHISE_PAY", "钱包加盟缴费"),
+ STANDARD_STORE("STANDARD_STORE", "标准店缴费"),
+ ;
+
+ private final String module;
+
+ private final String desc;
+
+ public static WalletTradeModuleEnum getByModule(String module) {
+ for (WalletTradeModuleEnum value : WalletTradeModuleEnum.values()) {
+ if (value.getModule().equals(module)) {
+ return value;
+ }
+ }
+ return null;
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/CommonUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/CommonUtil.java
index 07bf9d41a..02e7e82dc 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/utils/CommonUtil.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/CommonUtil.java
@@ -22,4 +22,12 @@ public class CommonUtil {
} catch (Exception ignored) {}
return BigDecimal.ZERO;
}
+
+ public static BigDecimal addAll(String... value) {
+ BigDecimal total = new BigDecimal(0);
+ for (String v : value) {
+ total = total.add(convertToBig(v));
+ }
+ return total;
+ }
}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/GenerateNoUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/GenerateNoUtil.java
new file mode 100644
index 000000000..6972d488c
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/GenerateNoUtil.java
@@ -0,0 +1,25 @@
+package com.cool.store.utils;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+import static com.cool.store.utils.CoolDateUtils.DATE_FORMAT_SEC_9;
+
+/**
+ *
+ * 编号生成工具栏
+ *
+ *
+ * @author wangff
+ * @since 2026/2/5
+ */
+public class GenerateNoUtil {
+
+ /**
+ * 生成编号,yyyyMMddHHmmssSSS+3位随机数
+ */
+ public static String generateMillsNoWithRandom() {
+ DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(DATE_FORMAT_SEC_9);
+ return LocalDateTime.now().format(dateFormatter) + ((int) (Math.random() * 900) + 100);
+ }
+}
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisUtil.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisUtil.java
index 8223f7559..0e313bf01 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisUtil.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/RedisUtil.java
@@ -175,4 +175,24 @@ public class RedisUtil {
public Long increment(String key) {
return redisTemplate.boundValueOps(key).increment(1L);
}
+
+ /**
+ * 尝试获取分布式锁
+ * @param key 锁的key
+ * @param value 请求标识,通常是UUID
+ * @param expireTime 超时时间
+ * @param timeUnit 时间单位
+ * @return 是否获取成功
+ */
+ public Boolean tryLock(String key, String value, long expireTime, TimeUnit timeUnit) {
+ return redisTemplate.opsForValue().setIfAbsent(key, value, expireTime, timeUnit);
+ }
+
+ /**
+ * 释放锁
+ * @param key 锁的key
+ */
+ public void unlock(String key) {
+ redisTemplate.delete(key);
+ }
}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java
index da4d10589..7f6923431 100644
--- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/FranchiseFeeDAO.java
@@ -42,4 +42,17 @@ public class FranchiseFeeDAO {
}
return franchiseFeeMapper.batchUpdateXgjCollectionStatusAndXgjFeesPaid(franchiseFeeStageDateDTOList);
}
+
+ public Boolean updatePayType(Long shopId, Integer payType) {
+ if (shopId == null || payType == null){
+ return false;
+ }
+ Example example = new Example(FranchiseFeeDO.class);
+ example.createCriteria().andEqualTo("shopId", shopId);
+ return franchiseFeeMapper.updateByExampleSelective(FranchiseFeeDO.builder().payType(payType).build(), example) > 0;
+ }
+
+ public FranchiseFeeDO selectByShopId(Long shopId) {
+ return franchiseFeeMapper.selectByShopId(shopId);
+ }
}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java
index 73f97b144..0784eaa05 100644
--- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/ShopStageInfoDAO.java
@@ -4,6 +4,7 @@ import com.cool.store.constants.CommonConstants;
import com.cool.store.dto.BuildStageDTO;
import com.cool.store.dto.PlatformBuildStageDTO;
import com.cool.store.dto.Preparation.ScheduleDTO;
+import com.cool.store.entity.LineInfoDO;
import com.cool.store.entity.ShopInfoDO;
import com.cool.store.entity.ShopStageInfoDO;
import com.cool.store.enums.FranchiseBrandEnum;
@@ -41,11 +42,11 @@ public class ShopStageInfoDAO {
/**
* 初始化店铺阶段信息
- * @param lineId
+ * @param lineInfoDO
* @param shopInfoList
* @return flag =true:表示意向加盟节点完成正常初始化。false:表示意向加盟节点未完成新建分店阶段都为未开始-100。
*/
- public Integer initShopStageInfo(Long lineId, List shopInfoList, Boolean flag) {
+ public Integer initShopStageInfo(LineInfoDO lineInfoDO, List shopInfoList, Boolean flag) {
if (CollectionUtils.isEmpty(shopInfoList)) {
return CommonConstants.ZERO;
}
@@ -58,28 +59,27 @@ public class ShopStageInfoDAO {
// 三明治跳过营帐通开通
continue;
}
- // TODO: 临时跳过
- if (shopSubStageEnum.equals(ShopSubStageEnum.SHOP_STAGE_6)) {
- continue;
- }
ShopStageInfoDO shopStageInfo = new ShopStageInfoDO();
- shopStageInfo.setLineId(lineId);
+ shopStageInfo.setLineId(lineInfoDO.getId());
shopStageInfo.setShopId(shopId);
ShopStageEnum shopStageEnum = shopSubStageEnum.getShopStageEnum();
shopStageInfo.setShopStage(shopStageEnum.getShopStage());
shopStageInfo.setShopSubStage(shopSubStageEnum.getShopSubStage());
ShopSubStageStatusEnum initStatus = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_00;
if (flag) {
- initStatus = shopSubStageEnum.getInitStatus();
+ initStatus = shopSubStageEnum.getInitStatus(lineInfoDO.getUseStandardStore());
+ }
+ //标准店和普通店
+ if (initStatus == null){
+ continue;
}
shopStageInfo.setShopSubStageStatus(initStatus.getShopSubStageStatus());
- shopStageInfo.setRemark(shopSubStageEnum.getShopSubStageName() + CommonConstants.PATH_BAR + shopSubStageEnum.getInitStatus().getShopSubStageStatusName());
+ shopStageInfo.setRemark(shopSubStageEnum.getShopSubStageName() + CommonConstants.PATH_BAR + initStatus.getShopSubStageStatusName());
shopStageInfo.setIsTerminated(Boolean.FALSE);
shopStageInfo.setPlanCompleteTime(shopSubStageEnum.getPlanCompleteTime(selectStartDate));
addShopStageList.add(shopStageInfo);
}
}
- //发送短信
return shopStageInfoMapper.batchInsert(addShopStageList);
}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/config/ConfigItemCategoryDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/config/ConfigItemCategoryDAO.java
new file mode 100644
index 000000000..276733bd9
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/config/ConfigItemCategoryDAO.java
@@ -0,0 +1,99 @@
+package com.cool.store.dao.config;
+
+import com.cool.store.entity.config.ConfigItemCategoryDO;
+import com.cool.store.mapper.config.ConfigItemCategoryMapper;
+import com.cool.store.vo.config.ConfigItemBaseInfoVO;
+import com.cool.store.vo.config.ConfigItemCategoryBaseInfoVO;
+import com.cool.store.vo.config.ConfigItemCategoryVO;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.entity.Example;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Repository
+@RequiredArgsConstructor
+public class ConfigItemCategoryDAO {
+
+ private final ConfigItemCategoryMapper configItemCategoryMapper;
+
+ public boolean insertSelective(ConfigItemCategoryDO entity) {
+ return configItemCategoryMapper.insertSelective(entity) > 0;
+ }
+
+ public boolean updateSelective(ConfigItemCategoryDO entity) {
+ return configItemCategoryMapper.updateByPrimaryKeySelective(entity) > 0;
+ }
+
+ public ConfigItemCategoryDO getById(Long id) {
+ return configItemCategoryMapper.selectByPrimaryKey(id);
+ }
+
+ public List queryByCondition(String categoryName, Integer status) {
+ return configItemCategoryMapper.queryByCondition(categoryName, status);
+ }
+
+ public List queryAllList() {
+ return configItemCategoryMapper.queryAllActiveList();
+ }
+
+ public Map queryAllListMap() {
+ List configItemBaseInfoVOS = configItemCategoryMapper.queryAllActiveList();
+ if (CollectionUtils.isEmpty(configItemBaseInfoVOS)){
+ return new HashMap<>();
+ }
+ return configItemCategoryMapper.queryAllActiveList().stream()
+ .filter(v -> StringUtils.isNotBlank(v.getCategoryCode()))
+ .collect(Collectors.toMap(ConfigItemCategoryBaseInfoVO::getCategoryCode, ConfigItemCategoryBaseInfoVO::getCategoryName, (a, b) -> a));
+ }
+
+ public boolean softDeleteByIds(List ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return false;
+ }
+ ConfigItemCategoryDO update = new ConfigItemCategoryDO();
+ update.setIsDeleted(1);
+ Example example = new Example(ConfigItemCategoryDO.class);
+ example.createCriteria().andIn("id", ids).andEqualTo("isDeleted", 0);
+ return configItemCategoryMapper.updateByExampleSelective(update, example) > 0;
+ }
+
+ public Map nameMap(List codeList) {
+ if (CollectionUtils.isEmpty(codeList)) {
+ return new HashMap<>();
+ }
+ Example example = new Example(ConfigItemCategoryDO.class);
+ example.createCriteria().andIn("categoryCode", codeList).andEqualTo("isDeleted", 0);
+ return configItemCategoryMapper.selectByExample( example).stream()
+ .filter(v -> StringUtils.isNotBlank(v.getCategoryCode()))
+ .collect(Collectors.toMap(ConfigItemCategoryDO::getCategoryCode, ConfigItemCategoryDO::getCategoryName, (a, b) -> a));
+ }
+
+
+ public boolean existsCode(Integer code, Long excludeId) {
+ if (code == null) {
+ return false;
+ }
+ Example example = new Example(ConfigItemCategoryDO.class);
+ Example.Criteria criteria = example.createCriteria().andEqualTo("sortNo", code).andEqualTo("isDeleted", 0);
+ if (excludeId != null) {
+ criteria.andNotEqualTo("id", excludeId);
+ }
+ return configItemCategoryMapper.selectCountByExample(example) > 0;
+ }
+
+ public boolean existsSortNo(Integer sortNo, Long excludeId) {
+ if (sortNo == null) {
+ return false;
+ }
+ Example example = new Example(ConfigItemCategoryDO.class);
+ Example.Criteria criteria = example.createCriteria().andEqualTo("sortNo", sortNo).andEqualTo("isDeleted", 0);
+ if (excludeId != null) {
+ criteria.andNotEqualTo("id", excludeId);
+ }
+ return configItemCategoryMapper.selectCountByExample(example) > 0;
+ }
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/config/ConfigItemDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/config/ConfigItemDAO.java
new file mode 100644
index 000000000..be021c679
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/config/ConfigItemDAO.java
@@ -0,0 +1,107 @@
+package com.cool.store.dao.config;
+
+import com.cool.store.entity.config.ConfigItemCategoryDO;
+import com.cool.store.entity.config.ConfigItemDO;
+import com.cool.store.mapper.config.ConfigItemMapper;
+import com.cool.store.utils.StringUtil;
+import com.cool.store.vo.config.ConfigItemBaseInfoVO;
+import com.cool.store.vo.config.ConfigItemVO;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.entity.Example;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@Repository
+@RequiredArgsConstructor
+public class ConfigItemDAO {
+
+ private final ConfigItemMapper configItemMapper;
+
+ public boolean insertSelective(ConfigItemDO entity) {
+ return configItemMapper.insertSelective(entity) > 0;
+ }
+
+ public boolean updateSelective(ConfigItemDO entity) {
+ return configItemMapper.updateByPrimaryKeySelective(entity) > 0;
+ }
+
+ public ConfigItemDO getById(Long id) {
+ return configItemMapper.selectByPrimaryKey(id);
+ }
+
+ public List queryByCondition(String itemName, String itemCode, Long categoryId, Integer status) {
+ return configItemMapper.queryByCondition(itemName, itemCode, categoryId, status);
+ }
+
+ public Map queryAllActiveMap() {
+ List configItemBaseInfoVOS = configItemMapper.queryAllActiveList();
+ if (CollectionUtils.isEmpty(configItemBaseInfoVOS)){
+ return new HashMap<>();
+ }
+ return configItemBaseInfoVOS.stream()
+ .filter(v -> StringUtils.isNotBlank(v.getItemCode()))
+ .collect(Collectors.toMap(ConfigItemBaseInfoVO::getItemCode, ConfigItemBaseInfoVO::getItemName, (a, b) -> a));
+ }
+
+ public boolean softDeleteByIds(List ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return false;
+ }
+ ConfigItemDO update = new ConfigItemDO();
+ update.setIsDeleted(1);
+ Example example = new Example(ConfigItemDO.class);
+ example.createCriteria().andIn("id", ids).andEqualTo("isDeleted", 0);
+ return configItemMapper.updateByExampleSelective(update, example) > 0;
+ }
+
+
+ public boolean existsItemCode(String code, Long excludeId) {
+ if (StringUtil.isEmpty(code)) {
+ return false;
+ }
+ Example example = new Example(ConfigItemDO.class);
+ Example.Criteria criteria = example.createCriteria().andEqualTo("sortNo", code).andEqualTo("isDeleted", 0);
+ if (excludeId != null) {
+ criteria.andNotEqualTo("id", excludeId);
+ }
+ return configItemMapper.selectCountByExample(example) > 0;
+ }
+
+ public boolean existsSortNo(Integer sortNo, Long excludeId) {
+ if (sortNo == null) {
+ return false;
+ }
+ Example example = new Example(ConfigItemDO.class);
+ Example.Criteria criteria = example.createCriteria().andEqualTo("sortNo", sortNo).andEqualTo("isDeleted", 0);
+ if (excludeId != null) {
+ criteria.andNotEqualTo("id", excludeId);
+ }
+ return configItemMapper.selectCountByExample(example) > 0;
+ }
+
+ public int countByCategoryIds(List categoryIds) {
+ if (CollectionUtils.isEmpty(categoryIds)) {
+ return 0;
+ }
+ return configItemMapper.countByCategoryIds(categoryIds);
+ }
+
+ public Map nameMap(List codeList) {
+ if (CollectionUtils.isEmpty(codeList)) {
+ return new HashMap<>();
+ }
+ Example example = new Example(ConfigItemDO.class);
+ example.createCriteria().andIn("itemCode", codeList).andEqualTo("isDeleted", 0);
+ return configItemMapper.selectByExample( example).stream()
+ .filter(v -> StringUtils.isNotBlank(v.getItemCode()))
+ .collect(Collectors.toMap(ConfigItemDO::getItemCode, ConfigItemDO::getItemName, (a, b) -> a));
+ }
+
+
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/config/ConfigOptionDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/config/ConfigOptionDAO.java
new file mode 100644
index 000000000..42ae34562
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/config/ConfigOptionDAO.java
@@ -0,0 +1,101 @@
+package com.cool.store.dao.config;
+
+import com.cool.store.entity.config.ConfigOptionDO;
+import com.cool.store.mapper.config.ConfigOptionMapper;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.entity.Example;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 配置选项 DAO
+ */
+@Repository
+@RequiredArgsConstructor
+public class ConfigOptionDAO {
+ private final ConfigOptionMapper configOptionMapper;
+
+ public boolean insertSelective(ConfigOptionDO option) {
+ return configOptionMapper.insertSelective(option) > 0;
+ }
+
+ public boolean updateSelective(ConfigOptionDO option) {
+ return configOptionMapper.updateByPrimaryKeySelective(option) > 0;
+ }
+
+ public ConfigOptionDO getById(Long id) {
+ return configOptionMapper.selectByPrimaryKey(id);
+ }
+
+ public boolean deleteByIds(List ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return false;
+ }
+ Example example = new Example(ConfigOptionDO.class);
+ example.createCriteria().andIn("id", ids);
+ return configOptionMapper.deleteByExample(example) > 0;
+ }
+
+ public List query(String categoryCode, String itemCode, Integer active, String optionName) {
+ Example example = new Example(ConfigOptionDO.class);
+ Example.Criteria criteria = example.createCriteria();
+ if (Objects.nonNull(categoryCode)) {
+ criteria.andEqualTo("categoryCode", categoryCode);
+ }
+ if (Objects.nonNull(itemCode)) {
+ criteria.andEqualTo("itemCode", itemCode);
+ }
+ if (Objects.nonNull(active)) {
+ criteria.andEqualTo("active", active);
+ }
+ if (Objects.nonNull(optionName) && !optionName.trim().isEmpty()) {
+ criteria.andLike("optionName", "%" + optionName.trim() + "%");
+ }
+ example.setOrderByClause("sort_order ASC");
+ return configOptionMapper.selectByExample(example);
+ }
+
+ public List listActiveByIds(List ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return Collections.emptyList();
+ }
+ return configOptionMapper.listActiveByIds(ids);
+ }
+
+ /**
+ * 校验排序是否已存在(全局唯一,不区分类型/配置项)
+ * @param sortOrder 排序值
+ * @param excludeId 排除自身ID(新增传 null;修改传当前ID)
+ */
+ public boolean existsSortOrder(Integer sortOrder, Long excludeId) {
+ if (sortOrder == null) {
+ return false;
+ }
+ Example example = new Example(ConfigOptionDO.class);
+ Example.Criteria criteria = example.createCriteria()
+ .andEqualTo("sortOrder", sortOrder);
+ criteria.andEqualTo("active", 1);
+ if (excludeId != null) {
+ criteria.andNotEqualTo("id", excludeId);
+ }
+ return configOptionMapper.selectCountByExample(example) > 0;
+ }
+
+ public boolean existsOptionName(String optionName, Long excludeId) {
+ if (optionName == null || optionName.trim().isEmpty()) {
+ return false;
+ }
+ Example example = new Example(ConfigOptionDO.class);
+ Example.Criteria criteria = example.createCriteria()
+ .andEqualTo("optionName", optionName.trim());
+ criteria.andEqualTo("active", 1);
+ if (excludeId != null) {
+ criteria.andNotEqualTo("id", excludeId);
+ }
+ return configOptionMapper.selectCountByExample(example) > 0;
+ }
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/FeeStandardConfigDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/FeeStandardConfigDAO.java
new file mode 100644
index 000000000..da1f8477c
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/FeeStandardConfigDAO.java
@@ -0,0 +1,73 @@
+package com.cool.store.dao.fees;
+
+import cn.hutool.core.collection.CollStreamUtil;
+import com.cool.store.entity.fees.FeeStandardConfigDO;
+import com.cool.store.mapper.fees.FeeStandardConfigMapper;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.entity.Example;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * 加盟费用标准收费额配置DAO
+ */
+@Repository
+@RequiredArgsConstructor
+public class FeeStandardConfigDAO {
+
+ private final FeeStandardConfigMapper feeStandardConfigMapper;
+
+ public FeeStandardConfigDO selectByPrimaryKey(Long id) {
+ return feeStandardConfigMapper.selectByPrimaryKey(id);
+ }
+
+ public void insertSelective(FeeStandardConfigDO config) {
+ feeStandardConfigMapper.insertSelective(config);
+ }
+
+ public void updateByPrimaryKeySelective(FeeStandardConfigDO config) {
+ feeStandardConfigMapper.updateByPrimaryKeySelective(config);
+ }
+
+ public boolean existJoinBrandAndExpenseType(Integer joinBrand, String expenseType, Long excludeId) {
+ Example example = new Example(FeeStandardConfigDO.class);
+ Example.Criteria criteria = example.createCriteria()
+ .andEqualTo("joinBrand", joinBrand)
+ .andEqualTo("expenseType", expenseType);
+ if (Objects.nonNull(excludeId)) {
+ criteria.andNotEqualTo("id", excludeId);
+ }
+ return feeStandardConfigMapper.selectCountByExample(example) > 0;
+ }
+
+ public List selectByCondition(Integer joinBrand, String expenseType) {
+ Example example = new Example(FeeStandardConfigDO.class);
+ Example.Criteria criteria = example.createCriteria();
+ if (joinBrand != null) {
+ criteria.andEqualTo("joinBrand", joinBrand);
+ }
+ if (StringUtils.isNotBlank(expenseType)) {
+ criteria.andEqualTo("expenseType", expenseType.trim());
+ }
+ example.setOrderByClause("create_time DESC");
+ return feeStandardConfigMapper.selectByExample(example);
+ }
+
+ /**
+ * 根据品牌查询费用标准收费额配置映射
+ * @param joinBrand 品牌
+ * @return 费用类型 -> 收费额配置
+ */
+ public Map getStandardConfigMap(Integer joinBrand) {
+ FeeStandardConfigDO configDO = new FeeStandardConfigDO();
+ configDO.setJoinBrand(joinBrand);
+ List list = feeStandardConfigMapper.select(configDO);
+ return CollStreamUtil.toMap(list, FeeStandardConfigDO::getExpenseType, v -> v);
+ }
+}
+
+
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/PayeeBankConfigDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/PayeeBankConfigDAO.java
new file mode 100644
index 000000000..0616c776d
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/PayeeBankConfigDAO.java
@@ -0,0 +1,97 @@
+package com.cool.store.dao.fees;
+
+import com.cool.store.entity.fees.PayeeBankConfigDO;
+import com.cool.store.mapper.fees.PayeeBankConfigMapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.entity.Example;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 线下收款银行配置DAO
+ */
+@Repository
+@RequiredArgsConstructor
+public class PayeeBankConfigDAO {
+ private final PayeeBankConfigMapper payeeBankConfigMapper;
+
+ public void insertSelective(PayeeBankConfigDO config) {
+ payeeBankConfigMapper.insertSelective(config);
+ }
+
+ public void updateByPrimaryKeySelective(PayeeBankConfigDO config) {
+ payeeBankConfigMapper.updateByPrimaryKeySelective(config);
+ }
+
+ public PayeeBankConfigDO selectByPrimaryKey(Long id) {
+ return payeeBankConfigMapper.selectByPrimaryKey(id);
+ }
+
+ public boolean existUniqueKey(Integer joinBrand, Long investDivisionId, Integer payType, Long excludeId) {
+ Example example = new Example(PayeeBankConfigDO.class);
+ Example.Criteria criteria = example.createCriteria()
+ .andEqualTo("joinBrand", joinBrand)
+ .andEqualTo("investDivisionId", investDivisionId)
+ .andEqualTo("payType", payType);
+ if (Objects.nonNull(excludeId)) {
+ criteria.andNotEqualTo("id", excludeId);
+ }
+ return payeeBankConfigMapper.selectCountByExample(example) > 0;
+ }
+
+ /**
+ * 同品牌同支付方式:只能存在“全部(0)”或“分部”其中一种
+ */
+ public boolean existOtherInvestType(Integer joinBrand, Integer payType, Long investDivisionId, Long excludeId) {
+ Example example = new Example(PayeeBankConfigDO.class);
+ Example.Criteria criteria = example.createCriteria()
+ .andEqualTo("joinBrand", joinBrand)
+ .andEqualTo("payType", payType);
+ if (Long.valueOf(0).equals(investDivisionId)) {
+ criteria.andNotEqualTo("investDivisionId", 0L);
+ } else {
+ criteria.andEqualTo("investDivisionId", 0L);
+ }
+ if (Objects.nonNull(excludeId)) {
+ criteria.andNotEqualTo("id", excludeId);
+ }
+ return payeeBankConfigMapper.selectCountByExample(example) > 0;
+ }
+
+ public List selectByCondition(Integer joinBrand, Long investDivisionId, Integer payType) {
+ Example example = new Example(PayeeBankConfigDO.class);
+ Example.Criteria criteria = example.createCriteria();
+ if (joinBrand != null) {
+ criteria.andEqualTo("joinBrand", joinBrand);
+ }
+ if (investDivisionId != null) {
+ criteria.andEqualTo("investDivisionId", investDivisionId);
+ }
+ if (payType != null) {
+ criteria.andEqualTo("payType", payType);
+ }
+ example.setOrderByClause("create_time DESC");
+ return payeeBankConfigMapper.selectByExample(example);
+ }
+
+ /**
+ * 根据加盟品牌、加盟分部、支付方式查询配置
+ * @param joinBrand 加盟品牌
+ * @param investDivisionId 加盟分部
+ * @param payType 支付方式
+ * @return 配置
+ */
+ public PayeeBankConfigDO getByUniqueKey(Integer joinBrand, Long investDivisionId, Integer payType) {
+ Example example = new Example(PayeeBankConfigDO.class);
+ example.createCriteria()
+ .andEqualTo("joinBrand", joinBrand)
+ .andIn("investDivisionId", Arrays.asList(investDivisionId, 0L))
+ .andEqualTo("payType", payType);
+ return payeeBankConfigMapper.selectOneByExample(example);
+ }
+}
+
+
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/ShopAllocationInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/ShopAllocationInfoDAO.java
new file mode 100644
index 000000000..542fbf0b9
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/ShopAllocationInfoDAO.java
@@ -0,0 +1,63 @@
+package com.cool.store.dao.fees;
+
+import com.cool.store.entity.fees.ShopAllocationInfoDO;
+import com.cool.store.enums.fees.AllocationPayStatusEnum;
+import com.cool.store.mapper.fees.ShopAllocationInfoMapper;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ *
+ * 门店平安钱包分账信息DAO
+ *
+ *
+ * @author wangff
+ * @since 2026/1/29
+ */
+@Repository
+@RequiredArgsConstructor
+public class ShopAllocationInfoDAO {
+ private final ShopAllocationInfoMapper shopAllocationInfoMapper;
+
+ public List getByShopId(Long shopId) {
+ ShopAllocationInfoDO info = new ShopAllocationInfoDO();
+ info.setShopId(shopId);
+ return shopAllocationInfoMapper.select(info);
+ }
+
+ /**
+ * 批量新增
+ */
+ public void insertBatch(List list) {
+ if (CollectionUtils.isEmpty(list)) {
+ return;
+ }
+ shopAllocationInfoMapper.insertBatch(list);
+ }
+
+ /**
+ * 批量更新
+ */
+ public void updateBatch(List list) {
+ if (CollectionUtils.isEmpty(list)) {
+ return;
+ }
+ shopAllocationInfoMapper.updateBatch(list);
+ }
+
+ public void insertOrUpdateBatch(List list) {
+ if (CollectionUtils.isEmpty(list)) {
+ return;
+ }
+ for (ShopAllocationInfoDO shopAllocationInfoDO : list) {
+ if (Objects.isNull(shopAllocationInfoDO.getStatus())) {
+ shopAllocationInfoDO.setStatus(AllocationPayStatusEnum.PAYING.getStatus());
+ }
+ }
+ shopAllocationInfoMapper.insertOrUpdateBatch(list);
+ }
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/WalletAllocationCompanyDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/WalletAllocationCompanyDAO.java
new file mode 100644
index 000000000..684607d70
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/WalletAllocationCompanyDAO.java
@@ -0,0 +1,90 @@
+package com.cool.store.dao.fees;
+
+import cn.hutool.core.collection.CollStreamUtil;
+import com.cool.store.entity.fees.WalletAllocationCompanyDO;
+import com.cool.store.mapper.fees.WalletAllocationCompanyMapper;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.entity.Example;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 平安钱包分账公司配置DAO
+ *
+ * @author system
+ */
+@Repository
+@RequiredArgsConstructor
+public class WalletAllocationCompanyDAO {
+ private final WalletAllocationCompanyMapper walletAllocationCompanyMapper;
+
+ public void insertSelective(WalletAllocationCompanyDO company) {
+ walletAllocationCompanyMapper.insertSelective(company);
+ }
+
+ /**
+ * 批量新增
+ */
+ public void insertBatch(List list) {
+ if (CollectionUtils.isNotEmpty(list)) {
+ walletAllocationCompanyMapper.insertBatch(list);
+ }
+ }
+
+ public void updateByPrimaryKeySelective(WalletAllocationCompanyDO company) {
+ walletAllocationCompanyMapper.updateByPrimaryKeySelective(company);
+ }
+
+ public WalletAllocationCompanyDO selectByPrimaryKey(Long id) {
+ return walletAllocationCompanyMapper.selectByPrimaryKey(id);
+ }
+
+ public void deleteByPrimaryKey(Long id) {
+ walletAllocationCompanyMapper.deleteByPrimaryKey(id);
+ }
+
+ /**
+ * 根据分账配置id查询公司列表
+ */
+ public List selectByConfigId(Long configId) {
+ Example example = new Example(WalletAllocationCompanyDO.class);
+ example.createCriteria().andEqualTo("configId", configId);
+ return walletAllocationCompanyMapper.selectByExample(example);
+ }
+
+ /**
+ * 根据配置id列表查询收款公司映射
+ */
+ public Map> selectGroupByConfigIds(List configIds) {
+ if (CollectionUtils.isEmpty(configIds)) {
+ return Collections.emptyMap();
+ }
+ Example example = new Example(WalletAllocationCompanyDO.class);
+ example.createCriteria().andIn("configId", configIds);
+ List list = walletAllocationCompanyMapper.selectByExample(example);
+ return CollStreamUtil.groupByKey(list, WalletAllocationCompanyDO::getConfigId);
+ }
+
+ /**
+ * 根据收款公司code查询(用于分页查询条件)
+ */
+ public List selectByPayeeCode(String payeeCode) {
+ Example example = new Example(WalletAllocationCompanyDO.class);
+ example.createCriteria().andEqualTo("payeeCode", payeeCode);
+ return walletAllocationCompanyMapper.selectByExample(example);
+ }
+
+ /**
+ * 根据配置id删除
+ */
+ public void deleteByConfigId(Long configId) {
+ WalletAllocationCompanyDO companyDO = new WalletAllocationCompanyDO();
+ companyDO.setConfigId(configId);
+ walletAllocationCompanyMapper.delete(companyDO);
+ }
+}
+
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/WalletAllocationConfigDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/WalletAllocationConfigDAO.java
new file mode 100644
index 000000000..7a779c3a3
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/WalletAllocationConfigDAO.java
@@ -0,0 +1,106 @@
+package com.cool.store.dao.fees;
+
+import com.cool.store.entity.fees.WalletAllocationConfigDO;
+import com.cool.store.mapper.fees.WalletAllocationConfigMapper;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.entity.Example;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 平安钱包分账配置DAO
+ *
+ * @author system
+ */
+@Repository
+@RequiredArgsConstructor
+public class WalletAllocationConfigDAO {
+ private final WalletAllocationConfigMapper walletAllocationConfigMapper;
+
+ public void insertSelective(WalletAllocationConfigDO config) {
+ walletAllocationConfigMapper.insertSelective(config);
+ }
+
+ public void updateByPrimaryKeySelective(WalletAllocationConfigDO config) {
+ walletAllocationConfigMapper.updateByPrimaryKeySelective(config);
+ }
+
+ public WalletAllocationConfigDO selectByPrimaryKey(Long id) {
+ return walletAllocationConfigMapper.selectByPrimaryKey(id);
+ }
+
+ /**
+ * 根据加盟品牌、招商分部、费用类型查询
+ */
+ public Boolean existUniqueKey(Integer joinBrand, Long investDivisionId, String expenseType, Long excludeId) {
+ Example example = new Example(WalletAllocationConfigDO.class);
+ Example.Criteria criteria = example.createCriteria()
+ .andEqualTo("joinBrand", joinBrand)
+ .andEqualTo("investDivisionId", investDivisionId)
+ .andEqualTo("expenseType", expenseType);
+ if (Objects.nonNull(excludeId)) {
+ criteria.andNotEqualTo("id", excludeId);
+ }
+ return walletAllocationConfigMapper.selectCountByExample(example) > 0;
+ }
+
+ /**
+ * 根据加盟品牌、招商分部查询
+ * @param joinBrand 家门品牌
+ * @param investDivisionId 招商分部id
+ * @return 配置列表
+ */
+ public List selectByBrandAndInvest(Integer joinBrand, Long investDivisionId) {
+ Example example = new Example(WalletAllocationConfigDO.class);
+ Example.Criteria criteria = example.createCriteria()
+ .andEqualTo("joinBrand", joinBrand)
+ .andIn("investDivisionId", Arrays.asList(investDivisionId, 0L));
+ return walletAllocationConfigMapper.selectByExample(example);
+ }
+
+ /**
+ * 分页查询
+ */
+ public List selectByCondition(Integer joinBrand, Long investDivisionId, Integer expenseType, List configIds) {
+ Example example = new Example(WalletAllocationConfigDO.class);
+ Example.Criteria criteria = example.createCriteria();
+ if (joinBrand != null) {
+ criteria.andEqualTo("joinBrand", joinBrand);
+ }
+ if (investDivisionId != null) {
+ criteria.andEqualTo("investDivisionId", investDivisionId);
+ }
+ if (expenseType != null) {
+ criteria.andEqualTo("expenseType", expenseType);
+ }
+ if (CollectionUtils.isNotEmpty(configIds)) {
+ criteria.andIn("id", configIds);
+ }
+ example.setOrderByClause("create_time DESC");
+ return walletAllocationConfigMapper.selectByExample(example);
+ }
+
+ /**
+ * 是否存在其他分部类型
+ */
+ public boolean existOtherInvestType(Integer joinBrand, String expenseType, Long investDivisionId, Long excludeId) {
+ Example example = new Example(WalletAllocationConfigDO.class);
+ Example.Criteria criteria = example.createCriteria()
+ .andEqualTo("joinBrand", joinBrand)
+ .andEqualTo("expenseType", expenseType);
+ if (Long.valueOf(0).equals(investDivisionId)) {
+ criteria.andNotEqualTo("investDivisionId", 0);
+ } else {
+ criteria.andEqualTo("investDivisionId", 0);
+ }
+ if (Objects.nonNull(excludeId)) {
+ criteria.andNotEqualTo("id", excludeId);
+ }
+ return walletAllocationConfigMapper.selectCountByExample(example) > 0;
+ }
+}
+
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/WalletPayInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/WalletPayInfoDAO.java
new file mode 100644
index 000000000..0a45e8b20
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/fees/WalletPayInfoDAO.java
@@ -0,0 +1,128 @@
+package com.cool.store.dao.fees;
+
+import com.cool.store.entity.fees.WalletPayInfoDO;
+import com.cool.store.enums.fees.AllocationPayStatusEnum;
+import com.cool.store.mapper.fees.WalletPayInfoMapper;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.entity.Example;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ *
+ * 钱包加盟缴费信息DAO
+ *
+ *
+ * @author wangff
+ * @since 2026/1/30
+ */
+@Repository
+@RequiredArgsConstructor
+public class WalletPayInfoDAO {
+ private final WalletPayInfoMapper walletPayInfoMapper;
+
+ /**
+ * 是否存在缴费信息
+ * @param shopId 门店id
+ * @return 是否存在
+ */
+ public boolean existPayInfo(Long shopId) {
+ Example example = new Example(WalletPayInfoDO.class);
+ example.createCriteria().andEqualTo("shopId", shopId);
+ return walletPayInfoMapper.selectCountByExample(example) > 0;
+ }
+
+ /**
+ * 批量新增
+ */
+ public void insertBatch(List list) {
+ if (CollectionUtils.isEmpty(list)) {
+ return;
+ }
+ walletPayInfoMapper.insertBatch(list);
+ }
+
+ /**
+ * 根据payNo编辑
+ */
+ public void updateByPayNo(WalletPayInfoDO walletPayInfoDO) {
+ Example example = new Example(WalletPayInfoDO.class);
+ example.createCriteria().andEqualTo("payNo", walletPayInfoDO.getPayNo());
+ walletPayInfoMapper.updateByExampleSelective(walletPayInfoDO, example);
+ }
+
+ /**
+ * 根据门店id查询
+ */
+ public List getByShopId(Long shopId, String module, Integer payStatus) {
+ Example example = new Example(WalletPayInfoDO.class);
+ Example.Criteria criteria = example.createCriteria()
+ .andEqualTo("shopId", shopId)
+ .andEqualTo("module", module);
+ if (Objects.nonNull(payStatus)) {
+ criteria.andEqualTo("payStatus", payStatus);
+ }
+ example.setOrderByClause("create_time DESC");
+ return walletPayInfoMapper.selectByExample(example);
+ }
+
+ /**
+ * 根据门店查询已支付
+ */
+ public List getPaidByShopId(Long shopId, String module) {
+ Example example = new Example(WalletPayInfoDO.class);
+ example.createCriteria()
+ .andEqualTo("shopId", shopId)
+ .andEqualTo("module", module)
+ .andEqualTo("payStatus", AllocationPayStatusEnum.PAID.getStatus());
+ example.setOrderByClause("create_time ASC");
+ return walletPayInfoMapper.selectByExample(example);
+ }
+
+ public WalletPayInfoDO getById(Long id) {
+ return walletPayInfoMapper.selectByPrimaryKey(id);
+ }
+
+ /**
+ * 根据付款单号查询
+ */
+ public WalletPayInfoDO getByPayNo(String payNo) {
+ Example example = new Example(WalletPayInfoDO.class);
+ example.createCriteria().andEqualTo("payNo", payNo);
+ return walletPayInfoMapper.selectOneByExample(example);
+ }
+
+ public List getByPayNoList(List payNoList) {
+ Example example = new Example(WalletPayInfoDO.class);
+ example.createCriteria().andIn("payNo", payNoList);
+ return walletPayInfoMapper.selectByExample(example);
+ }
+
+ public void updateByPrimaryKeySelective(WalletPayInfoDO walletPayInfoDO) {
+ walletPayInfoMapper.updateByPrimaryKeySelective(walletPayInfoDO);
+ }
+
+ public boolean updateBatchByPayNo(List list) {
+ if (CollectionUtils.isEmpty(list)) {
+ return false;
+ }
+ return walletPayInfoMapper.updateBatchByPayNo(list) > 0;
+ }
+
+ /**
+ * 根据付款单号修改认领状态
+ * @param payNo 付款单号
+ * @param claimStatus 认领状态 0未认领1已认领
+ * @return 是否成功
+ */
+ public void updateClaimStatusByPayNo(String payNo, Integer claimStatus) {
+ Example example = new Example(WalletPayInfoDO.class);
+ example.createCriteria().andEqualTo("payNo", payNo);
+ WalletPayInfoDO walletPayInfoDO = new WalletPayInfoDO();
+ walletPayInfoDO.setClaimStatus(claimStatus);
+ walletPayInfoMapper.updateByExampleSelective(walletPayInfoDO, example);
+ }
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/modify/ModifyRecordDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/modify/ModifyRecordDAO.java
new file mode 100644
index 000000000..4e9faa214
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/modify/ModifyRecordDAO.java
@@ -0,0 +1,48 @@
+package com.cool.store.dao.modify;
+
+import com.cool.store.entity.modify.ModifyRecordDO;
+import com.cool.store.enums.BusinessModuleEnum;
+import com.cool.store.mapper.modify.ModifyRecordMapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.entity.Example;
+
+import java.util.List;
+
+/**
+ * 业务修改记录DAO
+ *
+ * @author system
+ */
+@Repository
+@RequiredArgsConstructor
+public class ModifyRecordDAO {
+ private final ModifyRecordMapper modifyRecordMapper;
+
+ /**
+ * 新增修改记录
+ * @param module 业务模块
+ * @param businessId 业务id
+ * @param updateUserId 更新人id
+ */
+ public void insertRecord(BusinessModuleEnum module, Long businessId, String updateUserId) {
+ ModifyRecordDO modifyRecord = new ModifyRecordDO(null, module.getCode(), businessId, updateUserId, null);
+ modifyRecordMapper.insertSelective(modifyRecord);
+ }
+
+ /**
+ * 根据模块及业务id查询
+ * @param module 模块code
+ * @param businessId 业务id
+ * @return 记录列表
+ */
+ public List getListByBusinessId(String module, Long businessId) {
+ Example example = new Example(ModifyRecordDO.class);
+ example.createCriteria()
+ .andEqualTo("module", module)
+ .andEqualTo("businessId", businessId);
+ example.setOrderByClause("update_time desc");
+ return modifyRecordMapper.selectByExample(example);
+ }
+}
+
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/PreAllocationRecordDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/PreAllocationRecordDAO.java
new file mode 100644
index 000000000..0de7a3fc4
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/PreAllocationRecordDAO.java
@@ -0,0 +1,55 @@
+package com.cool.store.dao.order;
+
+import com.cool.store.entity.order.PreAllocationRecordDO;
+import com.cool.store.mapper.order.PreAllocationRecordMapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+@RequiredArgsConstructor
+public class PreAllocationRecordDAO {
+
+ private final PreAllocationRecordMapper preAllocationRecordMapper;
+
+ public boolean insertSelective(PreAllocationRecordDO record) {
+ return preAllocationRecordMapper.insertSelective(record) > 0;
+ }
+
+ public PreAllocationRecordDO getById(Long id) {
+ return preAllocationRecordMapper.getById(id);
+ }
+
+ public List queryPageByOrderId(Long orderId) {
+ return preAllocationRecordMapper.queryPageByOrderId(orderId);
+ }
+
+ public List queryPageByShopId(Long shopId) {
+ return preAllocationRecordMapper.queryPageByShopId(shopId);
+ }
+
+ public List queryPageByPayNo(String payNo) {
+ return preAllocationRecordMapper.queryPageByPayNo(payNo);
+ }
+
+ public boolean updateStatus(Long id, Integer status) {
+ return preAllocationRecordMapper.updateStatus(id, status) > 0;
+ }
+
+ public boolean deleteByShopId(Long shopId) {
+ return preAllocationRecordMapper.deleteByShopId(shopId) > 0;
+ }
+
+ public boolean insertBatch(List list) {
+ return preAllocationRecordMapper.insertBatch(list) > 0;
+ }
+
+ public boolean updateBatch(List list) {
+ return preAllocationRecordMapper.updateBatch(list) > 0;
+ }
+
+ public boolean updateByOrderId(Long orderId) {
+ return preAllocationRecordMapper.updateByOrderId(orderId) > 0;
+ }
+}
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/StoreOrderDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/StoreOrderDAO.java
new file mode 100644
index 000000000..0916f32a1
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/StoreOrderDAO.java
@@ -0,0 +1,73 @@
+package com.cool.store.dao.order;
+
+import com.cool.store.entity.order.StoreOrderDO;
+import com.cool.store.mapper.order.StoreOrderMapper;
+import com.cool.store.request.order.PCStoreOrderQueryRequest;
+import com.cool.store.vo.order.PCStoreOrderListVO;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+@RequiredArgsConstructor
+public class StoreOrderDAO {
+
+ private final StoreOrderMapper storeOrderMapper;
+
+ public boolean insertSelective(StoreOrderDO order) {
+ return storeOrderMapper.insertSelective(order) > 0;
+ }
+
+ public StoreOrderDO getById(Long id) {
+ return storeOrderMapper.getById(id);
+ }
+
+ public List queryPage(Long shopId, Integer status) {
+ return storeOrderMapper.queryPage(shopId, status);
+ }
+
+ public List queryPageByLineId(Long lineId, Integer status) {
+ return storeOrderMapper.queryPageByLineId(lineId, status);
+ }
+
+ public List queryPCPage(PCStoreOrderQueryRequest request) {
+ return storeOrderMapper.queryPCPage(request);
+ }
+
+ public Long count(PCStoreOrderQueryRequest request) {
+ return storeOrderMapper.count(request);
+ }
+
+ public boolean updateSelective(StoreOrderDO order) {
+ return storeOrderMapper.updateByPrimaryKeySelective(order) > 0;
+ }
+
+ public boolean existsUnfinishedOrder(Long shopId, List statuses) {
+ if (shopId == null || statuses == null || statuses.isEmpty()) {
+ return false;
+ }
+ return storeOrderMapper.countByShopIdAndStatusIn(shopId, statuses) > 0;
+ }
+
+ public boolean existsPaidOrder(Long shopId, Integer status) {
+ if (shopId == null || status == null) {
+ return false;
+ }
+ return storeOrderMapper.countByShopIdAndStatus(shopId, status) > 0;
+ }
+
+ public StoreOrderDO getLatestByShopIdAndStatus(Long shopId, Integer status) {
+ if (shopId == null || status == null) {
+ return null;
+ }
+ return storeOrderMapper.getLatestDraftByShopId(shopId, status);
+ }
+
+ public StoreOrderDO getLatestOrderByShopId(Long shopId) {
+ if (shopId == null ) {
+ return null;
+ }
+ return storeOrderMapper.getLatestOrderByShopId(shopId);
+ }
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/StoreOrderOptionSnapshotDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/StoreOrderOptionSnapshotDAO.java
new file mode 100644
index 000000000..6774dd05e
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/StoreOrderOptionSnapshotDAO.java
@@ -0,0 +1,54 @@
+package com.cool.store.dao.order;
+
+import com.cool.store.entity.order.StoreOrderOptionSnapshotDO;
+import com.cool.store.mapper.order.StoreOrderOptionSnapshotMapper;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.Collections;
+import java.util.List;
+
+@Repository
+@RequiredArgsConstructor
+public class StoreOrderOptionSnapshotDAO {
+
+ private final StoreOrderOptionSnapshotMapper mapper;
+
+ public boolean insertBatch(List list) {
+ if (CollectionUtils.isEmpty(list)) {
+ return false;
+ }
+ return mapper.insertBatch(list) > 0;
+ }
+
+ public List listByOrderId(Long orderId) {
+ if (orderId == null) {
+ return Collections.emptyList();
+ }
+ return mapper.listByOrderId(orderId);
+ }
+
+ public boolean deleteByOrderId(Long orderId) {
+ if (orderId == null) {
+ return false;
+ }
+ return mapper.deleteByOrderId(orderId) > 0;
+ }
+
+ public boolean updateSelective(StoreOrderOptionSnapshotDO snapshotDO) {
+ if (snapshotDO == null || snapshotDO.getId() == null) {
+ return false;
+ }
+ return mapper.updateByPrimaryKeySelective(snapshotDO) > 0;
+ }
+
+ public void batchUpdateQuantityAndAmount(@Param("list") List list){
+ if (CollectionUtils.isEmpty(list)){
+ return;
+ }
+ mapper.batchUpdateQuantityAndAmount(list);
+ }
+
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/StoreWishlistDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/StoreWishlistDAO.java
new file mode 100644
index 000000000..bdb772435
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/order/StoreWishlistDAO.java
@@ -0,0 +1,53 @@
+package com.cool.store.dao.order;
+
+import com.cool.store.entity.order.StoreWishlistDO;
+import com.cool.store.mapper.order.StoreWishlistMapper;
+import com.cool.store.vo.order.MiniStoreWishlistListVO;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Repository;
+
+import java.util.Collections;
+import java.util.List;
+
+@Repository
+@RequiredArgsConstructor
+public class StoreWishlistDAO {
+
+ private final StoreWishlistMapper mapper;
+
+ public boolean insertBatch(List list) {
+ if (CollectionUtils.isEmpty(list)) {
+ return false;
+ }
+ return mapper.insertBatch(list) > 0;
+ }
+
+ public boolean softDeleteByLineIdAndStoreTypeAndVersion(Long lineId, Long storeTypeId, String versionNo) {
+ if (lineId == null || storeTypeId == null || versionNo == null) {
+ return false;
+ }
+ return mapper.softDeleteByLineIdAndStoreTypeAndVersion(lineId, storeTypeId, versionNo) > 0;
+ }
+
+ public StoreWishlistDO getById(Long id) {
+ if (id == null) {
+ return null;
+ }
+ return mapper.getById(id);
+ }
+
+ public List listByLineIdAndStoreTypeAndVersion(Long lineId, Long storeTypeId, String versionNo) {
+ if (lineId == null || storeTypeId == null || versionNo == null) {
+ return Collections.emptyList();
+ }
+ return mapper.listByLineIdAndStoreTypeAndVersion(lineId, storeTypeId, versionNo);
+ }
+
+ public List listByLineId(Long lineId, Long storeTypeId) {
+ if (lineId == null) {
+ return Collections.emptyList();
+ }
+ return mapper.listByLineId(lineId, storeTypeId);
+ }
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/store/StoreTypeDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/store/StoreTypeDAO.java
new file mode 100644
index 000000000..8db0fb48b
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/store/StoreTypeDAO.java
@@ -0,0 +1,119 @@
+package com.cool.store.dao.store;
+
+import com.cool.store.entity.store.StoreTypeDO;
+import com.cool.store.mapper.store.StoreTypeMapper;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.entity.Example;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 店型 DAO
+ */
+@Repository
+@RequiredArgsConstructor
+public class StoreTypeDAO {
+ private final StoreTypeMapper storeTypeMapper;
+
+ /** 新增 */
+ public boolean insertSelective(StoreTypeDO storeTypeDO) {
+ return storeTypeMapper.insertSelective(storeTypeDO) > 0;
+ }
+
+ /** 编辑 */
+ public boolean updateSelective(StoreTypeDO storeTypeDO) {
+ return storeTypeMapper.updateByPrimaryKeySelective(storeTypeDO) > 0;
+ }
+
+ /** 根据主键查询 */
+ public StoreTypeDO getById(Long id) {
+ return storeTypeMapper.selectByPrimaryKey(id);
+ }
+
+ /** 根据编码查询 */
+ public StoreTypeDO getByCode(String code) {
+ return storeTypeMapper.selectOne(StoreTypeDO.builder().storeTypeCode(code).build());
+ }
+
+ /** 批量删除(物理删除,谨慎使用) */
+ public boolean deleteByIds(List ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return false;
+ }
+ Example example = new Example(StoreTypeDO.class);
+ example.createCriteria().andIn("id", ids);
+ return storeTypeMapper.deleteByExample(example) > 0;
+ }
+
+ public List selectByIds(List ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return new ArrayList<>();
+ }
+ Example example = new Example(StoreTypeDO.class);
+ example.createCriteria().andIn("id", ids);
+ return storeTypeMapper.selectByExample(example);
+ }
+
+ /**
+ * 软删除:deleted=true
+ */
+ public boolean softDeleteByIds(List ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return false;
+ }
+ StoreTypeDO update = new StoreTypeDO();
+ update.setDeleted(true);
+ Example example = new Example(StoreTypeDO.class);
+ example.createCriteria().andIn("id", ids);
+ return storeTypeMapper.updateByExampleSelective(update, example) > 0;
+ }
+
+ /**
+ * 启用/停用
+ */
+ public boolean updateActiveById(Long id, Boolean active) {
+ if (id == null) {
+ return false;
+ }
+ StoreTypeDO update = new StoreTypeDO();
+ update.setId(id);
+ update.setActive(active);
+ return storeTypeMapper.updateByPrimaryKeySelective(update) > 0;
+ }
+
+ /**
+ * 分页/条件查询
+ * @param keyword 名称/编码模糊
+ * @param active 是否启用
+ * @param brand 品牌精准
+ */
+ public List queryByCondition(String keyword, Boolean active, String brand) {
+ return storeTypeMapper.queryByCondition(keyword, active, brand);
+ }
+
+ /**
+ * 根据门店类型查询启用的店型
+ */
+ public List listActiveByStoreType(Integer storeType) {
+ return storeTypeMapper.listByStoreType(storeType);
+ }
+
+ /**
+ * 校验排序是否已存在(全局唯一)
+ */
+ public boolean existsSortOrder(Integer sortOrder, Long excludeId) {
+ if (sortOrder == null) {
+ return false;
+ }
+ Example example = new Example(StoreTypeDO.class);
+ Example.Criteria criteria = example.createCriteria().andEqualTo("sortOrder", sortOrder);
+ criteria.andEqualTo("deleted", 1);
+ if (excludeId != null) {
+ criteria.andNotEqualTo("id", excludeId);
+ }
+ return storeTypeMapper.selectCountByExample(example) > 0;
+ }
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/store/StoreTypeOptionDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/store/StoreTypeOptionDAO.java
new file mode 100644
index 000000000..7e80e4936
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/store/StoreTypeOptionDAO.java
@@ -0,0 +1,69 @@
+package com.cool.store.dao.store;
+
+import com.cool.store.entity.CloseStoreAuditRecordDO;
+import com.cool.store.entity.store.StoreTypeDO;
+import com.cool.store.entity.store.StoreTypeOptionDO;
+import com.cool.store.enums.close.CloseStoreAuditStatusEnum;
+import com.cool.store.mapper.store.StoreTypeOptionMapper;
+import io.swagger.models.auth.In;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.entity.Example;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 店型-选项 DAO
+ */
+@Repository
+@RequiredArgsConstructor
+public class StoreTypeOptionDAO {
+ private final StoreTypeOptionMapper mapper;
+
+ public boolean insertBatchSelective(List list) {
+ if (CollectionUtils.isEmpty(list)) {
+ return false;
+ }
+ return mapper.insertBatch(list) > 0;
+ }
+
+ public boolean deleteByStoreTypeId(Long storeTypeId) {
+ return mapper.delete(StoreTypeOptionDO.builder().storeTypeId(storeTypeId).build()) > 0;
+ }
+
+ public Integer softDeleteByStoreTypeId(List storeTypeIds){
+ Example example = new Example(StoreTypeOptionDO.class);
+ StoreTypeOptionDO update = new StoreTypeOptionDO();
+ update.setVisible(1);
+ example.createCriteria()
+ .andIn("storeTypeId", storeTypeIds);
+ return mapper.updateByExampleSelective(update,example);
+ }
+
+ public List listByStoreTypeId(Long storeTypeId) {
+ return mapper.select(StoreTypeOptionDO.builder().storeTypeId(storeTypeId).build());
+ }
+
+ public List query(Long storeTypeId, String itemCode) {
+ Example example = new Example(StoreTypeOptionDO.class);
+ Example.Criteria criteria = example.createCriteria();
+ if (Objects.nonNull(storeTypeId)) {
+ criteria.andEqualTo("storeTypeId", storeTypeId);
+ }
+ if (Objects.nonNull(itemCode)) {
+ criteria.andEqualTo("itemCode", itemCode);
+ }
+ return mapper.selectByExample(example);
+ }
+
+ public int countByOptionId(Long optionId) {
+ if (optionId == null) {
+ return 0;
+ }
+ Example example = new Example(StoreTypeOptionDO.class);
+ example.createCriteria().andEqualTo("optionId", optionId).andEqualTo("visible",0);
+ return mapper.selectCountByExample(example);
+ }
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/visit/StoreVisitReservationDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/visit/StoreVisitReservationDAO.java
new file mode 100644
index 000000000..23884ce22
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/visit/StoreVisitReservationDAO.java
@@ -0,0 +1,49 @@
+package com.cool.store.dao.visit;
+
+import com.cool.store.entity.visit.StoreVisitReservationDO;
+import com.cool.store.mapper.visit.StoreVisitReservationMapper;
+import com.cool.store.request.visit.StoreVisitReservationAdminQueryRequest;
+import com.cool.store.vo.visit.StoreVisitReservationVO;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.entity.Example;
+
+import java.util.List;
+
+@Repository
+@RequiredArgsConstructor
+public class StoreVisitReservationDAO {
+
+ private final StoreVisitReservationMapper storeVisitReservationMapper;
+
+ public Boolean insertSelective(StoreVisitReservationDO reservationDO) {
+ return storeVisitReservationMapper.insertSelective(reservationDO) > 0;
+ }
+
+ public Boolean updateSelective(StoreVisitReservationDO reservationDO) {
+ return storeVisitReservationMapper.updateByPrimaryKeySelective(reservationDO) > 0;
+ }
+
+ public StoreVisitReservationDO getById(Long id) {
+ return storeVisitReservationMapper.selectByPrimaryKey(id);
+ }
+
+ public List listByMobile(String mobile,Integer status) {
+ Example example = new Example(StoreVisitReservationDO.class);
+ Example.Criteria criteria = example.createCriteria()
+ .andEqualTo("deleted", 0);
+ if (StringUtils.isNotBlank(mobile)) {
+ criteria.andEqualTo("mobile", mobile);
+ }
+ if (status!=null){
+ criteria.andEqualTo("status",status);
+ }
+ example.setOrderByClause("create_time DESC");
+ return storeVisitReservationMapper.selectByExample(example);
+ }
+
+ public List adminPage(StoreVisitReservationAdminQueryRequest request) {
+ return storeVisitReservationMapper.adminPage(request);
+ }
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/WalletTradeDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/WalletTradeDAO.java
new file mode 100644
index 000000000..9e625dd9c
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/wallet/WalletTradeDAO.java
@@ -0,0 +1,59 @@
+package com.cool.store.dao.wallet;
+
+import com.cool.store.entity.wallet.WalletTradeDO;
+import com.cool.store.mapper.wallet.WalletTradeMapper;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Repository;
+import tk.mybatis.mapper.entity.Example;
+
+import java.util.List;
+
+/**
+ *
+ * 钱包交易单DAO
+ *
+ *
+ * @author wangff
+ * @since 2026/2/4
+ */
+@Repository
+@RequiredArgsConstructor
+public class WalletTradeDAO {
+ private final WalletTradeMapper walletTradeMapper;
+
+ public void insertSelective(WalletTradeDO walletTradeDO) {
+ walletTradeMapper.insertSelective(walletTradeDO);
+ }
+
+ public void insertBatch(List list) {
+ if (CollectionUtils.isEmpty(list)) {
+ return;
+ }
+ walletTradeMapper.insertBatch(list);
+ }
+
+ public WalletTradeDO getByPayNo(String payNo) {
+ Example example = new Example(WalletTradeDO.class);
+ example.createCriteria().andEqualTo("payNo", payNo);
+ return walletTradeMapper.selectOneByExample(example);
+ }
+
+ public void updateByPrimaryKeySelective(WalletTradeDO walletTradeDO) {
+ walletTradeMapper.updateByPrimaryKeySelective(walletTradeDO);
+ }
+
+ public boolean updateByPayNo(WalletTradeDO record) {
+ if (record == null || record.getPayNo() == null) {
+ return false;
+ }
+ return walletTradeMapper.updateByPayNo(record) > 0;
+ }
+
+ public boolean updateBatchByPayNo(List list) {
+ if (CollectionUtils.isEmpty(list)) {
+ return false;
+ }
+ return walletTradeMapper.updateBatchByPayNo(list) > 0;
+ }
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/config/ConfigItemCategoryMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/config/ConfigItemCategoryMapper.java
new file mode 100644
index 000000000..52016578a
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/config/ConfigItemCategoryMapper.java
@@ -0,0 +1,18 @@
+package com.cool.store.mapper.config;
+
+import com.cool.store.entity.config.ConfigItemCategoryDO;
+import com.cool.store.vo.config.ConfigItemBaseInfoVO;
+import com.cool.store.vo.config.ConfigItemCategoryBaseInfoVO;
+import com.cool.store.vo.config.ConfigItemCategoryVO;
+import org.apache.ibatis.annotations.Param;
+import tk.mybatis.mapper.common.Mapper;
+
+import java.util.List;
+
+public interface ConfigItemCategoryMapper extends Mapper {
+
+ List queryByCondition(@Param("categoryName") String categoryName,
+ @Param("status") Integer status);
+
+ List queryAllActiveList();
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/config/ConfigItemMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/config/ConfigItemMapper.java
new file mode 100644
index 000000000..242d9e988
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/config/ConfigItemMapper.java
@@ -0,0 +1,22 @@
+package com.cool.store.mapper.config;
+
+import com.cool.store.entity.config.ConfigItemDO;
+import com.cool.store.vo.config.ConfigItemBaseInfoVO;
+import com.cool.store.vo.config.ConfigItemCategoryBaseInfoVO;
+import com.cool.store.vo.config.ConfigItemVO;
+import org.apache.ibatis.annotations.Param;
+import tk.mybatis.mapper.common.Mapper;
+
+import java.util.List;
+
+public interface ConfigItemMapper extends Mapper {
+
+ List queryByCondition(@Param("itemName") String itemName,
+ @Param("itemCode") String itemCode,
+ @Param("categoryId") Long categoryId,
+ @Param("status") Integer status);
+
+ List queryAllActiveList();
+
+ int countByCategoryIds(@Param("categoryIds") List categoryIds);
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/config/ConfigOptionMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/config/ConfigOptionMapper.java
new file mode 100644
index 000000000..7aada351e
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/config/ConfigOptionMapper.java
@@ -0,0 +1,12 @@
+package com.cool.store.mapper.config;
+
+import com.cool.store.entity.config.ConfigOptionDO;
+import org.apache.ibatis.annotations.Param;
+import tk.mybatis.mapper.common.Mapper;
+
+import java.util.List;
+
+public interface ConfigOptionMapper extends Mapper {
+
+ List listActiveByIds(@Param("ids") List ids);
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/FeeStandardConfigMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/FeeStandardConfigMapper.java
new file mode 100644
index 000000000..d907f3cd6
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/FeeStandardConfigMapper.java
@@ -0,0 +1,7 @@
+package com.cool.store.mapper.fees;
+
+import com.cool.store.entity.fees.FeeStandardConfigDO;
+import tk.mybatis.mapper.common.Mapper;
+
+public interface FeeStandardConfigMapper extends Mapper {
+}
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/PayeeBankConfigMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/PayeeBankConfigMapper.java
new file mode 100644
index 000000000..06ee76daf
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/PayeeBankConfigMapper.java
@@ -0,0 +1,7 @@
+package com.cool.store.mapper.fees;
+
+import com.cool.store.entity.fees.PayeeBankConfigDO;
+import tk.mybatis.mapper.common.Mapper;
+
+public interface PayeeBankConfigMapper extends Mapper {
+}
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/ShopAllocationInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/ShopAllocationInfoMapper.java
new file mode 100644
index 000000000..6be61af9b
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/ShopAllocationInfoMapper.java
@@ -0,0 +1,20 @@
+package com.cool.store.mapper.fees;
+
+import com.cool.store.entity.fees.ShopAllocationInfoDO;
+import tk.mybatis.mapper.common.Mapper;
+
+import java.util.List;
+
+public interface ShopAllocationInfoMapper extends Mapper {
+ /**
+ * 批量新增
+ */
+ void insertBatch(List list);
+
+ /**
+ * 批量更新
+ */
+ void updateBatch(List list);
+
+ void insertOrUpdateBatch(List list);
+}
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/WalletAllocationCompanyMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/WalletAllocationCompanyMapper.java
new file mode 100644
index 000000000..34bce4b3f
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/WalletAllocationCompanyMapper.java
@@ -0,0 +1,14 @@
+package com.cool.store.mapper.fees;
+
+import com.cool.store.entity.fees.WalletAllocationCompanyDO;
+import tk.mybatis.mapper.common.Mapper;
+
+import java.util.List;
+
+public interface WalletAllocationCompanyMapper extends Mapper {
+
+ /**
+ * 批量新增
+ */
+ void insertBatch(List list);
+}
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/WalletAllocationConfigMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/WalletAllocationConfigMapper.java
new file mode 100644
index 000000000..b56e2426f
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/WalletAllocationConfigMapper.java
@@ -0,0 +1,7 @@
+package com.cool.store.mapper.fees;
+
+import com.cool.store.entity.fees.WalletAllocationConfigDO;
+import tk.mybatis.mapper.common.Mapper;
+
+public interface WalletAllocationConfigMapper extends Mapper {
+}
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/WalletPayInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/WalletPayInfoMapper.java
new file mode 100644
index 000000000..a3f291b24
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/fees/WalletPayInfoMapper.java
@@ -0,0 +1,15 @@
+package com.cool.store.mapper.fees;
+
+import com.cool.store.entity.fees.WalletPayInfoDO;
+import org.apache.ibatis.annotations.Param;
+import tk.mybatis.mapper.common.Mapper;
+
+import java.util.List;
+
+public interface WalletPayInfoMapper extends Mapper {
+ void insertBatch(List list);
+
+ int updateByPayNo(WalletPayInfoDO record);
+
+ int updateBatchByPayNo(@Param("list") List list);
+}
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/modify/ModifyRecordMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/modify/ModifyRecordMapper.java
new file mode 100644
index 000000000..5b081e00c
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/modify/ModifyRecordMapper.java
@@ -0,0 +1,7 @@
+package com.cool.store.mapper.modify;
+
+import com.cool.store.entity.modify.ModifyRecordDO;
+import tk.mybatis.mapper.common.Mapper;
+
+public interface ModifyRecordMapper extends Mapper {
+}
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/PreAllocationRecordMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/PreAllocationRecordMapper.java
new file mode 100644
index 000000000..d6f68aca0
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/PreAllocationRecordMapper.java
@@ -0,0 +1,28 @@
+package com.cool.store.mapper.order;
+
+import com.cool.store.entity.order.PreAllocationRecordDO;
+import org.apache.ibatis.annotations.Param;
+import tk.mybatis.mapper.common.Mapper;
+
+import java.util.List;
+
+public interface PreAllocationRecordMapper extends Mapper {
+
+ PreAllocationRecordDO getById(@Param("id") Long id);
+
+ List queryPageByOrderId(@Param("orderId") Long orderId);
+
+ List queryPageByShopId(@Param("shopId") Long shopId);
+
+ List queryPageByPayNo(@Param("payNo") String payNo);
+
+ int updateStatus(@Param("id") Long id, @Param("status") Integer status);
+
+ int deleteByShopId(@Param("shopId") Long shopId);
+
+ int insertBatch(@Param("list") List list);
+
+ int updateBatch(@Param("list") List list);
+
+ int updateByOrderId(Long orderId);
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/StoreOrderMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/StoreOrderMapper.java
new file mode 100644
index 000000000..279609653
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/StoreOrderMapper.java
@@ -0,0 +1,41 @@
+package com.cool.store.mapper.order;
+
+import com.cool.store.entity.order.StoreOrderDO;
+import org.apache.ibatis.annotations.Param;
+import tk.mybatis.mapper.common.Mapper;
+
+import com.cool.store.request.order.PCStoreOrderQueryRequest;
+import com.cool.store.vo.order.PCStoreOrderListVO;
+
+import java.util.List;
+
+public interface StoreOrderMapper extends Mapper {
+
+ List queryPage(@Param("shopId") Long shopId,
+ @Param("status") Integer status);
+
+ List queryPCPage(PCStoreOrderQueryRequest request);
+
+ Long count(PCStoreOrderQueryRequest request);
+
+ List queryPageByLineId(@Param("lineId") Long lineId,
+ @Param("status") Integer status);
+
+ StoreOrderDO getById(@Param("id") Long id);
+
+ StoreOrderDO getLatestDraftByShopId(@Param("shopId") Long shopId,
+ @Param("status") Integer status);
+
+ /**
+ * 获取当前门店 最新的订单 除了已关闭的
+ * @param shopId
+ * @return
+ */
+ StoreOrderDO getLatestOrderByShopId(@Param("shopId") Long shopId);
+
+ int countByShopIdAndStatusIn(@Param("shopId") Long shopId,
+ @Param("statuses") List statuses);
+
+ int countByShopIdAndStatus(@Param("shopId") Long shopId,
+ @Param("status") Integer status);
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/StoreOrderOptionSnapshotMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/StoreOrderOptionSnapshotMapper.java
new file mode 100644
index 000000000..42f85d6cb
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/StoreOrderOptionSnapshotMapper.java
@@ -0,0 +1,18 @@
+package com.cool.store.mapper.order;
+
+import com.cool.store.entity.order.StoreOrderOptionSnapshotDO;
+import org.apache.ibatis.annotations.Param;
+import tk.mybatis.mapper.common.Mapper;
+
+import java.util.List;
+
+public interface StoreOrderOptionSnapshotMapper extends Mapper {
+
+ int insertBatch(@Param("list") List list);
+
+ List listByOrderId(@Param("orderId") Long orderId);
+
+ int deleteByOrderId(@Param("orderId") Long orderId);
+
+ void batchUpdateQuantityAndAmount(@Param("list") List list);
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/StoreWishlistMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/StoreWishlistMapper.java
new file mode 100644
index 000000000..9bdb82ccc
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/order/StoreWishlistMapper.java
@@ -0,0 +1,26 @@
+package com.cool.store.mapper.order;
+
+import com.cool.store.entity.order.StoreWishlistDO;
+import com.cool.store.vo.order.MiniStoreWishlistListVO;
+import org.apache.ibatis.annotations.Param;
+import tk.mybatis.mapper.common.Mapper;
+
+import java.util.List;
+
+public interface StoreWishlistMapper extends Mapper {
+
+ int insertBatch(@Param("list") List list);
+
+ int softDeleteByLineIdAndStoreTypeAndVersion(@Param("lineId") Long lineId,
+ @Param("storeTypeId") Long storeTypeId,
+ @Param("versionNo") String versionNo);
+
+ StoreWishlistDO getById(@Param("id") Long id);
+
+ List listByLineIdAndStoreTypeAndVersion(@Param("lineId") Long lineId,
+ @Param("storeTypeId") Long storeTypeId,
+ @Param("versionNo") String versionNo);
+
+ List listByLineId(@Param("lineId") Long lineId,
+ @Param("storeTypeId") Long storeTypeId);
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/store/StoreTypeMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/store/StoreTypeMapper.java
new file mode 100644
index 000000000..9491ad499
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/store/StoreTypeMapper.java
@@ -0,0 +1,16 @@
+package com.cool.store.mapper.store;
+
+import com.cool.store.entity.store.StoreTypeDO;
+import org.apache.ibatis.annotations.Param;
+import tk.mybatis.mapper.common.Mapper;
+
+import java.util.List;
+
+public interface StoreTypeMapper extends Mapper {
+
+ List queryByCondition(@Param("keyword") String keyword,
+ @Param("active") Boolean active,
+ @Param("brand") String brand);
+
+ List listByStoreType(@Param("storeType") Integer storeType);
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/store/StoreTypeOptionMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/store/StoreTypeOptionMapper.java
new file mode 100644
index 000000000..8ddb05643
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/store/StoreTypeOptionMapper.java
@@ -0,0 +1,15 @@
+package com.cool.store.mapper.store;
+
+import com.cool.store.entity.store.StoreTypeOptionDO;
+import org.apache.ibatis.annotations.Param;
+import tk.mybatis.mapper.common.Mapper;
+
+import java.util.List;
+
+public interface StoreTypeOptionMapper extends Mapper {
+
+ /**
+ * 批量新增
+ */
+ int insertBatch(@Param("list") List list);
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/visit/StoreVisitReservationMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/visit/StoreVisitReservationMapper.java
new file mode 100644
index 000000000..29cd6f6f0
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/visit/StoreVisitReservationMapper.java
@@ -0,0 +1,14 @@
+package com.cool.store.mapper.visit;
+
+import com.cool.store.entity.visit.StoreVisitReservationDO;
+import com.cool.store.request.visit.StoreVisitReservationAdminQueryRequest;
+import com.cool.store.vo.visit.StoreVisitReservationVO;
+import org.apache.ibatis.annotations.Param;
+import tk.mybatis.mapper.common.Mapper;
+
+import java.util.List;
+
+public interface StoreVisitReservationMapper extends Mapper {
+
+ List adminPage(@Param("request") StoreVisitReservationAdminQueryRequest request);
+}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/WalletTradeMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/WalletTradeMapper.java
new file mode 100644
index 000000000..5054661b2
--- /dev/null
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/wallet/WalletTradeMapper.java
@@ -0,0 +1,15 @@
+package com.cool.store.mapper.wallet;
+
+import com.cool.store.entity.wallet.WalletTradeDO;
+import org.apache.ibatis.annotations.Param;
+import tk.mybatis.mapper.common.Mapper;
+
+import java.util.List;
+
+public interface WalletTradeMapper extends Mapper {
+ void insertBatch(List list);
+
+ int updateByPayNo(WalletTradeDO record);
+
+ int updateBatchByPayNo(@Param("list") List list);
+}
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml
index f047a385e..79b0e361f 100644
--- a/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml
+++ b/coolstore-partner-dao/src/main/resources/mapper/LineInfoMapper.xml
@@ -134,6 +134,9 @@
franchise_brand,
+
+ use_standard_store,
+
@@ -230,7 +233,10 @@
#{param.partnerNum},
- #{param.franchiseBrand}
+ #{param.franchiseBrand},
+
+
+ #{param.useStandardStore}
ON DUPLICATE KEY UPDATE
@@ -326,7 +332,10 @@
partner_num = #{param.partnerNum},
- franchise_brand = #{param.franchiseBrand}
+ franchise_brand = #{param.franchiseBrand},
+
+
+ use_standard_store = #{param.useStandardStore}
diff --git a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml
index 8498c979d..580624a18 100644
--- a/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml
+++ b/coolstore-partner-dao/src/main/resources/mapper/ShopInfoMapper.xml
@@ -58,11 +58,11 @@
insert into xfsg_shop_info(region_id, line_id, partner_id, shop_name,
store_num,supervisor_user_id,create_time,join_mode,franchise_brand,
- development_manager,want_shop_area_id,investment_manager,store_id,invest_region_id) values
+ development_manager,want_shop_area_id,investment_manager,store_id,invest_region_id,use_standard_store) values
(#{shop.regionId}, #{shop.lineId}, #{shop.partnerId}, #{shop.shopName},
#{shop.storeNum},#{shop.supervisorUserId},#{shop.createTime},#{shop.joinMode},#{shop.franchiseBrand},#{shop.developmentManager},
- #{shop.wantShopAreaId},#{shop.investmentManager},#{shop.storeId},#{shop.investRegionId})
+ #{shop.wantShopAreaId},#{shop.investmentManager},#{shop.storeId},#{shop.investRegionId},#{shop.useStandardStore})
@@ -318,7 +318,8 @@
a.detail_address as shopAddress,
a.manager_region_id as managerRegionId,
a.store_id as storeId,
- a.invest_region_id as investRegionId
+ a.invest_region_id as investRegionId,
+ a.use_standard_store as useStandardStore
from xfsg_shop_info a left join xfsg_line_info b on a.line_id = b.id
left join xfsg_sign_franchise c on a.id = c.shop_id
diff --git a/coolstore-partner-dao/src/main/resources/mapper/config/ConfigItemCategoryMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/config/ConfigItemCategoryMapper.xml
new file mode 100644
index 000000000..2c815cef5
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/config/ConfigItemCategoryMapper.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, category_code, category_name, sort_no, image_url, video_url,
+ status, is_deleted, remark, created_user_id, created_time, updated_user_id, updated_time
+
+
+
+
+
+
+
diff --git a/coolstore-partner-dao/src/main/resources/mapper/config/ConfigItemMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/config/ConfigItemMapper.xml
new file mode 100644
index 000000000..9ac56d335
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/config/ConfigItemMapper.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coolstore-partner-dao/src/main/resources/mapper/config/ConfigOptionMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/config/ConfigOptionMapper.xml
new file mode 100644
index 000000000..8b186dc16
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/config/ConfigOptionMapper.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, category_code, item_code, option_code, option_name, option_description,
+ option_price, original_option_price, image_url, video_url,
+ is_active, sort_order, option_remark,
+ create_time, update_time, option_unit
+
+
+
+
+
diff --git a/coolstore-partner-dao/src/main/resources/mapper/fees/FeeStandardConfigMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/fees/FeeStandardConfigMapper.xml
new file mode 100644
index 000000000..de0f1cb2d
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/fees/FeeStandardConfigMapper.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/resources/mapper/fees/PayeeBankConfigMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/fees/PayeeBankConfigMapper.xml
new file mode 100644
index 000000000..fdad47650
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/fees/PayeeBankConfigMapper.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/resources/mapper/fees/ShopAllocationInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/fees/ShopAllocationInfoMapper.xml
new file mode 100644
index 000000000..e1f455239
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/fees/ShopAllocationInfoMapper.xml
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ INSERT INTO zxjp_fees_shop_allocation_info (shop_id, expense_type, payee_name, payee_code, amount, status, fail_reason, create_user_id, update_user_id)
+ VALUES
+
+ (#{item.shopId}, #{item.expenseType}, #{item.payeeName}, #{item.payeeCode}, #{item.amount}, #{item.status}, #{item.failReason}, #{item.createUserId}, #{item.updateUserId})
+
+
+
+
+
+ UPDATE zxjp_fees_shop_allocation_info
+
+
+
+ WHEN id = #{item.id} THEN #{item.shopId}
+
+
+
+
+ WHEN id = #{item.id} THEN #{item.expenseType}
+
+
+
+
+ WHEN id = #{item.id} THEN #{item.payeeName}
+
+
+
+
+ WHEN id = #{item.id} THEN #{item.payeeCode}
+
+
+
+
+ WHEN id = #{item.id} THEN #{item.amount}
+
+
+
+
+ WHEN id = #{item.id} THEN #{item.status}
+
+
+
+
+ WHEN id = #{item.id} THEN #{item.failReason}
+
+
+
+
+ WHEN id = #{item.id} THEN #{item.updateUserId}
+
+
+
+ WHERE id IN
+
+ #{item.id}
+
+
+
+
+ INSERT INTO zxjp_fees_shop_allocation_info
+ (id, shop_id, expense_type, payee_name, payee_code, amount, status, fail_reason, create_user_id, update_user_id)
+ VALUES
+
+ (#{item.id}, #{item.shopId}, #{item.expenseType}, #{item.payeeName}, #{item.payeeCode}, #{item.amount}, #{item.status}, #{item.failReason}, #{item.createUserId}, #{item.updateUserId})
+
+ ON DUPLICATE KEY UPDATE
+ expense_type = VALUES(expense_type),
+ payee_name = VALUES(payee_name),
+ payee_code = VALUES(payee_code),
+ amount = VALUES(amount),
+ status = VALUES(status),
+ fail_reason = VALUES(fail_reason),
+ update_user_id = VALUES(update_user_id)
+
+
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/resources/mapper/fees/WalletAllocationCompanyMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/fees/WalletAllocationCompanyMapper.xml
new file mode 100644
index 000000000..c1ace4525
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/fees/WalletAllocationCompanyMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ INSERT INTO zxjp_fees_wallet_allocation_company (config_id, payee_name, payee_code, create_user_id)
+ VALUES
+
+ (#{item.configId}, #{item.payeeName}, #{item.payeeCode}, #{item.createUserId})
+
+
+
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/resources/mapper/fees/WalletAllocationConfigMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/fees/WalletAllocationConfigMapper.xml
new file mode 100644
index 000000000..af00d0faa
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/fees/WalletAllocationConfigMapper.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/resources/mapper/fees/WalletPayInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/fees/WalletPayInfoMapper.xml
new file mode 100644
index 000000000..93887b61d
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/fees/WalletPayInfoMapper.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ INSERT INTO zxjp_fees_wallet_pay_info (shop_id, module, pay_no, pay_user_name, pay_amount, trade_id, pay_status, pay_time, claim_status, expense_types, remark, create_user_id)
+ VALUES
+
+ (#{item.shopId}, #{item.module}, #{item.payNo}, #{item.payUserName}, #{item.payAmount}, #{item.tradeId}, #{item.payStatus}, #{item.payTime}, #{item.claimStatus}, #{item.expenseTypes}, #{item.remark}, #{item.createUserId})
+
+
+
+
+ UPDATE zxjp_fees_wallet_pay_info
+
+ shop_id = #{shopId},
+ module = #{module},
+ pay_user_name = #{payUserName},
+ pay_amount = #{payAmount},
+ trade_id = #{tradeId},
+ pay_status = #{payStatus},
+ pay_time = #{payTime},
+ claim_status = #{claimStatus},
+ expense_types = #{expenseTypes},
+ remark = #{remark},
+ create_user_id = #{createUserId},
+ create_time = create_time
+
+ WHERE pay_no = #{payNo}
+
+
+
+
+ UPDATE zxjp_fees_wallet_pay_info
+
+ shop_id = #{item.shopId},
+ module = #{item.module},
+ pay_user_name = #{item.payUserName},
+ pay_amount = #{item.payAmount},
+ trade_id = #{item.tradeId},
+ pay_status = #{item.payStatus},
+ pay_time = #{item.payTime},
+ claim_status = #{item.claimStatus},
+ expense_types = #{item.expenseTypes},
+ remark = #{item.remark},
+ create_user_id = #{item.createUserId},
+ create_time = create_time
+
+ WHERE pay_no = #{item.payNo}
+
+
+
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/resources/mapper/modify/ModifyRecordMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/modify/ModifyRecordMapper.xml
new file mode 100644
index 000000000..9273d450f
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/modify/ModifyRecordMapper.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/resources/mapper/order/PreAllocationRecordMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/order/PreAllocationRecordMapper.xml
new file mode 100644
index 000000000..2295a3461
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/order/PreAllocationRecordMapper.xml
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, order_id, shop_id, pay_no, expense_type, payee_name, payee_code,
+ pay_amount, allocation_status, create_time, update_time
+
+
+
+
+
+
+
+
+
+
+
+ UPDATE zxjp_pre_allocation_record
+ SET allocation_status = #{status},
+ update_time = NOW()
+ WHERE id = #{id}
+
+
+
+
+ DELETE FROM zxjp_pre_allocation_record WHERE shop_id = #{shopId}
+
+
+
+ INSERT INTO zxjp_pre_allocation_record
+ (order_id,shop_id,pay_no,expense_type,payee_name,payee_code,pay_amount,allocation_status,create_time)
+ VALUES
+
+ (#{i.orderId},#{i.shopId},#{i.payNo},#{i.expenseType},#{i.payeeName},#{i.payeeCode},
+ #{i.payAmount},#{i.allocationStatus},NOW())
+
+
+
+
+
+ UPDATE zxjp_pre_allocation_record
+ SET pay_no = #{i.payNo},
+ allocation_status = #{i.allocationStatus},
+ update_time = NOW()
+ WHERE id = #{i.id}
+
+
+
+
+
+ UPDATE zxjp_pre_allocation_record
+ SET pay_no = #{i.payNo},
+ allocation_status = #{i.allocationStatus},
+ update_time = NOW()
+ where order_id = #{orderId}
+
+
+
+
+
+
diff --git a/coolstore-partner-dao/src/main/resources/mapper/order/StoreOrderMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/order/StoreOrderMapper.xml
new file mode 100644
index 000000000..5e5dc783c
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/order/StoreOrderMapper.xml
@@ -0,0 +1,221 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, order_no, shop_id, line_id, partner_name, partner_mobile, investment_manager,
+ store_type_id, store_type_code, store_type_name, store_type, brand,
+ franchise_fee, original_franchise_fee,
+ brand_usage_fee, original_brand_usage_fee,
+ management_fee, original_management_fee,
+ system_usage_fee, original_system_usage_fee,
+ contract_deposit, original_contract_deposit,
+ design_fee, original_design_fee,
+ first_order_fee,
+ store_fixed_amount, option_amount, total_amount, paid_amount, unpaid_amount,
+ status, create_time, update_time
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coolstore-partner-dao/src/main/resources/mapper/order/StoreOrderOptionSnapshotMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/order/StoreOrderOptionSnapshotMapper.xml
new file mode 100644
index 000000000..19372f21a
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/order/StoreOrderOptionSnapshotMapper.xml
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, order_id, shop_id, store_type_id, option_id, category_code, item_code,
+ option_code, option_name, option_price, original_option_price, option_remark, image_url, video_url,
+ quantity, amount, original_amount, create_time, option_unit
+
+
+
+ INSERT INTO zxjp_store_order_option_snapshot
+ (order_id, shop_id, store_type_id, option_id, category_code, item_code,
+ option_code, option_name, option_price, original_option_price, option_remark, image_url, video_url,
+ quantity, amount, original_amount, create_time, option_unit)
+ VALUES
+
+ (#{item.orderId}, #{item.shopId}, #{item.storeTypeId}, #{item.optionId},
+ #{item.categoryCode}, #{item.itemCode}, #{item.optionCode}, #{item.optionName},
+ #{item.optionPrice}, #{item.originalOptionPrice}, #{item.optionRemark}, #{item.imageUrl}, #{item.videoUrl},
+ #{item.quantity}, #{item.amount}, #{item.originalAmount}, NOW(), #{item.optionUnit})
+
+
+
+
+
+
+ DELETE FROM zxjp_store_order_option_snapshot
+ WHERE order_id = #{orderId}
+
+
+
+ UPDATE zxjp_store_order_option_snapshot
+ SET
+ quantity = CASE id
+
+ WHEN #{item.id} THEN #{item.quantity}
+
+ ELSE quantity
+ END,
+ amount = CASE id
+
+ WHEN #{item.id} THEN #{item.amount}
+
+ ELSE amount
+ END,
+ original_amount = CASE id
+
+ WHEN #{item.id} THEN #{item.originalAmount}
+
+ ELSE original_amount
+ END
+ WHERE id IN
+
+ #{item.id}
+
+
+
+
diff --git a/coolstore-partner-dao/src/main/resources/mapper/order/StoreWishlistMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/order/StoreWishlistMapper.xml
new file mode 100644
index 000000000..1d82b4271
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/order/StoreWishlistMapper.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+ INSERT INTO zxjp_store_wishlist
+ (line_id, store_type_id, option_id, quantity, total_amount, version_no, deleted, create_time, update_time)
+ VALUES
+
+ (#{item.lineId}, #{item.storeTypeId}, #{item.optionId}, #{item.quantity}, #{item.totalAmount}, #{item.versionNo}, 0, NOW(), NOW())
+
+
+
+
+ UPDATE zxjp_store_wishlist
+ SET deleted = 1,
+ update_time = NOW()
+ WHERE line_id = #{lineId}
+ AND store_type_id = #{storeTypeId}
+ AND version_no = #{versionNo}
+ AND deleted = 0
+
+
+
+
+
+
+
+
+
diff --git a/coolstore-partner-dao/src/main/resources/mapper/store/StoreTypeMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/store/StoreTypeMapper.xml
new file mode 100644
index 000000000..4f84b6bef
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/store/StoreTypeMapper.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id, store_type_code, store_type_name, brand, store_type, description,
+ image_url, video_url, vr_video_url,
+ franchise_fee, original_franchise_fee,
+ brand_usage_fee, original_brand_usage_fee,
+ management_fee, original_management_fee,
+ system_usage_fee, original_system_usage_fee,
+ contract_deposit, original_contract_deposit,
+ design_fee, original_design_fee,
+ first_order_fee, sort_order,
+ is_active, deleted, create_time, update_time
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/resources/mapper/store/StoreTypeOptionMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/store/StoreTypeOptionMapper.xml
new file mode 100644
index 000000000..499e212b2
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/store/StoreTypeOptionMapper.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+ INSERT INTO zxjp_store_type_option
+ (
+ store_type_id,
+ option_id,
+ category_code,
+ item_code,
+ is_default,
+ default_quantity,
+ allow_quantity_edit,
+ sort_order,
+ option_price,
+ top_preview_image,
+ create_time,
+ update_time
+ )
+ VALUES
+
+ (
+ #{item.storeTypeId},
+ #{item.optionId},
+ #{item.categoryCode},
+ #{item.itemCode},
+ #{item.isDefault},
+ #{item.defaultQuantity},
+ #{item.allowQuantityEdit},
+ #{item.sortOrder},
+ #{item.optionPrice},
+ #{item.topPreviewImage},
+ NOW(),
+ NOW()
+ )
+
+
+
+
diff --git a/coolstore-partner-dao/src/main/resources/mapper/visit/StoreVisitReservationMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/visit/StoreVisitReservationMapper.xml
new file mode 100644
index 000000000..3516643b2
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/visit/StoreVisitReservationMapper.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
diff --git a/coolstore-partner-dao/src/main/resources/mapper/wallet/WalletTradeMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/wallet/WalletTradeMapper.xml
new file mode 100644
index 000000000..015642af4
--- /dev/null
+++ b/coolstore-partner-dao/src/main/resources/mapper/wallet/WalletTradeMapper.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ INSERT INTO zxjp_wallet_trade (module, pay_no, trade_id, type, pay_user_name, pay_amount, pay_status, pay_time, remark, create_user_id)
+ VALUES
+
+ (#{item.module}, #{item.payNo}, #{item.tradeId}, #{item.type}, #{item.payUserName}, #{item.payAmount}, #{item.payStatus}, #{item.payTime}, #{item.remark}, #{item.createUserId})
+
+
+
+
+ UPDATE zxjp_wallet_trade
+
+ module = #{module},
+ trade_id = #{tradeId},
+ type = #{type},
+ pay_user_name = #{payUserName},
+ pay_amount = #{payAmount},
+ pay_status = #{payStatus},
+ pay_time = #{payTime},
+ remark = #{remark},
+ create_user_id = #{createUserId},
+ create_time = create_time
+
+ WHERE pay_no = #{payNo}
+
+
+
+
+ UPDATE zxjp_wallet_trade
+
+ module = #{item.module},
+ trade_id = #{item.tradeId},
+ type = #{item.type},
+ pay_user_name = #{item.payUserName},
+ pay_amount = #{item.payAmount},
+ pay_status = #{item.payStatus},
+ pay_time = #{item.payTime},
+ remark = #{item.remark},
+ create_user_id = #{item.createUserId},
+ create_time = create_time
+
+ WHERE pay_no = #{item.payNo}
+
+
+
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/ExportBranchShopDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/ExportBranchShopDTO.java
index ec735265d..6790b22d2 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/dto/ExportBranchShopDTO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/ExportBranchShopDTO.java
@@ -2,6 +2,7 @@ package com.cool.store.dto;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.cool.store.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/Preparation/PreparationDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/Preparation/PreparationDTO.java
index 18612848c..bdda0f376 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/dto/Preparation/PreparationDTO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/Preparation/PreparationDTO.java
@@ -58,4 +58,6 @@ public class PreparationDTO {
private String storeId;
private Long investRegionId;
+
+ private Integer useStandardStore;
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/standardStore/StoreOrderDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/standardStore/StoreOrderDTO.java
new file mode 100644
index 000000000..3dccacc30
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/standardStore/StoreOrderDTO.java
@@ -0,0 +1,48 @@
+package com.cool.store.dto.standardStore;
+
+import com.cool.store.dto.region.BigRegionDTO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @Auther zx_szh
+ * @Date 2026/2/6 16:31
+ * @Version 1.0
+ */
+@Data
+public class StoreOrderDTO {
+ @ApiModelProperty("订单ID")
+ private Long orderId;
+ @ApiModelProperty("订单编号")
+ private String orderNo;
+ @ApiModelProperty("加盟商名字")
+ private String partnerName;
+ @ApiModelProperty("加盟商手机号")
+ private String partnerMobile;
+ @ApiModelProperty("品牌")
+ private String brand;
+ @ApiModelProperty("品牌名称")
+ private String brandName;
+ @ApiModelProperty("门店类型")
+ private String storeType;
+ @ApiModelProperty("门店类型名称")
+ private String storeTypeName;
+ @ApiModelProperty("店型名称")
+ private String name;
+ @ApiModelProperty("订单总额")
+ private BigDecimal totalAmount;
+ @ApiModelProperty("下单时间")
+ private Date orderTime;
+ @ApiModelProperty("加盟类费用总额")
+ private BigDecimal storeFixedAmount;
+ @ApiModelProperty("已支付金额")
+ private BigDecimal paidAmount;
+ @ApiModelProperty("未支付金额")
+ private BigDecimal unpaidAmount;
+ @ApiModelProperty("状态")
+ private Integer status;
+
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/BatchTransferDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/BatchTransferDTO.java
new file mode 100644
index 000000000..5cc70d59f
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/BatchTransferDTO.java
@@ -0,0 +1,41 @@
+package com.cool.store.dto.wallet;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Auther zx_szh
+ * @Date 2026/2/5 13:54
+ * @Version 1.0
+ */
+@Data
+public class BatchTransferDTO {
+
+ @ApiModelProperty("交易状态1.成功 2.失败 3.处理中")
+ private Integer tradeStatus;
+
+ @ApiModelProperty("批量转账数据")
+ private List transArray;
+
+ @Data
+ public static class TransDataRequest {
+
+ @ApiModelProperty("业务系统付款单号(如 CRM 单号),业务系统单号")
+ private String reqNo;
+ @ApiModelProperty("费用科目")
+ private Integer feeItemId;
+ @ApiModelProperty("公司编号")
+ private String companyCode;
+ @ApiModelProperty("公司编号绑定多个账户时,必传")
+ private String companyAccountCode;
+ @ApiModelProperty("金额(元)")
+ private String amount;
+ @ApiModelProperty("备注")
+ private String remark;
+ @ApiModelProperty("交易流水id")
+ private String tradeId;
+ }
+
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/CompanyDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/CompanyDTO.java
index 18aa95d27..2500e0117 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/CompanyDTO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/wallet/CompanyDTO.java
@@ -19,7 +19,4 @@ public class CompanyDTO {
@ApiModelProperty(value = "公司名称")
private String companyName;
- @ApiModelProperty(value = "公司账户")
- private String companyAccountNo;
-
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/FranchiseFeeDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/FranchiseFeeDO.java
index 648836e45..4b003902f 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/entity/FranchiseFeeDO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/FranchiseFeeDO.java
@@ -76,4 +76,11 @@ public class FranchiseFeeDO {
@ApiModelProperty("收银费(系统费)")
private String cashierFee;
+ @Column(name = "pay_type")
+ @ApiModelProperty("付款方式 1线下支付 2平安钱包支付")
+ private Integer payType;
+
+ @Column(name = "is_refund")
+ @ApiModelProperty("是否退款,0否1是")
+ private Integer isRefund;
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/LineInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/LineInfoDO.java
index 21a984dce..199a119e2 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/entity/LineInfoDO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/LineInfoDO.java
@@ -178,6 +178,10 @@ public class LineInfoDO {
@Column(name = "join_mode")
private Integer joinMode;
+
@Column(name = "franchise_brand")
private String franchiseBrand;
+
+ @Column(name = "use_standard_store")
+ private Integer useStandardStore;
}
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopInfoDO.java
index 02a883212..7be007bb2 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopInfoDO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/ShopInfoDO.java
@@ -168,6 +168,9 @@ public class ShopInfoDO {
@Column(name = "operations_consultant")
private String operationsConsultant;
+ @Column(name = "use_standard_store")
+ private Integer useStandardStore;
+
@Column(name = "plan_open_date")
private Date planOpenDate;
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/config/ConfigItemCategoryDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/config/ConfigItemCategoryDO.java
new file mode 100644
index 000000000..91aa51e6e
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/config/ConfigItemCategoryDO.java
@@ -0,0 +1,52 @@
+package com.cool.store.entity.config;
+
+import lombok.Data;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Table(name = "zxjp_cfg_item_category")
+public class ConfigItemCategoryDO implements Serializable {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ @Column(name = "category_code")
+ private String categoryCode;
+
+ @Column(name = "category_name")
+ private String categoryName;
+
+ @Column(name = "sort_no")
+ private Integer sortNo;
+
+ @Column(name = "image_url")
+ private String imageUrl;
+
+ @Column(name = "video_url")
+ private String videoUrl;
+
+ @Column(name = "status")
+ private Integer status;
+
+ @Column(name = "is_deleted")
+ private Integer isDeleted;
+
+ @Column(name = "remark")
+ private String remark;
+
+ @Column(name = "created_user_id")
+ private String createdUserId;
+
+ @Column(name = "created_time")
+ private Date createdTime;
+
+ @Column(name = "updated_user_id")
+ private String updatedUserId;
+
+ @Column(name = "updated_time")
+ private Date updatedTime;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/config/ConfigItemDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/config/ConfigItemDO.java
new file mode 100644
index 000000000..b33becf25
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/config/ConfigItemDO.java
@@ -0,0 +1,53 @@
+package com.cool.store.entity.config;
+
+import lombok.Data;
+
+import javax.persistence.Column;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Table(name = "zxjp_cfg_item")
+public class ConfigItemDO implements Serializable {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ @Column(name = "item_code")
+ private String itemCode;
+
+ @Column(name = "item_name")
+ private String itemName;
+
+ @Column(name = "category_id")
+ private Long categoryId;
+
+ @Column(name = "sort_no")
+ private Integer sortNo;
+
+ @Column(name = "status")
+ private Integer status;
+
+ @Column(name = "is_deleted")
+ private Integer isDeleted;
+
+ @Column(name = "remark")
+ private String remark;
+
+ @Column(name = "created_user_id")
+ private String createdUserId;
+
+ @Column(name = "created_time")
+ private Date createdTime;
+
+ @Column(name = "updated_user_id")
+ private String updatedUserId;
+
+ @Column(name = "updated_time")
+ private Date updatedTime;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/config/ConfigOptionDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/config/ConfigOptionDO.java
new file mode 100644
index 000000000..222aa4cbf
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/config/ConfigOptionDO.java
@@ -0,0 +1,75 @@
+package com.cool.store.entity.config;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Column;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 选项模板表
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table(name = "zxjp_config_option")
+public class ConfigOptionDO implements Serializable {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ @Column(name = "category_code")
+ private String categoryCode;
+
+ @Column(name = "item_code")
+ private String itemCode;
+
+ @Column(name = "option_code")
+ private String optionCode;
+
+ @Column(name = "option_name")
+ private String optionName;
+
+ @Column(name = "option_description")
+ private String optionDescription;
+
+ @Column(name = "option_price")
+ private BigDecimal optionPrice;
+
+ @Column(name = "original_option_price")
+ private BigDecimal originalOptionPrice;
+
+ @Column(name = "option_unit")
+ private String optionUnit;
+
+ @Column(name = "image_url")
+ private String imageUrl;
+
+ @Column(name = "video_url")
+ private String videoUrl;
+
+ @Column(name = "is_active")
+ private Boolean active;
+
+ @Column(name = "sort_order")
+ private Integer sortOrder;
+
+ @Column(name = "option_remark")
+ private String optionRemark;
+
+ @Column(name = "create_time")
+ private Date createTime;
+
+ @Column(name = "update_time")
+ private Date updateTime;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/FeeStandardConfigDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/FeeStandardConfigDO.java
new file mode 100644
index 000000000..59e5287a1
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/FeeStandardConfigDO.java
@@ -0,0 +1,50 @@
+package com.cool.store.entity.fees;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import javax.persistence.*;
+
+/**
+ * 加盟费用标准收费额配置
+ */
+@Table(name = "zxjp_fees_fee_standard_config")
+@Data
+public class FeeStandardConfigDO {
+ /**
+ * id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ /**
+ * 加盟品牌:1-正新鸡排,2-正新三明治,3-正烧记,4-大鼓米线,5-串小妹,6-茂掌柜
+ */
+ @Column(name = "join_brand")
+ private Integer joinBrand;
+
+ /**
+ * 费用类型
+ */
+ @Column(name = "expense_type")
+ private String expenseType;
+
+ /**
+ * 金额
+ */
+ private BigDecimal amount;
+
+ /**
+ * 创建人id
+ */
+ @Column(name = "create_user_id")
+ private String createUserId;
+
+ /**
+ * 创建时间
+ */
+ @Column(name = "create_time")
+ private Date createTime;
+}
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/PayeeBankConfigDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/PayeeBankConfigDO.java
new file mode 100644
index 000000000..8acc8bf58
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/PayeeBankConfigDO.java
@@ -0,0 +1,80 @@
+package com.cool.store.entity.fees;
+
+import lombok.Data;
+
+import java.util.Date;
+import javax.persistence.*;
+
+/**
+ * 线下收款银行配置
+ */
+@Table(name = "zxjp_fees_payee_bank_config")
+@Data
+public class PayeeBankConfigDO {
+ /**
+ * id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ /**
+ * 加盟品牌:1-正新鸡排,2-正新三明治,3-正烧记,4-大鼓米线,5-串小妹,6-茂掌柜
+ */
+ @Column(name = "join_brand")
+ private Integer joinBrand;
+
+ /**
+ * 招商分部id,0全部
+ */
+ @Column(name = "invest_division_id")
+ private Long investDivisionId;
+
+ /**
+ * 付款方式,同缴纳加盟费支付方式
+ */
+ @Column(name = "pay_type")
+ private Integer payType;
+
+ /**
+ * 收款公司名称
+ */
+ @Column(name = "payee_name")
+ private String payeeName;
+
+ /**
+ * 收款公司code
+ */
+ @Column(name = "payee_code")
+ private String payeeCode;
+
+ /**
+ * 收款账户
+ */
+ @Column(name = "payee_account")
+ private String payeeAccount;
+
+ /**
+ * 收款银行
+ */
+ @Column(name = "payee_bank")
+ private String payeeBank;
+
+ /**
+ * 收款银行开户行
+ */
+ @Column(name = "payee_bank_branch")
+ private String payeeBankBranch;
+
+ /**
+ * 创建人id
+ */
+ @Column(name = "create_user_id")
+ private String createUserId;
+
+ /**
+ * 创建时间
+ */
+ @Column(name = "create_time")
+ private Date createTime;
+}
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/ShopAllocationInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/ShopAllocationInfoDO.java
new file mode 100644
index 000000000..588c78144
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/ShopAllocationInfoDO.java
@@ -0,0 +1,91 @@
+package com.cool.store.entity.fees;
+
+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_fees_shop_allocation_info")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class ShopAllocationInfoDO {
+ /**
+ * id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ /**
+ * 门店id
+ */
+ @Column(name = "shop_id")
+ private Long shopId;
+
+ /**
+ * 费用类型
+ */
+ @Column(name = "expense_type")
+ private String expenseType;
+
+ /**
+ * 收款公司名称
+ */
+ @Column(name = "payee_name")
+ private String payeeName;
+
+ /**
+ * 收款公司code
+ */
+ @Column(name = "payee_code")
+ private String payeeCode;
+
+ /**
+ * 金额
+ */
+ private BigDecimal amount;
+
+ /**
+ * 分账状态,1已分账 2分账失败 3待分账
+ */
+ private Integer status;
+
+ /**
+ * 分账失败原因
+ */
+ @Column(name = "fail_reason")
+ private String failReason;
+
+ /**
+ * 创建人id
+ */
+ @Column(name = "create_user_id")
+ private String createUserId;
+
+ /**
+ * 创建时间
+ */
+ @Column(name = "create_time")
+ private Date createTime;
+
+ /**
+ * 更新人id
+ */
+ @Column(name = "update_user_id")
+ private String updateUserId;
+
+ /**
+ * 更新时间
+ */
+ @Column(name = "update_time")
+ private Date updateTime;
+}
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/WalletAllocationCompanyDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/WalletAllocationCompanyDO.java
new file mode 100644
index 000000000..706af5e93
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/WalletAllocationCompanyDO.java
@@ -0,0 +1,50 @@
+package com.cool.store.entity.fees;
+
+import lombok.Data;
+
+import java.util.Date;
+import javax.persistence.*;
+
+/**
+ * 平安钱包分账公司配置
+ */
+@Table(name = "zxjp_fees_wallet_allocation_company")
+@Data
+public class WalletAllocationCompanyDO {
+ /**
+ * id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ /**
+ * 分账公司配置id
+ */
+ @Column(name = "config_id")
+ private Long configId;
+
+ /**
+ * 收款公司名称
+ */
+ @Column(name = "payee_name")
+ private String payeeName;
+
+ /**
+ * 收款公司code
+ */
+ @Column(name = "payee_code")
+ private String payeeCode;
+
+ /**
+ * 创建人id
+ */
+ @Column(name = "create_user_id")
+ private String createUserId;
+
+ /**
+ * 创建时间
+ */
+ @Column(name = "create_time")
+ private Date createTime;
+}
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/WalletAllocationConfigDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/WalletAllocationConfigDO.java
new file mode 100644
index 000000000..8135c2031
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/WalletAllocationConfigDO.java
@@ -0,0 +1,50 @@
+package com.cool.store.entity.fees;
+
+import lombok.Data;
+
+import java.util.Date;
+import javax.persistence.*;
+
+/**
+ * 平安钱包分账配置
+ */
+@Table(name = "zxjp_fees_wallet_allocation_config")
+@Data
+public class WalletAllocationConfigDO {
+ /**
+ * id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ /**
+ * 加盟品牌:1-正新鸡排,2-正新三明治,3-正烧记,4-大鼓米线,5-串小妹,6-茂掌柜
+ */
+ @Column(name = "join_brand")
+ private Integer joinBrand;
+
+ /**
+ * 招商分部id,0全部
+ */
+ @Column(name = "invest_division_id")
+ private Long investDivisionId;
+
+ /**
+ * 费用类型
+ */
+ @Column(name = "expense_type")
+ private String expenseType;
+
+ /**
+ * 创建人id
+ */
+ @Column(name = "create_user_id")
+ private String createUserId;
+
+ /**
+ * 创建时间
+ */
+ @Column(name = "create_time")
+ private Date createTime;
+}
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/WalletPayInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/WalletPayInfoDO.java
new file mode 100644
index 000000000..1d1b5e634
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/fees/WalletPayInfoDO.java
@@ -0,0 +1,132 @@
+package com.cool.store.entity.fees;
+
+import com.cool.store.entity.wallet.WalletTradeDO;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import javax.persistence.*;
+
+/**
+ * 钱包加盟缴费信息
+ */
+@Table(name = "zxjp_fees_wallet_pay_info")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WalletPayInfoDO {
+ /**
+ * id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ /**
+ * 门店id
+ */
+ @Column(name = "shop_id")
+ private Long shopId;
+
+ /**
+ * 业务模块
+ */
+ @Column(name = "module")
+ private String module;
+
+ /**
+ * 付款单号
+ */
+ @Column(name = "pay_no")
+ private String payNo;
+
+ /**
+ * 付款人
+ */
+ @Column(name = "pay_user_name")
+ private String payUserName;
+
+ /**
+ * 付款金额
+ */
+ @Column(name = "pay_amount")
+ private BigDecimal payAmount;
+
+ /**
+ * 交易流水号
+ */
+ @Column(name = "trade_id")
+ private String tradeId;
+
+ /**
+ * 付款状态,1已支付、2支付失败 3支付中
+ */
+ @Column(name = "pay_status")
+ private Integer payStatus;
+
+ /**
+ * 支付时间
+ */
+ @Column(name = "pay_time")
+ private Date payTime;
+
+ /**
+ * 认领状态0-待认领,1-已认领
+ */
+ @Column(name = "claim_status")
+ private Integer claimStatus;
+
+ /**
+ * 费用类型列表
+ */
+ @Column(name = "expense_types")
+ private String expenseTypes;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 创建人id
+ */
+ @Column(name = "create_user_id")
+ private String createUserId;
+
+ /**
+ * 创建时间
+ */
+ @Column(name = "create_time")
+ private Date createTime;
+
+ public WalletPayInfoDO(String module, Long shopId, String payNo, String payUserName, BigDecimal payAmount, String expenseType, String createUserId, String tradeId) {
+ this.shopId = shopId;
+ this.payNo = payNo;
+ this.payUserName = payUserName;
+ this.payAmount = payAmount;
+ this.payTime = new Date();
+ this.claimStatus = 0;
+ this.expenseTypes = expenseType;
+ this.createUserId = createUserId;
+ this.module = module;
+ this.tradeId = tradeId;
+ }
+
+ public WalletTradeDO convertToTradeDO(String module) {
+ WalletTradeDO walletTradeDO = new WalletTradeDO();
+ walletTradeDO.setModule(module);
+ walletTradeDO.setPayNo(this.payNo);
+ walletTradeDO.setTradeId(this.tradeId);
+ walletTradeDO.setType(1);
+ walletTradeDO.setPayUserName(this.payUserName);
+ walletTradeDO.setPayAmount(this.payAmount);
+ walletTradeDO.setPayStatus(this.payStatus);
+ walletTradeDO.setPayTime(this.payTime);
+ walletTradeDO.setRemark(this.remark);
+ walletTradeDO.setCreateUserId(this.createUserId);
+ return walletTradeDO;
+ }
+}
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/modify/ModifyRecordDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/modify/ModifyRecordDO.java
new file mode 100644
index 000000000..f9f150feb
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/modify/ModifyRecordDO.java
@@ -0,0 +1,47 @@
+package com.cool.store.entity.modify;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+import javax.persistence.*;
+
+/**
+ * 业务修改记录
+ */
+@Table(name = "zxjp_modify_record")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ModifyRecordDO {
+ /**
+ * id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ /**
+ * 模块
+ */
+ private String module;
+
+ /**
+ * 业务id
+ */
+ @Column(name = "business_id")
+ private Long businessId;
+
+ /**
+ * 更新人id
+ */
+ @Column(name = "update_user_id")
+ private String updateUserId;
+
+ /**
+ * 更新时间
+ */
+ @Column(name = "update_time")
+ private Date updateTime;
+}
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/order/PreAllocationRecordDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/order/PreAllocationRecordDO.java
new file mode 100644
index 000000000..58ff74434
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/order/PreAllocationRecordDO.java
@@ -0,0 +1,56 @@
+package com.cool.store.entity.order;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 预分账明细表
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table(name = "zxjp_pre_allocation_record")
+public class PreAllocationRecordDO implements Serializable {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ @Column(name = "order_id")
+ private Long orderId;
+
+ @Column(name = "shop_id")
+ private Long shopId;
+
+ @Column(name = "pay_no")
+ private String payNo;
+
+ @Column(name = "expense_type")
+ private String expenseType;
+
+ @Column(name = "payee_name")
+ private String payeeName;
+
+ @Column(name = "payee_code")
+ private String payeeCode;
+
+ @Column(name = "pay_amount")
+ private BigDecimal payAmount;
+
+ @Column(name = "allocation_status")
+ private Integer allocationStatus;
+
+ @Column(name = "create_time")
+ private Date createTime;
+
+ @Column(name = "update_time")
+ private Date updateTime;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/order/StoreOrderDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/order/StoreOrderDO.java
new file mode 100644
index 000000000..0f19d2105
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/order/StoreOrderDO.java
@@ -0,0 +1,134 @@
+package com.cool.store.entity.order;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Column;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table(name = "zxjp_store_order")
+public class StoreOrderDO {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ @Column(name = "order_no")
+ private String orderNo;
+
+ @Column(name = "shop_id")
+ private Long shopId;
+
+ @Column(name = "line_id")
+ private Long lineId;
+
+ @Column(name = "partner_name")
+ private String partnerName;
+
+ @Column(name = "partner_mobile")
+ private String partnerMobile;
+
+ @Column(name = "investment_manager")
+ private String investmentManager;
+
+ @Column(name = "store_type_id")
+ private Long storeTypeId;
+
+ @Column(name = "store_type_code")
+ private String storeTypeCode;
+
+ @Column(name = "store_type_name")
+ private String storeTypeName;
+
+ @Column(name = "store_type")
+ private Integer storeType;
+
+ @Column(name = "brand")
+ private String brand;
+
+ @Column(name = "franchise_fee")
+ private BigDecimal franchiseFee;
+
+ @Column(name = "original_franchise_fee")
+ private BigDecimal originalFranchiseFee;
+
+ @Column(name = "brand_usage_fee")
+ private BigDecimal brandUsageFee;
+
+ @Column(name = "original_brand_usage_fee")
+ private BigDecimal originalBrandUsageFee;
+
+ @Column(name = "management_fee")
+ private BigDecimal managementFee;
+
+ @Column(name = "original_management_fee")
+ private BigDecimal originalManagementFee;
+
+ @Column(name = "system_usage_fee")
+ private BigDecimal systemUsageFee;
+
+ @Column(name = "original_system_usage_fee")
+ private BigDecimal originalSystemUsageFee;
+
+ @Column(name = "contract_deposit")
+ private BigDecimal contractDeposit;
+
+ @Column(name = "original_contract_deposit")
+ private BigDecimal originalContractDeposit;
+
+ @Column(name = "design_fee")
+ private BigDecimal designFee;
+
+ @Column(name = "original_design_fee")
+ private BigDecimal originalDesignFee;
+
+ @Column(name = "first_order_fee")
+ private BigDecimal firstOrderFee;
+
+ @Column(name = "store_fixed_amount")
+ private BigDecimal storeFixedAmount;
+
+ @Column(name = "original_store_fixed_amount")
+ private BigDecimal originalStoreFixedAmount;
+
+ @Column(name = "option_amount")
+ private BigDecimal optionAmount;
+
+ @Column(name = "original_option_amount")
+ private BigDecimal originalOptionAmount;
+
+ @Column(name = "total_amount")
+ private BigDecimal totalAmount;
+
+ @Column(name = "original_total_amount")
+ private BigDecimal originalTotalAmount;
+
+ @Column(name = "paid_amount")
+ private BigDecimal paidAmount;
+
+ @Column(name = "unpaid_amount")
+ private BigDecimal unpaidAmount;
+
+ @Column(name = "status")
+ private Integer status;
+
+ @Column(name = "create_time")
+ private Date createTime;
+
+ @Column(name = "pay_time")
+ private Date payTime;
+
+ @Column(name = "update_time")
+ private Date updateTime;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/order/StoreOrderOptionSnapshotDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/order/StoreOrderOptionSnapshotDO.java
new file mode 100644
index 000000000..7baef5c7e
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/order/StoreOrderOptionSnapshotDO.java
@@ -0,0 +1,80 @@
+package com.cool.store.entity.order;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Column;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table(name = "zxjp_store_order_option_snapshot")
+public class StoreOrderOptionSnapshotDO {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ @Column(name = "order_id")
+ private Long orderId;
+
+ @Column(name = "shop_id")
+ private Long shopId;
+
+ @Column(name = "store_type_id")
+ private Long storeTypeId;
+
+ @Column(name = "option_id")
+ private Long optionId;
+
+ @Column(name = "category_code")
+ private String categoryCode;
+
+ @Column(name = "item_code")
+ private String itemCode;
+
+ @Column(name = "option_code")
+ private String optionCode;
+
+ @Column(name = "option_name")
+ private String optionName;
+
+ @Column(name = "option_price")
+ private BigDecimal optionPrice;
+
+ @Column(name = "original_option_price")
+ private BigDecimal originalOptionPrice;
+
+ @Column(name = "option_remark")
+ private String optionRemark;
+
+ @Column(name = "image_url")
+ private String imageUrl;
+
+ @Column(name = "video_url")
+ private String videoUrl;
+
+ @Column(name = "quantity")
+ private BigDecimal quantity;
+
+ @Column(name = "amount")
+ private BigDecimal amount;
+
+ @Column(name = "original_amount")
+ private BigDecimal originalAmount;
+
+ @Column(name = "create_time")
+ private Date createTime;
+
+ @Column(name = "option_unit")
+ private String optionUnit;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/order/StoreWishlistDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/order/StoreWishlistDO.java
new file mode 100644
index 000000000..79e86b4f9
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/order/StoreWishlistDO.java
@@ -0,0 +1,53 @@
+package com.cool.store.entity.order;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Column;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table(name = "zxjp_store_wishlist")
+public class StoreWishlistDO {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ @Column(name = "line_id")
+ private Long lineId;
+
+ @Column(name = "store_type_id")
+ private Long storeTypeId;
+
+ @Column(name = "option_id")
+ private Long optionId;
+
+ @Column(name = "quantity")
+ private BigDecimal quantity;
+
+ @Column(name = "total_amount")
+ private BigDecimal totalAmount;
+
+ @Column(name = "version_no")
+ private String versionNo;
+
+ @Column(name = "deleted")
+ private Integer deleted;
+
+ @Column(name = "create_time")
+ private Date createTime;
+
+ @Column(name = "update_time")
+ private Date updateTime;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/store/StoreTypeDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/store/StoreTypeDO.java
new file mode 100644
index 000000000..f9c353fc8
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/store/StoreTypeDO.java
@@ -0,0 +1,129 @@
+package com.cool.store.entity.store;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 店型主表
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table(name = "zxjp_store_type")
+public class StoreTypeDO implements Serializable {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ /** 店型编码 */
+ @Column(name = "store_type_code")
+ private String storeTypeCode;
+
+ /** 店型名称 */
+ @Column(name = "store_type_name")
+ private String storeTypeName;
+
+ /** 品牌 */
+ private String brand;
+
+ /** 门店类型 */
+ @Column(name = "store_type")
+ private Integer storeType;
+
+ /** 店型描述 */
+ private String description;
+
+ /** 主图 */
+ @Column(name = "image_url")
+ private String imageUrl;
+
+ /** 视频 */
+ @Column(name = "video_url")
+ private String videoUrl;
+
+ /** 720°VR */
+ @Column(name = "vr_video_url")
+ private String vrVideoUrl;
+
+ /** 加盟费 */
+ @Column(name = "franchise_fee")
+ private BigDecimal franchiseFee;
+
+ /** 加盟费原价 */
+ @Column(name = "original_franchise_fee")
+ private BigDecimal originalFranchiseFee;
+
+ /** 品牌使用费 */
+ @Column(name = "brand_usage_fee")
+ private BigDecimal brandUsageFee;
+
+ /** 品牌使用费原价 */
+ @Column(name = "original_brand_usage_fee")
+ private BigDecimal originalBrandUsageFee;
+
+ /** 管理费 */
+ @Column(name = "management_fee")
+ private BigDecimal managementFee;
+
+ /** 管理费原价 */
+ @Column(name = "original_management_fee")
+ private BigDecimal originalManagementFee;
+
+ /** 系统使用费 */
+ @Column(name = "system_usage_fee")
+ private BigDecimal systemUsageFee;
+
+ /** 系统使用费原价 */
+ @Column(name = "original_system_usage_fee")
+ private BigDecimal originalSystemUsageFee;
+
+ /** 合同保证金 */
+ @Column(name = "contract_deposit")
+ private BigDecimal contractDeposit;
+
+ /** 合同保证金原价 */
+ @Column(name = "original_contract_deposit")
+ private BigDecimal originalContractDeposit;
+
+ /** 系统设计费 */
+ @Column(name = "design_fee")
+ private BigDecimal designFee;
+
+ /** 系统设计费原价 */
+ @Column(name = "original_design_fee")
+ private BigDecimal originalDesignFee;
+
+ /**
+ * 首次订货费用
+ */
+ @Column(name = "first_order_fee")
+ private BigDecimal firstOrderFee;
+
+ /** 排序 */
+ @Column(name = "sort_order")
+ private Integer sortOrder;
+
+ /** 是否启用 */
+ @Column(name = "is_active")
+ private Boolean active;
+
+ /** 删除标识 */
+ private Boolean deleted;
+
+ /** 创建时间 */
+ @Column(name = "create_time")
+ private Date createTime;
+
+ /** 更新时间 */
+ @Column(name = "update_time")
+ private Date updateTime;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/store/StoreTypeOptionDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/store/StoreTypeOptionDO.java
new file mode 100644
index 000000000..4ddbbfc3b
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/store/StoreTypeOptionDO.java
@@ -0,0 +1,65 @@
+package com.cool.store.entity.store;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 店型-选项映射表
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table(name = "zxjp_store_type_option")
+public class StoreTypeOptionDO implements Serializable {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ @Column(name = "store_type_id")
+ private Long storeTypeId;
+
+ @Column(name = "option_id")
+ private Long optionId;
+
+ @Column(name = "category_code")
+ private String categoryCode;
+
+ @Column(name = "item_code")
+ private String itemCode;
+
+ @Column(name = "is_default")
+ private Integer isDefault;
+
+ @Column(name = "default_quantity")
+ private BigDecimal defaultQuantity;
+
+ @Column(name = "allow_quantity_edit")
+ private Integer allowQuantityEdit;
+
+ @Column(name = "is_visible")
+ private Integer visible;
+
+ @Column(name = "sort_order")
+ private Integer sortOrder;
+
+ @Column(name = "option_price")
+ private BigDecimal optionPrice;
+
+ @Column(name = "top_preview_image" )
+ private String topPreviewImage;
+
+ @Column(name = "create_time")
+ private Date createTime;
+
+ @Column(name = "update_time")
+ private Date updateTime;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/visit/StoreVisitReservationDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/visit/StoreVisitReservationDO.java
new file mode 100644
index 000000000..d5d5d9b9c
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/visit/StoreVisitReservationDO.java
@@ -0,0 +1,63 @@
+package com.cool.store.entity.visit;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Column;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.util.Date;
+
+/**
+ * 预约到店
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table(name = "zxjp_store_visit_reservation")
+public class StoreVisitReservationDO {
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ @Column(name = "intent_city_id")
+ private Long intentCityId;
+
+ @Column(name = "contact_name")
+ private String contactName;
+
+ private String mobile;
+
+ @Column(name = "visit_time")
+ private Date visitTime;
+
+ /**
+ * 10-待确认 20-待看店 30-已到店 40-已取消
+ */
+ private Integer status;
+
+ private String remark;
+
+ @Column(name = "cancel_reason")
+ private String cancelReason;
+
+ @Column(name = "current_follow_user")
+ private String currentFollowUser;
+
+ @Column(name = "service_user_id")
+ private String serviceUserId;
+
+ @Column(name = "create_time")
+ private Date createTime;
+
+ @Column(name = "update_time")
+ private Date updateTime;
+
+ private Integer deleted;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/WalletTradeDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/WalletTradeDO.java
new file mode 100644
index 000000000..560194522
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/wallet/WalletTradeDO.java
@@ -0,0 +1,88 @@
+package com.cool.store.entity.wallet;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import javax.persistence.*;
+
+/**
+ * 钱包交易单
+ */
+@Table(name = "zxjp_wallet_trade")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WalletTradeDO {
+ /**
+ * id
+ */
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
+
+ /**
+ * 业务模块
+ */
+ private String module;
+
+ /**
+ * 单号
+ */
+ @Column(name = "pay_no")
+ private String payNo;
+
+ /**
+ * 交易流水号
+ */
+ @Column(name = "trade_id")
+ private String tradeId;
+
+ /**
+ * 交易类型,1转账
+ */
+ private Integer type;
+
+ /**
+ * 付款人
+ */
+ @Column(name = "pay_user_name")
+ private String payUserName;
+
+ /**
+ * 付款金额
+ */
+ @Column(name = "pay_amount")
+ private BigDecimal payAmount;
+
+ /**
+ * 付款状态,1已支付、2支付失败、3支付中
+ */
+ @Column(name = "pay_status")
+ private Integer payStatus;
+
+ /**
+ * 支付时间
+ */
+ @Column(name = "pay_time")
+ private Date payTime;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
+ * 创建人id
+ */
+ @Column(name = "create_user_id")
+ private String createUserId;
+
+ /**
+ * 创建时间
+ */
+ @Column(name = "create_time")
+ private Date createTime;
+}
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/AddBranchShopRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/AddBranchShopRequest.java
index 178d32ac4..7c1d5228f 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/request/AddBranchShopRequest.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/AddBranchShopRequest.java
@@ -51,6 +51,9 @@ public class AddBranchShopRequest {
@ApiModelProperty("招商所属区域 20251224新增")
private Long investRegionId;
+ @ApiModelProperty("使用标准店1-是 0-否")
+ private Integer useStandardStore;
+
public ShopInfoDO toDO(AddBranchShopRequest request, LineInfoDO lineInfo) {
ShopInfoDO shopInfoDO = new ShopInfoDO();
shopInfoDO.setLineId(request.getLineId());
@@ -69,6 +72,7 @@ public class AddBranchShopRequest {
shopInfoDO.setFranchiseBrand(request.getFranchiseBrand());
shopInfoDO.setManagerRegionId(request.getManagerRegionId());
shopInfoDO.setInvestRegionId(request.getInvestRegionId());
+ shopInfoDO.setUseStandardStore(request.getUseStandardStore());
return shopInfoDO;
}
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/FranchiseFeeRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/FranchiseFeeRequest.java
index c0ec45835..ed56f9c61 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/request/FranchiseFeeRequest.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/FranchiseFeeRequest.java
@@ -1,11 +1,13 @@
package com.cool.store.request;
import com.cool.store.entity.FranchiseFeeDO;
-import io.swagger.annotations.ApiModel;
+import com.cool.store.request.fees.ShopAllocationInfoRequest;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import javax.validation.constraints.NotEmpty;
import java.util.Date;
+import java.util.List;
@Data
public class FranchiseFeeRequest {
@@ -47,6 +49,10 @@ public class FranchiseFeeRequest {
@ApiModelProperty("收银费(系统费)(三明治使用)")
private String cashierFee;
+ @ApiModelProperty("平安钱包分账信息")
+// @NotEmpty(message = "平安钱包分账信息不能为空")
+ private List shopAllocationInfoList;
+
public FranchiseFeeDO toFranchiseFeeDO() {
FranchiseFeeDO franchiseFeeDO = new FranchiseFeeDO();
franchiseFeeDO.setShopId(this.shopId);
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/FranchisePayTypeUpdateRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/FranchisePayTypeUpdateRequest.java
new file mode 100644
index 000000000..4b61d649e
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/FranchisePayTypeUpdateRequest.java
@@ -0,0 +1,25 @@
+package com.cool.store.request;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ *
+ * 加盟费支付方式修改Request
+ *
+ *
+ * @author wangff
+ * @since 2026/1/28
+ */
+@Data
+public class FranchisePayTypeUpdateRequest {
+ @ApiModelProperty("门店id")
+ @NotNull(message = "门店id不能为空")
+ private Long shopId;
+
+ @ApiModelProperty("支付方式,1线下支付 2平安钱包支付")
+ @NotNull(message = "支付方式不能为空")
+ private Integer payType;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/JoinIntentionRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/JoinIntentionRequest.java
index 1afdbc555..b9c2e5de6 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/request/JoinIntentionRequest.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/JoinIntentionRequest.java
@@ -8,6 +8,7 @@ import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
@Data
public class JoinIntentionRequest {
@@ -123,6 +124,10 @@ public class JoinIntentionRequest {
@ApiModelProperty("是否愿意驻点大于等于90小时")
private Integer willingStationDuration;
+
+ @ApiModelProperty
+ @NotNull
+ private Integer useStandardStore;
public LineInfoDO toLineInfoDO() {
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigItemCategoryQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigItemCategoryQueryRequest.java
new file mode 100644
index 000000000..f805285d5
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigItemCategoryQueryRequest.java
@@ -0,0 +1,15 @@
+package com.cool.store.request.config;
+
+import com.cool.store.common.PageBasicInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ConfigItemCategoryQueryRequest extends PageBasicInfo {
+
+ @ApiModelProperty("配置大类名称(模糊)")
+ private String categoryName;
+
+ @ApiModelProperty("状态:1启用,0禁用")
+ private Integer status = 1;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigItemCategoryUpdateRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigItemCategoryUpdateRequest.java
new file mode 100644
index 000000000..3947afbb0
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigItemCategoryUpdateRequest.java
@@ -0,0 +1,40 @@
+package com.cool.store.request.config;
+
+import com.cool.store.common.InsertGroup;
+import com.cool.store.common.UpdateGroup;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+public class ConfigItemCategoryUpdateRequest {
+
+ @ApiModelProperty("主键ID")
+ @NotNull(message = "ID不能为空", groups = UpdateGroup.class)
+ private Long id;
+
+ @ApiModelProperty("配置大类编码")
+ private String categoryCode;
+
+ @ApiModelProperty("配置大类名称")
+ @NotBlank(message = "配置大类名称不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String categoryName;
+
+ @ApiModelProperty("显示排序")
+ @NotNull(message = "显示排序不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private Integer sortNo;
+
+ @ApiModelProperty("图片URL")
+ private String imageUrl;
+
+ @ApiModelProperty("视频URL")
+ private String videoUrl;
+
+ @ApiModelProperty("状态:1启用,0禁用")
+ private Integer status;
+
+ @ApiModelProperty("备注")
+ private String remark;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigItemQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigItemQueryRequest.java
new file mode 100644
index 000000000..2bf2f55dc
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigItemQueryRequest.java
@@ -0,0 +1,21 @@
+package com.cool.store.request.config;
+
+import com.cool.store.common.PageBasicInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ConfigItemQueryRequest extends PageBasicInfo {
+
+ @ApiModelProperty("配置项名称(模糊)")
+ private String itemName;
+
+ @ApiModelProperty("配置项编码")
+ private String itemCode;
+
+ @ApiModelProperty("配置大类ID")
+ private Long categoryId;
+
+ @ApiModelProperty("状态:1启用,0禁用")
+ private Integer status = 1;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigItemUpdateRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigItemUpdateRequest.java
new file mode 100644
index 000000000..f9257c4f6
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigItemUpdateRequest.java
@@ -0,0 +1,38 @@
+package com.cool.store.request.config;
+
+import com.cool.store.common.InsertGroup;
+import com.cool.store.common.UpdateGroup;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+public class ConfigItemUpdateRequest {
+
+ @ApiModelProperty("主键ID")
+ @NotNull(message = "ID不能为空", groups = UpdateGroup.class)
+ private Long id;
+
+ @ApiModelProperty("配置项编码")
+ private String itemCode;
+
+ @ApiModelProperty("配置项名称")
+ @NotBlank(message = "配置项名称不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String itemName;
+
+ @ApiModelProperty("配置大类ID")
+ @NotNull(message = "配置大类ID不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private Long categoryId;
+
+ @ApiModelProperty("显示排序")
+ @NotNull(message = "显示排序不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private Integer sortNo;
+
+ @ApiModelProperty("状态:1启用,0禁用")
+ private Integer status;
+
+ @ApiModelProperty("备注")
+ private String remark;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigOptionQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigOptionQueryRequest.java
new file mode 100644
index 000000000..5a105cccd
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigOptionQueryRequest.java
@@ -0,0 +1,21 @@
+package com.cool.store.request.config;
+
+import com.cool.store.common.PageBasicInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ConfigOptionQueryRequest extends PageBasicInfo {
+
+ @ApiModelProperty("配置类型编码")
+ private String categoryCode;
+
+ @ApiModelProperty("配置项编码")
+ private String itemCode;
+
+ @ApiModelProperty("是否启用 1-启用 0未启用 ")
+ private Integer active = 1;
+
+ @ApiModelProperty("选项名称(模糊)")
+ private String optionName;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigOptionTreeQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigOptionTreeQueryRequest.java
new file mode 100644
index 000000000..fca66fcbd
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigOptionTreeQueryRequest.java
@@ -0,0 +1,17 @@
+package com.cool.store.request.config;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ConfigOptionTreeQueryRequest {
+
+ @ApiModelProperty("配置类型字典表id,固定传 10")
+ private Long typeDictTableId;
+
+ @ApiModelProperty("配置项字典表id,固定传 11")
+ private Long itemDictTableId;
+
+ @ApiModelProperty("选项名称(模糊)")
+ private String optionName;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigOptionUpdateRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigOptionUpdateRequest.java
new file mode 100644
index 000000000..34228d272
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/config/ConfigOptionUpdateRequest.java
@@ -0,0 +1,57 @@
+package com.cool.store.request.config;
+
+import com.cool.store.common.InsertGroup;
+import com.cool.store.common.UpdateGroup;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+@Data
+public class ConfigOptionUpdateRequest {
+ @ApiModelProperty("主键ID")
+ @NotNull(message = "ID不能为空", groups = UpdateGroup.class)
+ private Long id;
+
+ @ApiModelProperty("配置类型编码")
+ @NotBlank(message = "配置类型编码不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String categoryCode;
+
+ @ApiModelProperty("配置项编码")
+ @NotBlank(message = "配置项编码不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String itemCode;
+
+ @ApiModelProperty("选项编码")
+ private String optionCode;
+
+ @ApiModelProperty("选项单位")
+ private String optionUnit;
+
+ @ApiModelProperty("选项名称")
+ @NotBlank(message = "选项名称不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String optionName;
+
+ @ApiModelProperty("选项描述")
+ @NotBlank(message = "选项描述不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String optionDescription;
+
+ @ApiModelProperty("售价")
+ @NotNull(message = "售价不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private BigDecimal optionPrice;
+
+ @ApiModelProperty("原价")
+ private BigDecimal originalOptionPrice;
+
+ @ApiModelProperty("图片")
+ @NotBlank(message = "图片不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String imageUrl;
+ @ApiModelProperty("视频")
+ private String videoUrl;
+ @ApiModelProperty("排序")
+ @NotNull(message = "排序不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private Integer sortOrder;
+ @ApiModelProperty("配置项选项明细")
+ private String optionRemark;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/fees/FeeStandardConfigAddRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/FeeStandardConfigAddRequest.java
new file mode 100644
index 000000000..14181e1d3
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/FeeStandardConfigAddRequest.java
@@ -0,0 +1,36 @@
+package com.cool.store.request.fees;
+
+import com.cool.store.common.InsertGroup;
+import com.cool.store.common.UpdateGroup;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Digits;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * 加盟费用标准收费额配置 新增/修改请求
+ */
+@Data
+public class FeeStandardConfigAddRequest {
+
+ @ApiModelProperty("配置id")
+ @NotNull(message = "配置id不能为空", groups = {UpdateGroup.class})
+ private Long id;
+
+ @ApiModelProperty(value = "加盟品牌", required = true)
+ @NotNull(message = "加盟品牌不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private Integer joinBrand;
+
+ @ApiModelProperty(value = "费用类型", required = true)
+ @NotNull(message = "费用类型不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String expenseType;
+
+ @ApiModelProperty(value = "金额", required = true)
+ @Digits(integer = 10, fraction = 2, message = "金额整数位最多10位,小数位最多2位")
+ @NotNull(message = "金额不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private BigDecimal amount;
+}
+
+
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/fees/FeeStandardConfigPageRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/FeeStandardConfigPageRequest.java
new file mode 100644
index 000000000..bdcdc0b42
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/FeeStandardConfigPageRequest.java
@@ -0,0 +1,22 @@
+package com.cool.store.request.fees;
+
+import com.cool.store.common.PageBasicInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 加盟费用标准收费额配置 分页查询请求
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class FeeStandardConfigPageRequest extends PageBasicInfo {
+
+ @ApiModelProperty("加盟品牌")
+ private Integer joinBrand;
+
+ @ApiModelProperty("费用类型")
+ private String expenseType;
+}
+
+
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/fees/PayeeBankConfigAddRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/PayeeBankConfigAddRequest.java
new file mode 100644
index 000000000..840d26d92
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/PayeeBankConfigAddRequest.java
@@ -0,0 +1,53 @@
+package com.cool.store.request.fees;
+
+import com.cool.store.common.InsertGroup;
+import com.cool.store.common.UpdateGroup;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * 线下收款银行配置 新增/编辑 Request
+ */
+@Data
+public class PayeeBankConfigAddRequest {
+ @ApiModelProperty("配置id(编辑必传)")
+ @NotNull(message = "id不能为空", groups = {UpdateGroup.class})
+ private Long id;
+
+ @ApiModelProperty(value = "加盟品牌", required = true)
+ @NotNull(message = "加盟品牌不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private Integer joinBrand;
+
+ @ApiModelProperty(value = "招商分部id,0表示全部", required = true)
+ @NotNull(message = "招商分部id不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private Long investDivisionId;
+
+ @ApiModelProperty(value = "付款方式,同缴纳加盟费支付方式", required = true)
+ @NotNull(message = "付款方式不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private Integer payType;
+
+ @ApiModelProperty(value = "收款公司名称", required = true)
+ @NotBlank(message = "收款公司名称不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String payeeName;
+
+ @ApiModelProperty(value = "收款公司code", required = true)
+ @NotBlank(message = "收款公司code不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String payeeCode;
+
+ @ApiModelProperty(value = "收款账户", required = true)
+ @NotBlank(message = "收款账户不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String payeeAccount;
+
+ @ApiModelProperty(value = "收款银行", required = true)
+ @NotBlank(message = "收款银行不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String payeeBank;
+
+ @ApiModelProperty(value = "收款银行开户行", required = true)
+ @NotBlank(message = "收款银行开户行不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String payeeBankBranch;
+}
+
+
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/fees/PayeeBankConfigPageRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/PayeeBankConfigPageRequest.java
new file mode 100644
index 000000000..c43957cea
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/PayeeBankConfigPageRequest.java
@@ -0,0 +1,24 @@
+package com.cool.store.request.fees;
+
+import com.cool.store.common.PageBasicInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 线下收款银行配置 查询Request
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class PayeeBankConfigPageRequest extends PageBasicInfo {
+ @ApiModelProperty("加盟品牌")
+ private Integer joinBrand;
+
+ @ApiModelProperty("招商分部id")
+ private Long investDivisionId;
+
+ @ApiModelProperty("付款方式")
+ private Integer payType;
+}
+
+
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/fees/ShopAllocationInfoRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/ShopAllocationInfoRequest.java
new file mode 100644
index 000000000..c2f53d85d
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/ShopAllocationInfoRequest.java
@@ -0,0 +1,40 @@
+package com.cool.store.request.fees;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Digits;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ *
+ * 平安钱包分账信息Request
+ *
+ *
+ * @author wangff
+ * @since 2026/1/30
+ */
+@Data
+public class ShopAllocationInfoRequest {
+ @ApiModelProperty("id")
+ private Long id;
+
+ @ApiModelProperty("费用类型")
+ @NotBlank(message = "费用类型不能为空")
+ private String expenseType;
+
+ @ApiModelProperty("收款公司名称")
+ @NotBlank(message = "收款公司名称不能为空")
+ private String payeeName;
+
+ @ApiModelProperty("收款公司code")
+ @NotBlank(message = "收款公司code不能为空")
+ private String payeeCode;
+
+ @ApiModelProperty("金额")
+ @Digits(integer = 10, fraction = 2, message = "金额整数位最多10位,小数位最多2位")
+ @NotNull(message = "金额不能为空")
+ private BigDecimal amount;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletAllocationCompanyRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletAllocationCompanyRequest.java
new file mode 100644
index 000000000..6b8c1311c
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletAllocationCompanyRequest.java
@@ -0,0 +1,25 @@
+package com.cool.store.request.fees;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ *
+ * 收款公司Request
+ *
+ *
+ * @author wangff
+ * @since 2026/1/27
+ */
+@Data
+public class WalletAllocationCompanyRequest {
+ @ApiModelProperty(value = "收款公司名称", required = true)
+ @NotNull(message = "收款公司名称不能为空")
+ private String payeeName;
+
+ @ApiModelProperty(value = "收款公司code", required = true)
+ @NotNull(message = "收款公司code不能为空")
+ private String payeeCode;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletAllocationConfigAddRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletAllocationConfigAddRequest.java
new file mode 100644
index 000000000..d1fd24e05
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletAllocationConfigAddRequest.java
@@ -0,0 +1,39 @@
+package com.cool.store.request.fees;
+
+import com.cool.store.common.InsertGroup;
+import com.cool.store.common.UpdateGroup;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * 分账配置新增Request
+ *
+ * @author system
+ */
+@Data
+public class WalletAllocationConfigAddRequest {
+ @ApiModelProperty(value = "配置id", required = true)
+ @NotNull(message = "配置id不能为空", groups = {UpdateGroup.class})
+ private Long id;
+
+ @ApiModelProperty(value = "加盟品牌:1-正新鸡排,2-正新三明治,3-正烧记,4-大鼓米线,5-串小妹,6-茂掌柜", required = true)
+ @NotNull(message = "加盟品牌不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private Integer joinBrand;
+
+ @ApiModelProperty(value = "招商分部id,0表示全部", required = true)
+ @NotNull(message = "招商分部id不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private Long investDivisionId;
+
+ @ApiModelProperty(value = "费用类型,字典表expense_type", required = true)
+ @NotNull(message = "费用类型不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String expenseType;
+
+ @ApiModelProperty(value = "分账公司配置列表", required = true)
+ @NotEmpty(message = "分账公司配置列表不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private List companyList;
+}
+
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletAllocationConfigPageRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletAllocationConfigPageRequest.java
new file mode 100644
index 000000000..5c4868696
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletAllocationConfigPageRequest.java
@@ -0,0 +1,26 @@
+package com.cool.store.request.fees;
+
+import com.cool.store.common.PageBasicInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分账配置分页查询Request
+ *
+ * @author system
+ */
+@Data
+public class WalletAllocationConfigPageRequest extends PageBasicInfo {
+ @ApiModelProperty("加盟品牌:1-正新鸡排,2-正新三明治,3-正烧记,4-大鼓米线,5-串小妹,6-茂掌柜")
+ private Integer joinBrand;
+
+ @ApiModelProperty("招商分部id")
+ private Long investDivisionId;
+
+ @ApiModelProperty("费用类型")
+ private Integer expenseType;
+
+ @ApiModelProperty("收款公司code")
+ private String payeeCode;
+}
+
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletCancelPayRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletCancelPayRequest.java
new file mode 100644
index 000000000..14e354158
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletCancelPayRequest.java
@@ -0,0 +1,21 @@
+package com.cool.store.request.fees;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ *
+ * 钱包取消支付Request
+ *
+ *
+ * @author wangff
+ * @since 2026/2/6
+ */
+@Data
+public class WalletCancelPayRequest {
+ @ApiModelProperty("缴费信息id")
+ @NotNull(message = "缴费信息id不能为空")
+ private Long payInfoId;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletCompanyQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletCompanyQueryRequest.java
new file mode 100644
index 000000000..24c990ba9
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletCompanyQueryRequest.java
@@ -0,0 +1,22 @@
+package com.cool.store.request.fees;
+
+import com.cool.store.common.PageBasicInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * 收款公司查询Request
+ *
+ *
+ * @author wangff
+ * @since 2026/1/27
+ */
+@Data
+public class WalletCompanyQueryRequest extends PageBasicInfo {
+ @ApiModelProperty("公司名称")
+ private String companyName;
+
+ @ApiModelProperty("公司code")
+ private String companyCode;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletPayRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletPayRequest.java
new file mode 100644
index 000000000..264679dd2
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletPayRequest.java
@@ -0,0 +1,40 @@
+package com.cool.store.request.fees;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Digits;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ *
+ * 钱包支付Request
+ *
+ *
+ * @author wangff
+ * @since 2026/1/30
+ */
+@Data
+public class WalletPayRequest {
+ @ApiModelProperty("门店id")
+ @NotNull(message = "门店id不能为空")
+ private Long shopId;
+
+ @ApiModelProperty("费用类型code列表")
+ @NotEmpty(message = "费用类型code列表不能为空")
+ private List expenseTypes;
+
+ @ApiModelProperty("总金额")
+ @Digits(integer = 10, fraction = 2, message = "金额整数位最多10位,小数位最多2位")
+ @NotNull(message = "总金额不能为空")
+ private BigDecimal amount;
+
+ @ApiModelProperty("支付密码(sm3加密后字符串)")
+ @NotBlank(message = "支付密码不能为空")
+ private String payPwd;
+
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletRepayRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletRepayRequest.java
new file mode 100644
index 000000000..84839b9b3
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/fees/WalletRepayRequest.java
@@ -0,0 +1,26 @@
+package com.cool.store.request.fees;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ *
+ * 钱包重新支付Request
+ *
+ *
+ * @author wangff
+ * @since 2026/2/6
+ */
+@Data
+public class WalletRepayRequest {
+ @ApiModelProperty("缴费信息id")
+ @NotNull(message = "缴费信息id不能为空")
+ private Long payInfoId;
+
+ @ApiModelProperty("支付密码(sm3加密后字符串)")
+ @NotBlank(message = "支付密码不能为空")
+ private String payPwd;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderCreateRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderCreateRequest.java
new file mode 100644
index 000000000..83a4a51dd
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderCreateRequest.java
@@ -0,0 +1,34 @@
+package com.cool.store.request.order;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class MiniStoreOrderCreateRequest {
+
+ @ApiModelProperty(value = "门店ID", required = true)
+ @NotNull(message = "门店ID不能为空")
+ private Long shopId;
+
+ @ApiModelProperty(value = "店型ID", required = true)
+ @NotNull(message = "店型ID不能为空")
+ private Long storeTypeId;
+
+ @ApiModelProperty("选中的配置选项列表")
+ private List selectedOptions;
+
+ @Data
+ public static class SelectedOption {
+ @ApiModelProperty(value = "选项ID", required = true)
+ @NotNull(message = "选项ID不能为空")
+ private Long optionId;
+
+ @ApiModelProperty("数量")
+ @NotNull(message ="数量不能为空")
+ private BigDecimal quantity;
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderLineQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderLineQueryRequest.java
new file mode 100644
index 000000000..80cbddc26
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderLineQueryRequest.java
@@ -0,0 +1,15 @@
+package com.cool.store.request.order;
+
+import com.cool.store.common.PageBasicInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class MiniStoreOrderLineQueryRequest extends PageBasicInfo {
+
+ @ApiModelProperty("加盟商ID(line_id)")
+ private Long lineId;
+
+ @ApiModelProperty("订单状态")
+ private Integer status;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderPayRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderPayRequest.java
new file mode 100644
index 000000000..2fe3da2cf
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderPayRequest.java
@@ -0,0 +1,29 @@
+package com.cool.store.request.order;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * @Auther zx_szh
+ * @Date 2026/2/5
+ * @Version 1.0
+ */
+@Data
+public class MiniStoreOrderPayRequest {
+
+ @ApiModelProperty(value = "订单ID", required = true)
+ @NotNull
+ private Long orderId;
+
+ @ApiModelProperty( value = "支付密码", required = true)
+ @NotBlank
+ private String payPwd;
+
+ @ApiModelProperty(value = "支付金额", required = true)
+ @NotNull
+ private BigDecimal amount;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderQueryRequest.java
new file mode 100644
index 000000000..6ea36d7e2
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderQueryRequest.java
@@ -0,0 +1,15 @@
+package com.cool.store.request.order;
+
+import com.cool.store.common.PageBasicInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class MiniStoreOrderQueryRequest extends PageBasicInfo {
+
+ @ApiModelProperty("门店ID")
+ private Long shopId;
+
+ @ApiModelProperty("订单状态:0待确认/1已确认/2已取消/3已支付")
+ private Integer status;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderRequest.java
new file mode 100644
index 000000000..bb7aa8d43
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderRequest.java
@@ -0,0 +1,17 @@
+package com.cool.store.request.order;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Auther zx_szh
+ * @Date 2026/2/3 14:24
+ * @Version 1.0
+ */
+@Data
+public class MiniStoreOrderRequest {
+
+ @ApiModelProperty(name = "订单ID")
+ private Long orderId;
+
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderUpdateRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderUpdateRequest.java
new file mode 100644
index 000000000..b04098051
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreOrderUpdateRequest.java
@@ -0,0 +1,28 @@
+package com.cool.store.request.order;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+@Data
+public class MiniStoreOrderUpdateRequest {
+
+ @ApiModelProperty(value = "订单ID", required = true)
+ @NotNull(message = "订单ID不能为空")
+ private Long orderId;
+
+ @ApiModelProperty(value = "门店ID", required = true)
+ @NotNull(message = "门店ID不能为空")
+ private Long shopId;
+
+ @ApiModelProperty(value = "店型ID", required = true)
+ @NotNull(message = "店型ID不能为空")
+ private Long storeTypeId;
+
+ @ApiModelProperty("选中的配置选项列表")
+ @Valid
+ private List selectedOptions;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreWishlistDelRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreWishlistDelRequest.java
new file mode 100644
index 000000000..711c1c77c
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreWishlistDelRequest.java
@@ -0,0 +1,26 @@
+package com.cool.store.request.order;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Auther zx_szh
+ * @Date 2026/3/10 19:23
+ * @Version 1.0
+ */
+@Data
+public class MiniStoreWishlistDelRequest {
+
+ @ApiModelProperty("店型ID")
+ @NotNull
+ private Long storeTypeId;
+
+ @ApiModelProperty("版本号")
+ @NotBlank
+ private String versionNo;
+
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreWishlistListRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreWishlistListRequest.java
new file mode 100644
index 000000000..46e1e9780
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreWishlistListRequest.java
@@ -0,0 +1,11 @@
+package com.cool.store.request.order;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class MiniStoreWishlistListRequest {
+
+ @ApiModelProperty("店型ID,可选")
+ private Long storeTypeId;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreWishlistSaveRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreWishlistSaveRequest.java
new file mode 100644
index 000000000..b0544da05
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/order/MiniStoreWishlistSaveRequest.java
@@ -0,0 +1,33 @@
+package com.cool.store.request.order;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class MiniStoreWishlistSaveRequest {
+
+ @ApiModelProperty("版本号")
+ private String versionNo;
+
+ @ApiModelProperty(value = "店型ID", required = true)
+ @NotNull(message = "店型ID不能为空")
+ private Long storeTypeId;
+
+ @ApiModelProperty("选中的配置选项列表")
+ private List selectedOptions;
+
+ @Data
+ public static class SelectedOption {
+ @ApiModelProperty(value = "选项ID", required = true)
+ @NotNull(message = "选项ID不能为空")
+ private Long optionId;
+
+ @ApiModelProperty(value = "数量", required = true)
+ @NotNull(message = "数量不能为空")
+ private BigDecimal quantity;
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/order/OrderAuditRecordRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/order/OrderAuditRecordRequest.java
new file mode 100644
index 000000000..9feb9c214
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/order/OrderAuditRecordRequest.java
@@ -0,0 +1,26 @@
+package com.cool.store.request.order;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * @Auther zx_szh
+ * @Date 2026/2/7 14:32
+ * @Version 1.0
+ */
+@Data
+public class OrderAuditRecordRequest {
+
+ @ApiModelProperty("订单ID")
+ private Long orderId;
+
+ @ApiModelProperty("状态 1-通过 2-拒绝")
+ private Integer status;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+
+
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/order/PCStoreOrderOptionQuantityUpdateRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/order/PCStoreOrderOptionQuantityUpdateRequest.java
new file mode 100644
index 000000000..6bc50785e
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/order/PCStoreOrderOptionQuantityUpdateRequest.java
@@ -0,0 +1,35 @@
+package com.cool.store.request.order;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.DecimalMin;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class PCStoreOrderOptionQuantityUpdateRequest {
+
+ @ApiModelProperty(value = "订单ID", required = true)
+ @NotNull(message = "订单ID不能为空")
+ private Long orderId;
+
+ @ApiModelProperty(value = "配置项列表", required = true)
+ @Valid
+ @NotNull(message = "配置项列表不能为空")
+ private List selectedOptions;
+
+ @Data
+ public static class SelectedOption {
+ @ApiModelProperty(value = "配置项ID", required = true)
+ @NotNull(message = "配置项ID不能为空")
+ private Long optionId;
+
+ @ApiModelProperty(value = "数量", required = true)
+ @NotNull(message = "数量不能为空")
+ @DecimalMin(value = "0.01", message = "数量必须大于0")
+ private BigDecimal quantity;
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/order/PCStoreOrderQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/order/PCStoreOrderQueryRequest.java
new file mode 100644
index 000000000..1b39fee47
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/order/PCStoreOrderQueryRequest.java
@@ -0,0 +1,44 @@
+package com.cool.store.request.order;
+
+import com.cool.store.common.PageBasicInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * PC端-标准店订单列表查询
+ */
+@Data
+public class PCStoreOrderQueryRequest extends PageBasicInfo {
+
+ @ApiModelProperty("订单号(模糊)")
+ private String orderNo;
+
+ @ApiModelProperty("加盟商姓名(模糊)")
+ private String partnerName;
+
+ @ApiModelProperty("手机号(模糊)")
+ private String partnerMobile;
+
+ @ApiModelProperty("品牌")
+ private String brand;
+
+ @ApiModelProperty("店型ID")
+ private Long storeTypeId;
+
+ @ApiModelProperty("下单开始时间")
+ private Date orderTimeStart;
+
+ @ApiModelProperty("下单结束时间")
+ private Date orderTimeEnd;
+
+ @ApiModelProperty("支付开始时间")
+ private Date payTimeStart;
+
+ @ApiModelProperty("支付结束时间")
+ private Date payTimeEnd;
+
+ @ApiModelProperty("订单状态")
+ private Integer status;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/store/PreAllocationQueryShopRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/store/PreAllocationQueryShopRequest.java
new file mode 100644
index 000000000..66786cdb9
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/store/PreAllocationQueryShopRequest.java
@@ -0,0 +1,18 @@
+package com.cool.store.request.store;
+
+import com.cool.store.common.PageBasicInfo;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Auther zx_szh
+ * @Date 2026/2/4 16:00
+ * @Version 1.0
+ */
+@Data
+public class PreAllocationQueryShopRequest extends PageBasicInfo {
+ @NotNull
+ Long shopId;
+ Integer allocationStatus;
+}
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/store/PreAllocationSaveRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/store/PreAllocationSaveRequest.java
new file mode 100644
index 000000000..a09aeb7af
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/store/PreAllocationSaveRequest.java
@@ -0,0 +1,37 @@
+package com.cool.store.request.store;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @Auther zx_szh
+ * @Date 2026/2/4 15:59
+ * @Version 1.0
+ */
+@Data
+public class PreAllocationSaveRequest {
+ @NotNull
+ @ApiModelProperty("订单ID")
+ Long orderId;
+ @NotNull
+ @ApiModelProperty("门店ID")
+ Long shopId;
+ @Valid
+ List items;
+ @Data public static class PreAllocationItem{
+ @ApiModelProperty("缴费类型")
+ String expenseType;
+ @ApiModelProperty("公司名称")
+ String payeeName;
+ @ApiModelProperty("公司COde")
+ String payeeCode;
+ @ApiModelProperty("分账金额")
+ @NotNull
+ BigDecimal payAmount;
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreOrderQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreOrderQueryRequest.java
new file mode 100644
index 000000000..63ac00a60
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreOrderQueryRequest.java
@@ -0,0 +1,46 @@
+package com.cool.store.request.store;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @Auther zx_szh
+ * @Date 2026/2/6 16:14
+ * @Version 1.0
+ */
+@Data
+public class StoreOrderQueryRequest {
+
+ @ApiModelProperty("订单号")
+ private String orderNo;
+
+ @ApiModelProperty("加盟商名字")
+ private String partnerName;
+
+ @ApiModelProperty("加盟商手机号")
+ private String partnerMobile;
+
+ @ApiModelProperty("品牌")
+ private String brand;
+
+ @ApiModelProperty("店型ID")
+ private Long storeTypeId;
+
+ @ApiModelProperty("订单下单开始时间")
+ private Date orderStartTime;
+
+ @ApiModelProperty("订单下单结束时间")
+ private Date orderEndTime;
+
+ @ApiModelProperty("支付开始时间")
+ private Date payStartTime;
+
+ @ApiModelProperty("支付结束时间")
+ private Date payEndTime;
+
+ @ApiModelProperty("订单状态")
+ private Integer orderStatus;
+
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreTypeOptionQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreTypeOptionQueryRequest.java
new file mode 100644
index 000000000..afeb3e4f9
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreTypeOptionQueryRequest.java
@@ -0,0 +1,13 @@
+package com.cool.store.request.store;
+
+import com.cool.store.common.PageBasicInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class StoreTypeOptionQueryRequest extends PageBasicInfo {
+ @ApiModelProperty("店型ID")
+ private Long storeTypeId;
+ @ApiModelProperty("配置项编码")
+ private String itemCode;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreTypeOptionSaveRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreTypeOptionSaveRequest.java
new file mode 100644
index 000000000..eaf9e299c
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreTypeOptionSaveRequest.java
@@ -0,0 +1,56 @@
+package com.cool.store.request.store;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 店型配置选项保存请求
+ */
+@Data
+@ApiModel(description = "店型配置选项保存请求")
+public class StoreTypeOptionSaveRequest {
+
+ @ApiModelProperty(value = "店型ID", required = true, example = "1")
+ @NotNull(message = "店型ID不能为空")
+ private Long storeTypeId;
+
+ @ApiModelProperty("店型可选项配置列表")
+ private List options;
+
+ @Data
+ @ApiModel(description = "店型选项项配置")
+ public static class StoreTypeOptionItemRequest {
+ @ApiModelProperty(value = "配置选项ID", required = true, example = "1001")
+ @NotNull(message = "选项ID不能为空")
+ private Long optionId;
+
+ @ApiModelProperty(value = "配置类型编码", example = "DECOR")
+ private String categoryCode;
+
+ @ApiModelProperty(value = "配置项编码", example = "DOOR")
+ private String itemCode;
+
+ @ApiModelProperty(value = "是否默认选中:0-否 1-是", example = "1")
+ private Integer isDefault;
+
+ @ApiModelProperty(value = "默认数量", example = "1.20")
+ private BigDecimal defaultQuantity;
+
+ @ApiModelProperty(value = "是否允许编辑数量:0-否 1-是", example = "1")
+ private Integer allowQuantityEdit;
+
+ @ApiModelProperty(value = "排序号", example = "10")
+ private Integer sortOrder;
+
+ @ApiModelProperty("店型内-配置项单价")
+ private BigDecimal optionPrice;
+
+ @ApiModelProperty("顶部预览图")
+ private String topPreviewImage;
+ }
+}
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreTypeQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreTypeQueryRequest.java
new file mode 100644
index 000000000..7dba47456
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreTypeQueryRequest.java
@@ -0,0 +1,21 @@
+package com.cool.store.request.store;
+
+import com.cool.store.common.PageBasicInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 店型分页查询
+ */
+@Data
+public class StoreTypeQueryRequest extends PageBasicInfo {
+
+ @ApiModelProperty("店型名称/店型编码")
+ private String keyword;
+
+ @ApiModelProperty("品牌")
+ private String brand;
+
+ @ApiModelProperty("是否启用")
+ private Boolean active;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreTypeUpdateRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreTypeUpdateRequest.java
new file mode 100644
index 000000000..343189b57
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/store/StoreTypeUpdateRequest.java
@@ -0,0 +1,85 @@
+package com.cool.store.request.store;
+
+import com.cool.store.common.InsertGroup;
+import com.cool.store.common.UpdateGroup;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * 店型新增/编辑请求
+ */
+@Data
+public class StoreTypeUpdateRequest {
+ @ApiModelProperty("主键ID")
+ @NotNull(message = "ID不能为空", groups = UpdateGroup.class)
+ private Long id;
+
+ @ApiModelProperty("店型名称")
+ @NotBlank(message = "店型名称不能为空", groups = {InsertGroup.class, UpdateGroup.class})
+ private String storeTypeName;
+
+ @ApiModelProperty("品牌")
+ private String brand;
+
+ @ApiModelProperty("门店类型")
+ private Integer storeType;
+
+ @ApiModelProperty("店型描述")
+ private String description;
+
+ @ApiModelProperty("主图")
+ private String imageUrl;
+
+ @ApiModelProperty("视频")
+ private String videoUrl;
+
+ @ApiModelProperty("VR视频")
+ private String vrVideoUrl;
+
+ @ApiModelProperty("加盟费-折扣后金额")
+ private BigDecimal franchiseFee;
+
+ @ApiModelProperty("原加盟费")
+ private BigDecimal originalFranchiseFee;
+
+ @ApiModelProperty("品牌使用费-折扣后金额")
+ private BigDecimal brandUsageFee;
+
+ @ApiModelProperty("原品牌使用费")
+ private BigDecimal originalBrandUsageFee;
+
+ @ApiModelProperty("管理费-折扣后金额")
+ private BigDecimal managementFee;
+
+ @ApiModelProperty("原管理费")
+ private BigDecimal originalManagementFee;
+
+ @ApiModelProperty("系统使用费")
+ private BigDecimal systemUsageFee;
+
+ @ApiModelProperty("原系统使用费")
+ private BigDecimal originalSystemUsageFee;
+
+ @ApiModelProperty("合同保证金")
+ private BigDecimal contractDeposit;
+
+ @ApiModelProperty("原合同保证金")
+ private BigDecimal originalContractDeposit;
+
+ @ApiModelProperty("首次订货费用")
+ private BigDecimal firstOrderFee;
+
+ @ApiModelProperty("设计费-折扣后费")
+ private BigDecimal designFee;
+
+ @ApiModelProperty("设计费")
+ private BigDecimal originalDesignFee;
+
+ @ApiModelProperty("排序")
+ private Integer sortOrder;
+
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationAdminQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationAdminQueryRequest.java
new file mode 100644
index 000000000..4f2cc668b
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationAdminQueryRequest.java
@@ -0,0 +1,29 @@
+package com.cool.store.request.visit;
+
+import com.cool.store.common.PageBasicInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class StoreVisitReservationAdminQueryRequest extends PageBasicInfo {
+
+ @ApiModelProperty("状态")
+ private Integer status;
+
+ @ApiModelProperty("姓名")
+ private String contactName;
+
+ @ApiModelProperty("手机号")
+ private String mobile;
+
+ @ApiModelProperty("服务人员")
+ private String serviceUserId;
+
+ @ApiModelProperty("预约时间起")
+ private Date visitStartTime;
+
+ @ApiModelProperty("预约时间止")
+ private Date visitEndTime;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationAssignServiceRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationAssignServiceRequest.java
new file mode 100644
index 000000000..aefc88e3b
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationAssignServiceRequest.java
@@ -0,0 +1,19 @@
+package com.cool.store.request.visit;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+public class StoreVisitReservationAssignServiceRequest {
+
+ @ApiModelProperty("预约ID")
+ @NotNull(message = "预约ID不能为空")
+ private Long id;
+
+ @ApiModelProperty("服务人员ID")
+ @NotBlank(message = "服务人员不能为空")
+ private String serviceUserId;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationCancelRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationCancelRequest.java
new file mode 100644
index 000000000..8812bdac4
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationCancelRequest.java
@@ -0,0 +1,19 @@
+package com.cool.store.request.visit;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+public class StoreVisitReservationCancelRequest {
+
+ @ApiModelProperty("预约ID")
+ @NotNull(message = "预约ID不能为空")
+ private Long id;
+
+ @ApiModelProperty("取消原因")
+ @NotBlank(message = "取消原因不能为空")
+ private String cancelReason;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationCreateRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationCreateRequest.java
new file mode 100644
index 000000000..4a4d50540
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationCreateRequest.java
@@ -0,0 +1,38 @@
+package com.cool.store.request.visit;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Future;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import java.util.Date;
+
+@Data
+public class StoreVisitReservationCreateRequest {
+
+ @ApiModelProperty("意向城市ID")
+ @NotNull(message = "意向开店城市不能为空")
+ private Long intentCityId;
+
+ @ApiModelProperty("联系人姓名")
+ @NotBlank(message = "联系人姓名不能为空")
+ private String contactName;
+
+ @ApiModelProperty("手机号")
+ @NotBlank(message = "手机号不能为空")
+ @Pattern(regexp = "^1\\d{10}$", message = "请输入正确的手机号")
+ private String mobile;
+
+ @ApiModelProperty("预约看店时间")
+ @NotNull(message = "预约看店时间不能为空")
+ @Future(message = "预约时间必须晚于当前时间")
+ private Date visitTime;
+
+ @ApiModelProperty("当前跟进人员")
+ private String currentFollowUser;
+
+ @ApiModelProperty("备注")
+ private String remark;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationIdRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationIdRequest.java
new file mode 100644
index 000000000..f9869ad6b
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationIdRequest.java
@@ -0,0 +1,14 @@
+package com.cool.store.request.visit;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+@Data
+public class StoreVisitReservationIdRequest {
+
+ @ApiModelProperty("预约ID")
+ @NotNull(message = "预约ID不能为空")
+ private Long id;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationMyQueryRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationMyQueryRequest.java
new file mode 100644
index 000000000..3297c1b6d
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/visit/StoreVisitReservationMyQueryRequest.java
@@ -0,0 +1,14 @@
+package com.cool.store.request.visit;
+
+import com.cool.store.common.PageBasicInfo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Pattern;
+
+@Data
+public class StoreVisitReservationMyQueryRequest extends PageBasicInfo {
+
+ private Integer status;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/BatchTransferRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/BatchTransferRequest.java
new file mode 100644
index 000000000..e50db9d26
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/wallet/BatchTransferRequest.java
@@ -0,0 +1,48 @@
+package com.cool.store.request.wallet;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @Auther zx_szh
+ * @Date 2026/2/5 13:48
+ * @Version 1.0
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class BatchTransferRequest {
+
+ private String outStoreId;
+
+ private String payPwd;
+
+ private List transArray;
+
+ @Data
+ @AllArgsConstructor
+ @NoArgsConstructor
+ public static class TransDataRequest {
+
+ @ApiModelProperty("业务系统付款单号(如 CRM 单号),业务系统单号")
+ private String reqNo;
+ @ApiModelProperty("费用科目")
+ private Integer feeItemId;
+ @ApiModelProperty("公司编号")
+ private String companyCode;
+ @ApiModelProperty("公司编号绑定多个账户时,必传")
+ private String companyAccountCode;
+ @ApiModelProperty("金额(元)")
+ private String amount;
+ @ApiModelProperty("备注")
+ private String remark;
+
+ }
+
+
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptCallBackRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptCallBackRequest.java
index ffa9291ed..bbca9f6ca 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptCallBackRequest.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptCallBackRequest.java
@@ -21,4 +21,9 @@ public class ReceiptCallBackRequest {
@Max(1)@Min(0)@NotNull
private Integer claimStatus;
+ /**
+ * 支付方式,线下支付-0,平安钱包支付-2
+ */
+ private Integer payWay;
+
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptRequest.java
index d9c5877dc..b0141ce26 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptRequest.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/xgj/ReceiptRequest.java
@@ -2,6 +2,7 @@ package com.cool.store.request.xgj;
import com.cool.store.entity.FranchiseFeeDO;
import com.cool.store.entity.LinePayDO;
+import com.cool.store.entity.fees.WalletPayInfoDO;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
@@ -76,5 +77,18 @@ public class ReceiptRequest {
this.setClaimStatus(payDO.getXgjClaimStatus());
this.setDeleted(payDO.getDeleted()?1:0);
}
+
+ public ReceiptRequest(Long shopId, Integer billId, WalletPayInfoDO payDO, Integer joinBrand){
+ this.shopId = shopId;
+ this.billId = billId;
+ this.receiptId = payDO.getPayNo();
+ this.payer1 = payDO.getPayUserName();
+ this.transactionNumber = payDO.getTradeId();
+ this.paymentAmount = payDO.getPayAmount();
+ this.claimStatus = payDO.getClaimStatus();
+ this.deleted = 0;
+ this.payWay = 2;
+ this.joinBrand = joinBrand;
+ }
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/BranchShopDetailResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/BranchShopDetailResponse.java
index 48c3575d2..cd949f5d4 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/response/BranchShopDetailResponse.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/response/BranchShopDetailResponse.java
@@ -92,5 +92,7 @@ public class BranchShopDetailResponse {
@ApiModelProperty("所属管理区域name")
private String managerRegionName;
+ private Integer useStandardStore;
+
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/BranchShopResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/BranchShopResponse.java
index 17e28fb73..00d31df0d 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/response/BranchShopResponse.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/response/BranchShopResponse.java
@@ -69,6 +69,9 @@ public class BranchShopResponse {
@ApiModelProperty("招商所属大区名称")
private String investRegionName;
+ @ApiModelProperty("使用标准店 0-否 1-是")
+ private Integer useStandardStore;
+
public void setDays() {
if (this.openingActivityEndTime==null){
long between = ChronoUnit.SECONDS.between(this.createTime.toInstant(), new Date().toInstant());
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeeResponse.java b/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeeResponse.java
index aedd7e18c..0028073cb 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeeResponse.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/response/FranchiseFeeResponse.java
@@ -2,12 +2,14 @@ package com.cool.store.response;
import com.cool.store.entity.FranchiseFeeDO;
import com.cool.store.entity.LinePayDO;
+import com.cool.store.vo.fees.PayeeBankConfigSimpleVO;
+import com.cool.store.vo.fees.ShopAllocationInfoVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;
+import java.util.List;
@Data
public class FranchiseFeeResponse {
@@ -66,6 +68,21 @@ public class FranchiseFeeResponse {
@ApiModelProperty("收银费(系统费)")
private String cashierFee;
+ @ApiModelProperty("支付方式,1线下支付 2平安钱包支付")
+ private Integer payType;
+
+ @ApiModelProperty("是否退款,0否1是")
+ private Integer isRefund;
+
+ @ApiModelProperty("线下收款银行")
+ private PayeeBankConfigSimpleVO bankConfig;
+
+ @ApiModelProperty("平安钱包分账信息")
+ private List shopAllocationInfoList;
+
+ @ApiModelProperty("门店id")
+ private String storeId;
+
@Data
public static class LinePay{
@ApiModelProperty("")
@@ -202,6 +219,8 @@ public class FranchiseFeeResponse {
franchiseFeeResponse.setXgjRemainderPayableAmount(franchiseFeeDO.getXgjRemainderPayableAmount());
franchiseFeeResponse.setXgjFeesPaid(franchiseFeeDO.getXgjFeesPaid());
franchiseFeeResponse.setCashierFee(franchiseFeeDO.getCashierFee());
+ franchiseFeeResponse.setPayType(franchiseFeeDO.getPayType());
+ franchiseFeeResponse.setIsRefund(franchiseFeeDO.getIsRefund());
return franchiseFeeResponse;
}
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigItemBaseInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigItemBaseInfoVO.java
new file mode 100644
index 000000000..6dd0c4008
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigItemBaseInfoVO.java
@@ -0,0 +1,17 @@
+package com.cool.store.vo.config;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Auther zx_szh
+ * @Date 2026/3/10 10:47
+ * @Version 1.0
+ */
+@Data
+public class ConfigItemBaseInfoVO {
+ @ApiModelProperty("配置项编码")
+ private String itemCode;
+ @ApiModelProperty("配置项目名称")
+ private String itemName;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigItemCategoryBaseInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigItemCategoryBaseInfoVO.java
new file mode 100644
index 000000000..cf685bef0
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigItemCategoryBaseInfoVO.java
@@ -0,0 +1,20 @@
+package com.cool.store.vo.config;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Auther zx_szh
+ * @Date 2026/3/10 10:44
+ * @Version 1.0
+ */
+@Data
+public class ConfigItemCategoryBaseInfoVO {
+
+ @ApiModelProperty("大类编码")
+ private String categoryCode;
+ @ApiModelProperty("大类名称")
+ private String categoryName;
+
+
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigItemCategoryVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigItemCategoryVO.java
new file mode 100644
index 000000000..a8127f774
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigItemCategoryVO.java
@@ -0,0 +1,31 @@
+package com.cool.store.vo.config;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ConfigItemCategoryVO {
+
+ @ApiModelProperty("ID")
+ private Long id;
+ @ApiModelProperty("大类编码")
+ private String categoryCode;
+ @ApiModelProperty("大类名称")
+ private String categoryName;
+ @ApiModelProperty("排序")
+ private Integer sortNo;
+ @ApiModelProperty("图片 多张逗号隔开")
+ private String imageUrl;
+ @ApiModelProperty("视频")
+ private String videoUrl;
+ @ApiModelProperty("状态 1启用 0-非启用")
+ private Integer status;
+ @ApiModelProperty("备注")
+ private String remark;
+ private String createdUserId;
+ private Date createdTime;
+ private String updatedUserId;
+ private Date updatedTime;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigItemVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigItemVO.java
new file mode 100644
index 000000000..844247758
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigItemVO.java
@@ -0,0 +1,23 @@
+package com.cool.store.vo.config;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ConfigItemVO {
+
+ private Long id;
+ private String itemCode;
+ private String itemName;
+ private Long categoryId;
+ private String categoryCode;
+ private String categoryName;
+ private Integer sortNo;
+ private Integer status;
+ private String remark;
+ private String createdUserId;
+ private Date createdTime;
+ private String updatedUserId;
+ private Date updatedTime;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigOptionTreeVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigOptionTreeVO.java
new file mode 100644
index 000000000..d803eb482
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigOptionTreeVO.java
@@ -0,0 +1,33 @@
+package com.cool.store.vo.config;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 配置选项三层结构
+ */
+@Data
+public class ConfigOptionTreeVO {
+
+ /** 配置类型编码 */
+ private String categoryCode;
+
+ /** 配置类型名称(字典) */
+ private String categoryName;
+
+ /** 配置项列表 */
+ private List items;
+
+ @Data
+ public static class ConfigItemVO {
+ /** 配置项编码 */
+ private String itemCode;
+
+ /** 配置项名称(字典) */
+ private String itemName;
+
+ /** 选项列表 */
+ private List options;
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigOptionVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigOptionVO.java
new file mode 100644
index 000000000..83587aaea
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/config/ConfigOptionVO.java
@@ -0,0 +1,26 @@
+package com.cool.store.vo.config;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class ConfigOptionVO {
+ private Long id;
+ private String categoryCode;
+ private String itemCode;
+ private String optionCode;
+ private String optionName;
+ private String optionDescription;
+ private BigDecimal optionPrice;
+ private BigDecimal originalOptionPrice;
+ private String optionUnit;
+ private String imageUrl;
+ private String videoUrl;
+ private Boolean active;
+ private Integer sortOrder;
+ private String optionRemark;
+ private Date createTime;
+ private Date updateTime;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/dict/DictColumnSimpleVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/dict/DictColumnSimpleVO.java
index 296a3ebc3..0e2f848db 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/vo/dict/DictColumnSimpleVO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/dict/DictColumnSimpleVO.java
@@ -33,6 +33,10 @@ public class DictColumnSimpleVO {
vo.setColumnName(columnDO.getColumnName());
vo.setColumnCode(columnDO.getColumnCode());
vo.setTableCode(tableCode);
+ vo.setRemark(columnDO.getRemark());
return vo;
}
+
+ @ApiModelProperty("备注")
+ private String remark;
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/FeeStandardConfigVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/FeeStandardConfigVO.java
new file mode 100644
index 000000000..16720ecd3
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/FeeStandardConfigVO.java
@@ -0,0 +1,50 @@
+package com.cool.store.vo.fees;
+
+import com.cool.store.annotation.DictField;
+import com.cool.store.enums.master.BrandTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 加盟费用标准收费额配置VO
+ */
+@Data
+public class FeeStandardConfigVO {
+
+ @ApiModelProperty("id")
+ private Long id;
+
+ @ApiModelProperty("加盟品牌")
+ private Integer joinBrand;
+
+ @ApiModelProperty("加盟品牌名称")
+ private String joinBrandName;
+
+ @ApiModelProperty("费用类型")
+ private String expenseType;
+
+ @ApiModelProperty("费用类型名称")
+ @DictField
+ private String expenseTypeName;
+
+ @ApiModelProperty("金额")
+ private BigDecimal amount;
+
+ @ApiModelProperty("创建人id")
+ private String createUserId;
+
+ @ApiModelProperty("创建人名称")
+ private String createUserName;
+
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+
+ public String getJoinBrandName() {
+ return BrandTypeEnum.getDescByCode(this.joinBrand);
+ }
+}
+
+
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/InvestDivisionRegionVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/InvestDivisionRegionVO.java
new file mode 100644
index 000000000..c410c1073
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/InvestDivisionRegionVO.java
@@ -0,0 +1,25 @@
+package com.cool.store.vo.fees;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ *
+ * 招商分部VO
+ *
+ *
+ * @author wangff
+ * @since 2026/1/27
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class InvestDivisionRegionVO {
+ @ApiModelProperty("招商分部id")
+ private Long investDivisionId;
+
+ @ApiModelProperty("招商分部名称")
+ private String investDivisionName;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/PayeeBankConfigSimpleVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/PayeeBankConfigSimpleVO.java
new file mode 100644
index 000000000..dad11884c
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/PayeeBankConfigSimpleVO.java
@@ -0,0 +1,27 @@
+package com.cool.store.vo.fees;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * 线下收款银行简单信息VO
+ *
+ *
+ * @author wangff
+ * @since 2026/1/29
+ */
+@Data
+public class PayeeBankConfigSimpleVO {
+ @ApiModelProperty("收款公司名称")
+ private String payeeName;
+
+ @ApiModelProperty("收款账户")
+ private String payeeAccount;
+
+ @ApiModelProperty("收款银行")
+ private String payeeBank;
+
+ @ApiModelProperty("收款银行开户行")
+ private String payeeBankBranch;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/PayeeBankConfigVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/PayeeBankConfigVO.java
new file mode 100644
index 000000000..efb8a5408
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/PayeeBankConfigVO.java
@@ -0,0 +1,61 @@
+package com.cool.store.vo.fees;
+
+import com.cool.store.enums.master.BrandTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 线下收款银行配置VO
+ */
+@Data
+public class PayeeBankConfigVO {
+ @ApiModelProperty("id")
+ private Long id;
+
+ @ApiModelProperty("加盟品牌")
+ private Integer joinBrand;
+
+ @ApiModelProperty("加盟品牌")
+ private String joinBrandName;
+
+ @ApiModelProperty("招商分部id,0表示全部")
+ private Long investDivisionId;
+
+ @ApiModelProperty("招商分部")
+ private String investDivisionName;
+
+ @ApiModelProperty("付款方式,同缴纳加盟费支付方式")
+ private Integer payType;
+
+ @ApiModelProperty("收款公司名称")
+ private String payeeName;
+
+ @ApiModelProperty("收款公司code")
+ private String payeeCode;
+
+ @ApiModelProperty("收款账户")
+ private String payeeAccount;
+
+ @ApiModelProperty("收款银行")
+ private String payeeBank;
+
+ @ApiModelProperty("收款银行开户行")
+ private String payeeBankBranch;
+
+ @ApiModelProperty("创建人id")
+ private String createUserId;
+
+ @ApiModelProperty("创建人名称")
+ private String createUserName;
+
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+
+ public String getJoinBrandName() {
+ return BrandTypeEnum.getDescByCode(this.joinBrand);
+ }
+}
+
+
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/ShopAllocationInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/ShopAllocationInfoVO.java
new file mode 100644
index 000000000..129fd0e77
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/ShopAllocationInfoVO.java
@@ -0,0 +1,43 @@
+package com.cool.store.vo.fees;
+
+import com.cool.store.annotation.DictField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ *
+ * 平安钱包分账信息VO
+ *
+ *
+ * @author wangff
+ * @since 2026/1/29
+ */
+@Data
+public class ShopAllocationInfoVO {
+ @ApiModelProperty("id")
+ private Long id;
+
+ @ApiModelProperty("费用类型")
+ private String expenseType;
+
+ @ApiModelProperty("费用类型名称")
+ @DictField
+ private String expenseTypeName;
+
+ @ApiModelProperty("收款公司名称")
+ private String payeeName;
+
+ @ApiModelProperty("收款公司code")
+ private String payeeCode;
+
+ @ApiModelProperty("金额")
+ private BigDecimal amount;
+
+ @ApiModelProperty("分账状态,1已分账 2分账失败 3待分账")
+ private Integer status;
+
+ @ApiModelProperty("分账失败原因")
+ private String failReason;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/ShopAllocationSimpleVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/ShopAllocationSimpleVO.java
new file mode 100644
index 000000000..11577bf82
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/ShopAllocationSimpleVO.java
@@ -0,0 +1,41 @@
+package com.cool.store.vo.fees;
+
+import com.cool.store.annotation.DictField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ *
+ * 平安钱包分账简单信息VO
+ *
+ *
+ * @author wangff
+ * @since 2026/1/29
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ShopAllocationSimpleVO {
+ @ApiModelProperty("id")
+ private Long id;
+
+ @ApiModelProperty("费用类型")
+ private String expenseType;
+
+ @ApiModelProperty("费用类型名称")
+ @DictField
+ private String expenseTypeName;
+
+ @ApiModelProperty("金额")
+ private BigDecimal amount;
+
+ @ApiModelProperty("分账状态,1已分账 2分账失败 3待分账")
+ private Integer status;
+
+ @ApiModelProperty("分组名称")
+ private String groupName;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/WalletAllocationCompanyVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/WalletAllocationCompanyVO.java
new file mode 100644
index 000000000..9f9dd7839
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/WalletAllocationCompanyVO.java
@@ -0,0 +1,25 @@
+package com.cool.store.vo.fees;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ *
+ * 收款公司VO
+ *
+ *
+ * @author wangff
+ * @since 2026/1/27
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WalletAllocationCompanyVO {
+ @ApiModelProperty("收款公司名称")
+ private String payeeName;
+
+ @ApiModelProperty("收款公司code")
+ private String payeeCode;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/WalletAllocationConfigVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/WalletAllocationConfigVO.java
new file mode 100644
index 000000000..7b9934e39
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/WalletAllocationConfigVO.java
@@ -0,0 +1,56 @@
+package com.cool.store.vo.fees;
+
+import com.cool.store.annotation.DictField;
+import com.cool.store.enums.master.BrandTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 分账配置VO
+ *
+ * @author system
+ */
+@Data
+public class WalletAllocationConfigVO {
+ @ApiModelProperty("配置id")
+ private Long id;
+
+ @ApiModelProperty("加盟品牌:1-正新鸡排,2-正新三明治,3-正烧记,4-大鼓米线,5-串小妹,6-茂掌柜")
+ private Integer joinBrand;
+
+ @ApiModelProperty("加盟品牌名称")
+ private String joinBrandName;
+
+ @ApiModelProperty("招商分部id,0表示全部")
+ private Long investDivisionId;
+
+ @ApiModelProperty("招商分部名称")
+ private String investDivisionName;
+
+ @ApiModelProperty("费用类型")
+ private String expenseType;
+
+ @ApiModelProperty("费用类型名称")
+ @DictField
+ private String expenseTypeName;
+
+ @ApiModelProperty("分账公司配置列表")
+ private List companyList;
+
+ @ApiModelProperty("创建人id")
+ private String createUserId;
+
+ @ApiModelProperty("创建人名称")
+ private String createUserName;
+
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+
+ public String getJoinBrandName() {
+ return BrandTypeEnum.getDescByCode(this.joinBrand);
+ }
+}
+
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/WalletPayInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/WalletPayInfoVO.java
new file mode 100644
index 000000000..2678c89ed
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/fees/WalletPayInfoVO.java
@@ -0,0 +1,65 @@
+package com.cool.store.vo.fees;
+
+import com.cool.store.enums.fees.AllocationPayStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ *
+ * 钱包加盟缴费信息VO
+ *
+ *
+ * @author wangff
+ * @since 2026/2/3
+ */
+@Data
+public class WalletPayInfoVO {
+ @ApiModelProperty("缴费信息id")
+ private Long id;
+
+ @ApiModelProperty("付款单号")
+ private String payNo;
+
+ @ApiModelProperty("付款人")
+ private String payUserName;
+
+ @ApiModelProperty("付款金额")
+ private BigDecimal payAmount;
+
+ @ApiModelProperty("交易流水号")
+ private String tradeId;
+
+ @ApiModelProperty("付款状态,1已支付、2支付失败 3支付中")
+ private Integer payStatus;
+
+ @ApiModelProperty("付款状态名称")
+ private String payStatusName;
+
+ @ApiModelProperty("支付时间")
+ private Date payTime;
+
+ @ApiModelProperty("认领状态0-待认领,1-已认领")
+ private Integer claimStatus;
+
+ @ApiModelProperty("费用类型列表")
+ private String expenseTypes;
+
+ @ApiModelProperty("费用类型名称")
+ private String expenseTypeName;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+ @ApiModelProperty("创建人id")
+ private String createUserId;
+
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+
+ public String getPayStatusName() {
+ return AllocationPayStatusEnum.getDescByStatus(this.payStatus);
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/modify/ModifyRecordVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/modify/ModifyRecordVO.java
new file mode 100644
index 000000000..e3f3459c8
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/modify/ModifyRecordVO.java
@@ -0,0 +1,27 @@
+package com.cool.store.vo.modify;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+/**
+ *
+ * 业务修改记录VO
+ *
+ *
+ * @author wangff
+ * @since 2026/1/27
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ModifyRecordVO {
+ @ApiModelProperty("修改人")
+ private String updateUserName;
+
+ @ApiModelProperty("修改时间")
+ private Date updateTime;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreOrderDetailVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreOrderDetailVO.java
new file mode 100644
index 000000000..58f376e7a
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreOrderDetailVO.java
@@ -0,0 +1,181 @@
+package com.cool.store.vo.order;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.persistence.Column;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class MiniStoreOrderDetailVO {
+
+ @ApiModelProperty("下单信息")
+ private OrderInfoVO orderInfo;
+
+ @ApiModelProperty("付款信息")
+ private PayInfoVO payInfo;
+
+ @ApiModelProperty("加盟类费用明细")
+ private FeeInfoVO feeInfo;
+
+ @ApiModelProperty("装修与设备选型信息(按配置类型/配置项分组)")
+ private List configSnapshot;
+
+ @Data
+ public static class OrderInfoVO {
+
+ @ApiModelProperty("门店ID")
+ private Long shopId;
+
+ private String storeId;
+
+ @ApiModelProperty("订单ID")
+ private Long orderId ;
+
+ @ApiModelProperty("门店订购订单号")
+ private String orderNo;
+
+ @ApiModelProperty(name = "门店类型ID")
+ private Long storeTypeId;
+
+ @ApiModelProperty("门店类型")
+ private Integer storeType;
+
+ @ApiModelProperty("下单时间")
+ private Date createTime;
+
+ @ApiModelProperty("状态:0待确认/1已确认/2已取消/3已支付")
+ private Integer status;
+
+ @ApiModelProperty("加盟商姓名")
+ private String partnerName;
+
+ @ApiModelProperty("手机号")
+ private String partnerMobile;
+
+ @ApiModelProperty("招商经理")
+ private String investmentManager;
+
+ @ApiModelProperty("招商经理名称")
+ private String investmentManagerName;
+ }
+
+ @Data
+ public static class PayInfoVO {
+ @ApiModelProperty("订单总额")
+ private BigDecimal totalAmount;
+
+ @ApiModelProperty("已支付金额")
+ private BigDecimal paidAmount;
+
+ @ApiModelProperty("未支付金额")
+ private BigDecimal unpaidAmount;
+ }
+
+ @Data
+ public static class FeeInfoVO {
+ @ApiModelProperty("加盟费")
+ private BigDecimal franchiseFee;
+
+ @ApiModelProperty("品牌使用费")
+ private BigDecimal brandUsageFee;
+
+ @ApiModelProperty("管理费")
+ private BigDecimal managementFee;
+
+ @ApiModelProperty("系统使用费")
+ private BigDecimal systemUsageFee;
+
+ @ApiModelProperty("合同保证金")
+ private BigDecimal contractDeposit;
+
+ @ApiModelProperty("首次订货费用")
+ private BigDecimal firstOrderFee;
+
+ @ApiModelProperty("加盟类费用总计")
+ private BigDecimal storeFixedAmount;
+
+ @ApiModelProperty("设计费")
+ private BigDecimal designFee;
+
+ @ApiModelProperty("原设计费")
+ private BigDecimal originalDesignFee;
+
+ @ApiModelProperty("原加盟费")
+ private BigDecimal originalFranchiseFee;
+
+ @ApiModelProperty("原品牌使用费")
+ private BigDecimal originalBrandUsageFee;
+
+ @ApiModelProperty("原管理费")
+ private BigDecimal originalManagementFee;
+
+ @ApiModelProperty("原系统使用费")
+ private BigDecimal originalSystemUsageFee;
+
+ @ApiModelProperty("原合同保证金")
+ private BigDecimal originalContractDeposit;
+
+ @ApiModelProperty("原首次订货费用")
+ private BigDecimal originalFirstOrderFee;
+
+ @ApiModelProperty("原加盟类费用总计")
+ private BigDecimal originalStoreFixedAmount;
+ }
+
+ @Data
+ public static class CategoryVO {
+ @ApiModelProperty("配置类型编码")
+ private String categoryCode;
+
+ @ApiModelProperty("配置类型名称")
+ private String categoryName;
+
+ @ApiModelProperty("配置项列表")
+ private List items;
+ }
+
+ @Data
+ public static class ItemVO {
+ @ApiModelProperty("配置项编码")
+ private String itemCode;
+
+ @ApiModelProperty("配置项名称")
+ private String itemName;
+
+ @ApiModelProperty("选项列表")
+ private List options;
+ }
+
+ @Data
+ public static class OptionVO {
+ @ApiModelProperty("选项ID")
+ private Long optionId;
+
+ @ApiModelProperty("选项名称")
+ private String optionName;
+
+ @ApiModelProperty("单价")
+ private BigDecimal optionPrice;
+
+ @ApiModelProperty("原价")
+ private BigDecimal originalOptionPrice;
+
+ @ApiModelProperty("数量")
+ private BigDecimal quantity;
+
+ @ApiModelProperty("选项名称")
+ private String optionUnit;
+
+ @ApiModelProperty("小计")
+ private BigDecimal amount;
+
+ @ApiModelProperty("原价小计")
+ private BigDecimal originalAmount;
+
+ @ApiModelProperty("图片")
+ private String imageUrl;
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreOrderListVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreOrderListVO.java
new file mode 100644
index 000000000..9078e4797
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreOrderListVO.java
@@ -0,0 +1,50 @@
+package com.cool.store.vo.order;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.persistence.Column;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class MiniStoreOrderListVO {
+
+ @ApiModelProperty("订单ID")
+ private Long id;
+
+ @ApiModelProperty("订单号")
+ private String orderNo;
+
+ private Long storeTypeId;
+
+ @ApiModelProperty("门店ID")
+ private Long shopId;
+
+ @ApiModelProperty("门店StoreID")
+ private String storeId;
+
+ @ApiModelProperty("门店名称")
+ private String shopName;
+
+ @ApiModelProperty("店型名称")
+ private String storeTypeName;
+
+ @ApiModelProperty("订单状态 ")
+ private Integer status;
+
+ @ApiModelProperty("订单总额")
+ private BigDecimal totalAmount;
+
+ @ApiModelProperty("已支付")
+ private BigDecimal paidAmount;
+
+ @ApiModelProperty("待支付")
+ private BigDecimal unpaidAmount;
+
+ @ApiModelProperty("下单时间")
+ private Date createTime;
+
+ @ApiModelProperty("图片")
+ private String imageUrl;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreWishlistDetailVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreWishlistDetailVO.java
new file mode 100644
index 000000000..2037af200
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreWishlistDetailVO.java
@@ -0,0 +1,109 @@
+package com.cool.store.vo.order;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class MiniStoreWishlistDetailVO {
+
+ @ApiModelProperty("店型ID")
+ private Long storeTypeId;
+
+ private String storeTypeName;
+
+ @ApiModelProperty("版本号")
+ private String versionNo;
+
+ @ApiModelProperty("总金额")
+ private BigDecimal totalAmount;
+
+ private FeeInfoVO feeInfoVO;
+
+ @ApiModelProperty("配置项列表")
+ private List options;
+
+ @Data
+ public static class OptionVO {
+ @ApiModelProperty("配置项ID")
+ private Long optionId;
+
+ private String categoryCode ;
+
+ private String categoryName;
+
+ private String itemCode ;
+
+ private String itemName;
+
+ @ApiModelProperty("数量")
+ private BigDecimal quantity;
+
+ @ApiModelProperty("选项名称")
+ private String optionName;
+
+ @ApiModelProperty("单价")
+ private BigDecimal optionPrice;
+
+ private BigDecimal originalOptionPrice;
+
+ @ApiModelProperty("总价")
+ private BigDecimal totalPrice;
+
+ @ApiModelProperty("图片")
+ private String imageUrl;
+ }
+
+ @Data
+ public static class FeeInfoVO {
+ @ApiModelProperty("加盟费")
+ private BigDecimal franchiseFee;
+
+ @ApiModelProperty("品牌使用费")
+ private BigDecimal brandUsageFee;
+
+ @ApiModelProperty("管理费")
+ private BigDecimal managementFee;
+
+ @ApiModelProperty("系统使用费")
+ private BigDecimal systemUsageFee;
+
+ @ApiModelProperty("合同保证金")
+ private BigDecimal contractDeposit;
+
+ @ApiModelProperty("首次订货费用")
+ private BigDecimal firstOrderFee;
+
+ @ApiModelProperty("加盟类费用总计")
+ private BigDecimal storeFixedAmount;
+
+ @ApiModelProperty("设计费")
+ private BigDecimal designFee;
+
+ @ApiModelProperty("原设计费")
+ private BigDecimal originalDesignFee;
+
+ @ApiModelProperty("原加盟费")
+ private BigDecimal originalFranchiseFee;
+
+ @ApiModelProperty("原品牌使用费")
+ private BigDecimal originalBrandUsageFee;
+
+ @ApiModelProperty("原管理费")
+ private BigDecimal originalManagementFee;
+
+ @ApiModelProperty("原系统使用费")
+ private BigDecimal originalSystemUsageFee;
+
+ @ApiModelProperty("原合同保证金")
+ private BigDecimal originalContractDeposit;
+
+ @ApiModelProperty("原首次订货费用")
+ private BigDecimal originalFirstOrderFee;
+
+ @ApiModelProperty("原加盟类费用总计")
+ private BigDecimal originalStoreFixedAmount;
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreWishlistListVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreWishlistListVO.java
new file mode 100644
index 000000000..f9adbbd71
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/MiniStoreWishlistListVO.java
@@ -0,0 +1,73 @@
+package com.cool.store.vo.order;
+
+import com.cool.store.enums.FranchiseBrandEnum;
+import com.cool.store.enums.StoreTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class MiniStoreWishlistListVO {
+
+ @ApiModelProperty("店型ID")
+ private Long storeTypeId;
+
+ @ApiModelProperty("品牌")
+ private String brand;
+
+ @ApiModelProperty("品牌名称")
+ private String brandName;
+
+ @ApiModelProperty("店型名称")
+ private String storeTypeName;
+
+ @ApiModelProperty("门店类型")
+ private Integer storeType;
+
+ @ApiModelProperty("门店类型名称")
+ private String typeName;
+
+ @ApiModelProperty("主图")
+ private String imageUrl;
+
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+
+ @ApiModelProperty("总额")
+ private BigDecimal totalAmount;
+
+ @ApiModelProperty("版本号")
+ private String versionNo;
+
+ @ApiModelProperty("配置项列表")
+ private List options;
+
+ public String getTypeName() {
+ return StoreTypeEnum.getMessage(this.storeType);
+ }
+
+ public String getBrandName() {
+ return FranchiseBrandEnum.getDescByCode(this.brand);
+ }
+
+ @Data
+ public static class OptionVO {
+ @ApiModelProperty("配置项ID")
+ private Long optionId;
+
+ @ApiModelProperty("数量")
+ private BigDecimal quantity;
+
+ @ApiModelProperty("选项名称")
+ private String optionName;
+
+ @ApiModelProperty("单价")
+ private BigDecimal optionPrice;
+
+ @ApiModelProperty("图片")
+ private String imageUrl;
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/order/PCStoreOrderListVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/PCStoreOrderListVO.java
new file mode 100644
index 000000000..1fc404842
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/PCStoreOrderListVO.java
@@ -0,0 +1,117 @@
+package com.cool.store.vo.order;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.format.DateTimeFormat;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.cool.store.annotation.Excel;
+import com.cool.store.enums.FranchiseBrandEnum;
+import com.cool.store.enums.StoreTypeEnum;
+import com.cool.store.enums.order.StoreOrderStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * PC端-标准店订单列表VO
+ */
+@Data
+public class PCStoreOrderListVO {
+
+ @ApiModelProperty("订单ID")
+ @ExcelIgnore
+ private Long orderId;
+
+ @ExcelProperty(value = "订单号", order = 1)
+ @ApiModelProperty("订单号")
+ @ColumnWidth(30)
+ private String orderNo;
+
+ @ExcelProperty(value = "加盟商姓名", order = 2)
+ @ApiModelProperty("加盟商姓名")
+ private String partnerName;
+
+ @ExcelProperty(value = "手机号", order = 3)
+ @ApiModelProperty("加盟商手机号")
+ private String partnerMobile;
+
+ @ApiModelProperty("门店名称")
+ @ExcelProperty(value = "门店名称", order = 3)
+ private String shopName;
+
+ @ApiModelProperty("门店编码")
+ @ExcelProperty(value = "门店编码", order = 3)
+ private String shopCode;
+
+ @ApiModelProperty("品牌")
+ @ExcelIgnore
+ private String brand;
+
+ @ExcelProperty(value = "品牌", order = 4)
+ @ApiModelProperty("品牌名称")
+ private String brandName;
+
+
+ @ApiModelProperty("门店类型")
+ @ExcelIgnore
+ private Integer storeType;
+
+ @ExcelProperty(value = "门店类型名称", order = 5)
+ @ApiModelProperty("门店类型名称")
+ private String storeTypeName;
+
+ @ExcelProperty(value = "店型名称", order = 6)
+ @ApiModelProperty("店型名称")
+ private String name;
+
+ @ExcelProperty(value = "订单总额", order = 7)
+ @ApiModelProperty("订单总额")
+ private BigDecimal totalAmount;
+
+ @ExcelProperty(value = "下单时间", order = 8)
+ @ApiModelProperty("下单时间")
+ @DateTimeFormat(value = "yyyy-MM-dd HH:mm:ss")
+ private Date orderTime;
+
+ @ExcelProperty(value = "加盟类费用总额", order = 9)
+ @ApiModelProperty("加盟类费用总额")
+ private BigDecimal storeFixedAmount;
+
+ @ExcelProperty(value = "已支付金额", order = 7)
+ @ApiModelProperty("已支付金额")
+ private BigDecimal paidAmount;
+
+ @ExcelProperty(value = "未支付金额", order = 8)
+ @ApiModelProperty("未支付金额")
+ private BigDecimal unpaidAmount;
+
+ @ApiModelProperty("订单状态")
+ @ExcelIgnore
+ private Integer status;
+
+ @ExcelProperty(value = "订单状态", order = 9)
+ @ApiModelProperty("订单状态")
+ private String statusName;
+
+ public String getBrandName() {
+ FranchiseBrandEnum enumByCode = FranchiseBrandEnum.getEnumByCode(this.brand);
+ if (enumByCode==null){
+ return null;
+ }
+ return enumByCode.getDesc();
+ }
+
+ public String getStoreTypeName() {
+ return StoreTypeEnum.getMessage(this.getStoreType());
+ }
+
+ public String getStatusName() {
+ StoreOrderStatusEnum enumByCode = StoreOrderStatusEnum.of(this.status);
+ if (enumByCode==null){
+ return null;
+ }
+ return enumByCode.getDesc();
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/order/PreAllocationRecordVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/PreAllocationRecordVO.java
new file mode 100644
index 000000000..2fa09362a
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/PreAllocationRecordVO.java
@@ -0,0 +1,54 @@
+package com.cool.store.vo.order;
+
+import com.cool.store.annotation.DictField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class PreAllocationRecordVO {
+
+ @ApiModelProperty("主键")
+ private Long id;
+
+ @ApiModelProperty("订单ID")
+ private Long orderId;
+
+ @ApiModelProperty("门店ID")
+ private Long shopId;
+
+ @ApiModelProperty("付款单号")
+ private String payNo;
+
+ @ApiModelProperty("费用类型")
+ private String expenseType;
+
+ @ApiModelProperty("费用类型名称")
+ @DictField
+ private String expenseTypeName;
+
+ @ApiModelProperty("收款公司名称")
+ private String payeeName;
+
+ @ApiModelProperty("收款公司code")
+ private String payeeCode;
+
+ @ApiModelProperty("付款金额")
+ private BigDecimal payAmount;
+
+ @ApiModelProperty("分账状态:0-待分账,1-已分账")
+ private Integer allocationStatus;
+
+ @ApiModelProperty("分账状态:0-待认领,1-已认领")
+ private Integer claimStatus;
+
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+
+ @ApiModelProperty("更新时间")
+ private Date updateTime;
+
+
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/order/WalletPayVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/WalletPayVO.java
new file mode 100644
index 000000000..93216b085
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/order/WalletPayVO.java
@@ -0,0 +1,39 @@
+package com.cool.store.vo.order;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @Auther zx_szh
+ * @Date 2026/2/8 09:42
+ * @Version 1.0
+ */
+@Data
+public class WalletPayVO {
+
+ @ApiModelProperty("付款单号")
+ private String payNo;
+
+ @ApiModelProperty("付款时间")
+ private Date payTime;
+
+ @ApiModelProperty("支付流水号")
+ private String tradeId;
+
+ @ApiModelProperty("付款方式")
+ private String payType ;
+
+ @ApiModelProperty("付款金额")
+ private BigDecimal payAmount;
+
+ @ApiModelProperty("状态")
+ private Integer payStatus;
+
+
+ public String getPayType() {
+ return "平安钱包";
+ }
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/store/StoreTypeOptionVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/store/StoreTypeOptionVO.java
new file mode 100644
index 000000000..88b3edad8
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/store/StoreTypeOptionVO.java
@@ -0,0 +1,72 @@
+package com.cool.store.vo.store;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class StoreTypeOptionVO {
+
+ @ApiModelProperty("主键")
+ private Long id;
+
+ @ApiModelProperty("店型ID")
+ private Long storeTypeId;
+
+ @ApiModelProperty("选项ID")
+ private Long optionId;
+
+ @ApiModelProperty("配置类型编码")
+ private String categoryCode;
+
+ @ApiModelProperty("配置项编码")
+ private String itemCode;
+
+ @ApiModelProperty("是否默认 0否 1是")
+ private Integer isDefault;
+
+ @ApiModelProperty("默认数量")
+ private BigDecimal defaultQuantity;
+
+ @ApiModelProperty("数量是否可改 0否 1是")
+ private Integer allowQuantityEdit;
+
+ @ApiModelProperty("是否展示 0否 1是")
+ private Integer visible;
+
+ @ApiModelProperty("排序")
+ private Integer sortOrder;
+
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+
+ @ApiModelProperty("更新时间")
+ private Date updateTime;
+
+ @ApiModelProperty("选项图片")
+ private String optionImageUrl;
+
+ @ApiModelProperty("当前店型内选项价格")
+ private BigDecimal optionPrice;
+
+ @ApiModelProperty("顶部预览图")
+ private String topPreviewImage;
+
+ @ApiModelProperty("选项原价")
+ private BigDecimal originalOptionPrice;
+
+ @ApiModelProperty("选项明细")
+ private String optionRemark;
+
+ @ApiModelProperty("描述")
+ private String optionDescription;
+
+ @ApiModelProperty("选项名称")
+ private String optionName;
+
+ @ApiModelProperty("单位")
+ private String optionUnit;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/store/StoreTypeVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/store/StoreTypeVO.java
new file mode 100644
index 000000000..bfd4e97bb
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/store/StoreTypeVO.java
@@ -0,0 +1,89 @@
+package com.cool.store.vo.store;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 店型 VO
+ */
+@Data
+public class StoreTypeVO {
+
+ @ApiModelProperty("主键")
+ private Long id;
+
+ @ApiModelProperty("店型编码")
+ private String storeTypeCode;
+
+ @ApiModelProperty("店型名称")
+ private String storeTypeName;
+
+ @ApiModelProperty("品牌")
+ private String brand;
+
+ @ApiModelProperty("门店类型")
+ private Integer storeType;
+
+ @ApiModelProperty("店型描述")
+ private String description;
+
+ @ApiModelProperty("主图")
+ private String imageUrl;
+
+ @ApiModelProperty("视频")
+ private String videoUrl;
+
+ @ApiModelProperty("VR视频")
+ private String vrVideoUrl;
+
+ @ApiModelProperty("加盟费")
+ private BigDecimal franchiseFee;
+
+ @ApiModelProperty("原加盟费")
+ private BigDecimal originalFranchiseFee;
+
+ @ApiModelProperty("品牌使用费")
+ private BigDecimal brandUsageFee;
+
+ @ApiModelProperty("原品牌使用费")
+ private BigDecimal originalBrandUsageFee;
+
+ @ApiModelProperty("管理费")
+ private BigDecimal managementFee;
+
+ @ApiModelProperty("原管理费")
+ private BigDecimal originalManagementFee;
+
+ @ApiModelProperty("系统使用费")
+ private BigDecimal systemUsageFee;
+
+ @ApiModelProperty("原系统使用费")
+ private BigDecimal originalSystemUsageFee;
+
+ @ApiModelProperty("合同保证金")
+ private BigDecimal contractDeposit;
+
+ @ApiModelProperty("原合同保证金")
+ private BigDecimal originalContractDeposit;
+
+ @ApiModelProperty("系统设计费")
+ private BigDecimal designFee;
+
+ @ApiModelProperty("原系统设计费")
+ private BigDecimal originalDesignFee;
+
+ @ApiModelProperty("排序")
+ private Integer sortOrder;
+
+ @ApiModelProperty("是否启用")
+ private Boolean active;
+
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+
+ @ApiModelProperty("更新时间")
+ private Date updateTime;
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/StoreVisitReservationVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/StoreVisitReservationVO.java
new file mode 100644
index 000000000..1087ef937
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/visit/StoreVisitReservationVO.java
@@ -0,0 +1,54 @@
+package com.cool.store.vo.visit;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class StoreVisitReservationVO {
+
+ @ApiModelProperty("预约ID")
+ private Long id;
+
+ @ApiModelProperty("意向城市ID")
+ private Long intentCityId;
+
+ @ApiModelProperty("意向城市名称")
+ private String intentCityName;
+
+ @ApiModelProperty("意向城市路径")
+ private String intentCityPath;
+
+ @ApiModelProperty("联系人")
+ private String contactName;
+
+ @ApiModelProperty("手机号")
+ private String mobile;
+
+ @ApiModelProperty("预约时间")
+ private Date visitTime;
+
+ @ApiModelProperty("状态")
+ private Integer status;
+
+ @ApiModelProperty("备注")
+ private String remark;
+
+ @ApiModelProperty("取消原因")
+ private String cancelReason;
+
+ @ApiModelProperty("当前跟进人员")
+ private String currentFollowUser;
+
+ @ApiModelProperty("服务人员")
+ private String serviceUserId;
+
+ @ApiModelProperty("服务人员姓名")
+ private String serviceUserName;
+
+ private String serviceUserMobile;
+
+ @ApiModelProperty("创建时间")
+ private Date createTime;
+}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/http/WalletHttpClientRest.java b/coolstore-partner-service/src/main/java/com/cool/store/http/WalletHttpClientRest.java
index 59c542c2d..d266c0b35 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/http/WalletHttpClientRest.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/http/WalletHttpClientRest.java
@@ -157,6 +157,8 @@ public class WalletHttpClientRest {
// 700-799为平安银行错误
if (code >= 700 && code <= 799) {
throw new ServiceException(ErrorCodeEnum.WALLET_API_ERROR, msg);
+ } else if (code == 610 || msg.equals("支付密码不正确")) {
+ throw new ServiceException(ErrorCodeEnum.PASSWORD_ERROR);
} else {
throw new ServiceException(ErrorCodeEnum.THIRD_API_ERROR,
"code: " + code + ", msg: " + msg);
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java
index 1b466e4d8..9974f8312 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java
@@ -85,13 +85,20 @@ public interface DeskService {
PageInfo payFranchiseFeesPendingList(DeskRequest deskRequest, LoginUserInfo user );
/**
* 加盟合同签约待处理数据
-
* @param user
* @return
*/
PageInfo signingOfFranchiseContractPendingList(DeskRequest deskRequest, LoginUserInfo user );
+ /**
+ * 店型选配 代处理数据
+ * @param deskRequest
+ * @param user
+ * @return
+ */
+ PageInfo standardStorePendingList(DeskRequest deskRequest, LoginUserInfo user );
+
/**
* 发票回传待处理数据
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ExportRealizeService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ExportRealizeService.java
index 2e3c6e89c..d67dc8543 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/ExportRealizeService.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ExportRealizeService.java
@@ -1,14 +1,12 @@
package com.cool.store.service;
-import com.cool.store.dto.Preparation.PreparationDTO;
import com.cool.store.dto.pre.fry.ApplyManagementDTO;
import com.cool.store.entity.ImportTaskDO;
-import com.cool.store.entity.LineInfoDO;
-import com.cool.store.entity.PointInfoDO;
import com.cool.store.request.AllPointPageRequest;
import com.cool.store.request.FranchiseReportRequest;
-import com.cool.store.request.PointPageRequest;
+import com.cool.store.request.order.PCStoreOrderQueryRequest;
import com.cool.store.request.visit.VisitRecordQueryRequest;
+import com.cool.store.request.PointPageRequest;
import com.cool.store.response.BranchShopResponse;
import com.cool.store.response.FranchiseReportResponse;
import com.cool.store.response.ShopReportResponse;
@@ -35,6 +33,7 @@ public interface ExportRealizeService {
void exportZxjpOpenShopReport(List list, ImportTaskDO importTaskDO, FranchiseReportRequest request);
void exportZxjpOpenShopReportPage(List list, ImportTaskDO importTaskDO, FranchiseReportRequest request);
+
void exportPreFryQualificationApply(List list, ImportTaskDO importTaskDO);
/**
@@ -42,6 +41,7 @@ public interface ExportRealizeService {
*/
void exportVisitRecord(VisitRecordQueryRequest request, ImportTaskDO importTaskDO);
+ void exportOrderRecord(PCStoreOrderQueryRequest request, ImportTaskDO importTaskDO);
void exportPoint(AllPointPageRequest request, ImportTaskDO importTaskDO);
void myExportPoint(PointPageRequest request, String userId, ImportTaskDO importTaskDO);
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ExportService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ExportService.java
index 6d8540bbc..432bde573 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/ExportService.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ExportService.java
@@ -5,6 +5,8 @@ import com.cool.store.context.LoginUserInfo;
import com.cool.store.dto.pre.fry.ApplyManagementQueryDTO;
import com.cool.store.enums.FileTypeEnum;
import com.cool.store.request.*;
+import com.cool.store.request.order.PCStoreOrderQueryRequest;
+import com.cool.store.request.visit.VisitRecordQueryRequest;
import com.cool.store.request.visit.VisitRecordQueryRequest;
/**
@@ -53,6 +55,13 @@ public interface ExportService {
*/
Long exportVisitRecord(VisitRecordQueryRequest request, LoginUserInfo user);
+ /**
+ * 导出标准店订单记录
+ * @param request
+ * @param user
+ * @return
+ */
+ Long exportStandardStoreOrderRecord(PCStoreOrderQueryRequest request, LoginUserInfo user);
/**
* 全部铺位导出
* @param request 查询Request
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseFeeService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseFeeService.java
index 81545c162..f593325ba 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseFeeService.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/FranchiseFeeService.java
@@ -3,6 +3,7 @@ package com.cool.store.service;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.request.AuditFranchiseFeeRequest;
import com.cool.store.request.FranchiseFeeRequest;
+import com.cool.store.request.FranchisePayTypeUpdateRequest;
import com.cool.store.request.xgj.FranchiseFeeCallBackRequest;
import com.cool.store.response.FranchiseFeeResponse;
import com.cool.store.response.bigdata.ApiResponse;
@@ -33,4 +34,11 @@ public interface FranchiseFeeService {
Boolean auditFranchiseFee(AuditFranchiseFeeRequest request, LoginUserInfo user);
ApiResponse changePaymentStatus(FranchiseFeeCallBackRequest request);
+
+ /**
+ * 修改付款方式
+ * @param request 加盟费支付方式修改Request
+ * @return 是否成功
+ */
+ Boolean updatePayType(FranchisePayTypeUpdateRequest request);
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/config/ConfigItemCategoryService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/config/ConfigItemCategoryService.java
new file mode 100644
index 000000000..135c9c175
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/config/ConfigItemCategoryService.java
@@ -0,0 +1,20 @@
+package com.cool.store.service.config;
+
+import com.cool.store.context.LoginUserInfo;
+import com.cool.store.request.config.ConfigItemCategoryQueryRequest;
+import com.cool.store.request.config.ConfigItemCategoryUpdateRequest;
+import com.cool.store.vo.config.ConfigItemCategoryVO;
+import com.github.pagehelper.PageInfo;
+
+import java.util.List;
+
+public interface ConfigItemCategoryService {
+
+ Boolean add(ConfigItemCategoryUpdateRequest request, LoginUserInfo userInfo);
+
+ Boolean update(ConfigItemCategoryUpdateRequest request,LoginUserInfo userInfo);
+
+ PageInfo queryPage(ConfigItemCategoryQueryRequest request);
+
+ Boolean deleteByIds(List ids);
+}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/config/ConfigItemService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/config/ConfigItemService.java
new file mode 100644
index 000000000..ebb922241
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/config/ConfigItemService.java
@@ -0,0 +1,22 @@
+package com.cool.store.service.config;
+
+import com.cool.store.context.LoginUserInfo;
+import com.cool.store.request.config.ConfigItemQueryRequest;
+import com.cool.store.request.config.ConfigItemUpdateRequest;
+import com.cool.store.vo.config.ConfigItemVO;
+import com.github.pagehelper.PageInfo;
+
+import java.util.List;
+
+public interface ConfigItemService {
+
+ Boolean add(ConfigItemUpdateRequest request, LoginUserInfo userInfo);
+
+ Boolean update(ConfigItemUpdateRequest request, LoginUserInfo userInfo);
+
+ PageInfo queryPage(ConfigItemQueryRequest request);
+
+ List listByCategoryId(Long categoryId);
+
+ Boolean deleteByIds(List ids);
+}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/config/ConfigOptionService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/config/ConfigOptionService.java
new file mode 100644
index 000000000..79deb8e3b
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/config/ConfigOptionService.java
@@ -0,0 +1,27 @@
+package com.cool.store.service.config;
+
+import com.cool.store.request.config.ConfigOptionQueryRequest;
+import com.cool.store.request.config.ConfigOptionTreeQueryRequest;
+import com.cool.store.request.config.ConfigOptionUpdateRequest;
+import com.cool.store.vo.config.ConfigOptionTreeVO;
+import com.cool.store.vo.config.ConfigOptionVO;
+import com.github.pagehelper.PageInfo;
+
+import java.util.List;
+
+public interface ConfigOptionService {
+
+ Boolean add(ConfigOptionUpdateRequest request);
+
+ Boolean update(ConfigOptionUpdateRequest request);
+
+ PageInfo queryPage(ConfigOptionQueryRequest request);
+
+ /**
+ * 获取所有的选项 三层结构
+ * 查询激活的配置选项三层结构:配置类型 -> 配置项 -> 配置选项
+ */
+ List listActiveTree();
+
+ Boolean deleteByIds(List ids);
+}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/config/impl/ConfigItemCategoryServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/config/impl/ConfigItemCategoryServiceImpl.java
new file mode 100644
index 000000000..5c98080b9
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/config/impl/ConfigItemCategoryServiceImpl.java
@@ -0,0 +1,89 @@
+package com.cool.store.service.config.impl;
+
+import com.cool.store.context.LoginUserInfo;
+import com.cool.store.dao.config.ConfigItemCategoryDAO;
+import com.cool.store.dao.config.ConfigItemDAO;
+import com.cool.store.entity.config.ConfigItemCategoryDO;
+import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.exception.ServiceException;
+import com.cool.store.request.config.ConfigItemCategoryQueryRequest;
+import com.cool.store.request.config.ConfigItemCategoryUpdateRequest;
+import com.cool.store.service.config.ConfigItemCategoryService;
+import com.cool.store.utils.StringUtil;
+import com.cool.store.utils.UUIDUtils;
+import com.cool.store.vo.config.ConfigItemCategoryVO;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+@Service
+@RequiredArgsConstructor
+public class ConfigItemCategoryServiceImpl implements ConfigItemCategoryService {
+
+ private final ConfigItemCategoryDAO configItemCategoryDAO;
+ private final ConfigItemDAO configItemDAO;
+
+ @Override
+ public Boolean add(ConfigItemCategoryUpdateRequest request, LoginUserInfo userInfo) {
+ if (StringUtil.isEmpty(request.getCategoryCode())){
+ request.setCategoryCode(UUIDUtils.get8UUID());
+ }
+ if (configItemDAO.existsItemCode(request.getCategoryCode(),request.getId())){
+ throw new ServiceException(ErrorCodeEnum.CODE_EXIST);
+ }
+ ConfigItemCategoryDO entity = new ConfigItemCategoryDO();
+ entity.setCategoryCode(request.getCategoryCode());
+ entity.setCategoryName(request.getCategoryName());
+ entity.setSortNo(request.getSortNo());
+ entity.setImageUrl(request.getImageUrl());
+ entity.setVideoUrl(request.getVideoUrl());
+ entity.setStatus(request.getStatus());
+ entity.setRemark(request.getRemark());
+ entity.setCreatedTime(new Date());
+ entity.setCreatedUserId(userInfo.getUserId());
+ entity.setIsDeleted(0);
+ return configItemCategoryDAO.insertSelective(entity);
+ }
+
+ @Override
+ public Boolean update(ConfigItemCategoryUpdateRequest request,LoginUserInfo userInfo) {
+ if (StringUtil.isNotEmpty(request.getCategoryCode())&&configItemDAO.existsItemCode(request.getCategoryCode(),request.getId())){
+ throw new ServiceException(ErrorCodeEnum.CODE_EXIST);
+ }
+ ConfigItemCategoryDO entity = new ConfigItemCategoryDO();
+ entity.setId(request.getId());
+ entity.setCategoryName(request.getCategoryName());
+ entity.setSortNo(request.getSortNo());
+ entity.setImageUrl(request.getImageUrl());
+ entity.setVideoUrl(request.getVideoUrl());
+ entity.setStatus(request.getStatus());
+ entity.setRemark(request.getRemark());
+ entity.setUpdatedTime(new Date());
+ entity.setUpdatedUserId(userInfo.getUserId());
+ return configItemCategoryDAO.updateSelective(entity);
+ }
+
+ @Override
+ public PageInfo queryPage(ConfigItemCategoryQueryRequest request) {
+ PageHelper.startPage(request.getPageNum(), request.getPageSize());
+ List list = configItemCategoryDAO.queryByCondition(request.getCategoryName(), request.getStatus());
+ return new PageInfo<>(list);
+ }
+
+ @Override
+ public Boolean deleteByIds(List ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return false;
+ }
+ if (configItemDAO.countByCategoryIds(ids) > 0) {
+ return false;
+ }
+ return configItemCategoryDAO.softDeleteByIds(ids);
+ }
+}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/config/impl/ConfigItemServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/config/impl/ConfigItemServiceImpl.java
new file mode 100644
index 000000000..79ebd0edc
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/config/impl/ConfigItemServiceImpl.java
@@ -0,0 +1,93 @@
+package com.cool.store.service.config.impl;
+
+import com.cool.store.context.LoginUserInfo;
+import com.cool.store.dao.config.ConfigItemCategoryDAO;
+import com.cool.store.dao.config.ConfigItemDAO;
+import com.cool.store.entity.config.ConfigItemDO;
+import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.exception.ServiceException;
+import com.cool.store.request.config.ConfigItemQueryRequest;
+import com.cool.store.request.config.ConfigItemUpdateRequest;
+import com.cool.store.service.config.ConfigItemService;
+import com.cool.store.utils.StringUtil;
+import com.cool.store.utils.UUIDUtils;
+import com.cool.store.vo.config.ConfigItemVO;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+@Service
+@RequiredArgsConstructor
+public class ConfigItemServiceImpl implements ConfigItemService {
+
+ private final ConfigItemDAO configItemDAO;
+ private final ConfigItemCategoryDAO configItemCategoryDAO;
+
+ @Override
+ public Boolean add(ConfigItemUpdateRequest request, LoginUserInfo userInfo) {
+ if (StringUtil.isEmpty(request.getItemCode())){
+ request.setItemCode(UUIDUtils.get8UUID());
+ }
+ if (StringUtil.isNotEmpty(request.getItemCode())&&configItemDAO.existsItemCode(request.getItemCode(),request.getId())){
+ throw new ServiceException(ErrorCodeEnum.CODE_EXIST);
+ }
+ ConfigItemDO entity = new ConfigItemDO();
+ entity.setItemName(request.getItemName());
+ entity.setItemCode(request.getItemCode());
+ entity.setCategoryId(request.getCategoryId());
+ entity.setSortNo(request.getSortNo());
+ entity.setStatus(request.getStatus());
+ entity.setRemark(request.getRemark());
+ entity.setCreatedTime(new Date());
+ entity.setCreatedUserId(userInfo.getUserId());
+ entity.setIsDeleted(0);
+ return configItemDAO.insertSelective(entity);
+ }
+
+ @Override
+ public Boolean update(ConfigItemUpdateRequest request, LoginUserInfo userInfo) {
+ if (request.getId()==null){
+ throw new ServiceException(ErrorCodeEnum.ERROR_MESSAGE);
+ }
+ if (StringUtil.isNotEmpty(request.getItemCode())&&configItemDAO.existsItemCode(request.getItemCode(),request.getId())){
+ throw new ServiceException(ErrorCodeEnum.CODE_EXIST);
+ }
+ ConfigItemDO entity = new ConfigItemDO();
+ entity.setId(request.getId());
+ entity.setItemName(request.getItemName());
+ entity.setCategoryId(request.getCategoryId());
+ entity.setSortNo(request.getSortNo());
+ entity.setStatus(request.getStatus());
+ entity.setRemark(request.getRemark());
+ entity.setUpdatedTime(new Date());
+ entity.setUpdatedUserId(userInfo.getUserId());
+ return configItemDAO.updateSelective(entity);
+ }
+
+ @Override
+ public PageInfo queryPage(ConfigItemQueryRequest request) {
+ PageHelper.startPage(request.getPageNum(), request.getPageSize());
+ List list = configItemDAO.queryByCondition(request.getItemName(), request.getItemCode(), request.getCategoryId(), request.getStatus());
+ return new PageInfo<>(list);
+ }
+
+ @Override
+ public List listByCategoryId(Long categoryId) {
+ return configItemDAO.queryByCondition(null, null, categoryId,1);
+ }
+
+ @Override
+ public Boolean deleteByIds(List ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return false;
+ }
+ return configItemDAO.softDeleteByIds(ids);
+ }
+}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/config/impl/ConfigOptionServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/config/impl/ConfigOptionServiceImpl.java
new file mode 100644
index 000000000..a37e5450b
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/config/impl/ConfigOptionServiceImpl.java
@@ -0,0 +1,193 @@
+package com.cool.store.service.config.impl;
+
+import com.cool.store.dao.config.ConfigItemCategoryDAO;
+import com.cool.store.dao.config.ConfigItemDAO;
+import com.cool.store.dao.config.ConfigOptionDAO;
+import com.cool.store.dao.dict.SysDictTableDAO;
+import com.cool.store.dao.store.StoreTypeOptionDAO;
+import com.cool.store.entity.config.ConfigOptionDO;
+import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.exception.ServiceException;
+import com.cool.store.request.config.ConfigOptionQueryRequest;
+import com.cool.store.request.config.ConfigOptionUpdateRequest;
+import com.cool.store.request.dict.DictColumnQueryRequest;
+import com.cool.store.service.config.ConfigOptionService;
+import com.cool.store.service.dict.DictColumnService;
+import com.cool.store.utils.BeanUtil;
+import com.cool.store.utils.UUIDUtils;
+import com.cool.store.vo.config.*;
+import com.cool.store.vo.dict.DictColumnVO;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+@Service
+@RequiredArgsConstructor
+public class ConfigOptionServiceImpl implements ConfigOptionService {
+
+ private final ConfigOptionDAO configOptionDAO;
+ private final StoreTypeOptionDAO storeTypeOptionDAO;
+ private final DictColumnService dictColumnService;
+ private final SysDictTableDAO dictTableInfoDAO;
+ private final ConfigItemCategoryDAO configItemCategoryDAO;
+ private final ConfigItemDAO configItemDAO;
+
+ @Override
+ public Boolean add(ConfigOptionUpdateRequest request) {
+ if (request.getSortOrder() != null && configOptionDAO.existsSortOrder(request.getSortOrder(), null)) {
+ throw new ServiceException(ErrorCodeEnum.CURRENT_BRAND_SORT_NUMBER_EXIST);
+ }
+
+ ConfigOptionDO entity = BeanUtil.toBean(request, ConfigOptionDO.class);
+ entity.setOptionCode(UUIDUtils.get8UUID());
+ return configOptionDAO.insertSelective(entity);
+ }
+
+ @Override
+ public Boolean update(ConfigOptionUpdateRequest request) {
+ if (request.getSortOrder() != null) {
+ ConfigOptionDO old = configOptionDAO.getById(request.getId());
+ boolean sortChanged = old == null || old.getSortOrder() == null || !old.getSortOrder().equals(request.getSortOrder());
+ if (sortChanged && configOptionDAO.existsSortOrder(request.getSortOrder(), request.getId())) {
+ throw new ServiceException(ErrorCodeEnum.CURRENT_BRAND_SORT_NUMBER_EXIST);
+ }
+ }
+ ConfigOptionDO entity = BeanUtil.toBean(request, ConfigOptionDO.class);
+ return configOptionDAO.updateSelective(entity);
+ }
+
+ @Override
+ public PageInfo queryPage(ConfigOptionQueryRequest request) {
+ PageHelper.startPage(request.getPageNum(), request.getPageSize());
+ List list = configOptionDAO.query(request.getCategoryCode(), request.getItemCode(), request.getActive(), request.getOptionName());
+ return BeanUtil.toPage(new PageInfo<>(list), ConfigOptionVO.class);
+ }
+
+
+
+ @Override
+ public List listActiveTree() {
+ // 1) 查询配置类型表:决定第一层顺序
+ List typeDictList = configItemCategoryDAO.queryAllList();
+
+ // 2) 查询配置项表:决定第二层顺序 & 名称
+ List itemDictList = configItemDAO.queryByCondition("", "", null, 1);
+ Map itemDictMap = itemDictList.stream()
+ .filter(v -> v.getItemCode() != null)
+ .collect(Collectors.toMap(ConfigItemVO::getItemCode, Function.identity(), (a, b) -> a));
+
+ // 3) 一次性查询所有激活的配置选项(可选模糊名称)
+ List options = configOptionDAO.query(null, null, 1, null);
+ if (CollectionUtils.isEmpty(options)) {
+ return Collections.emptyList();
+ }
+
+ // 4) 按 categoryCode -> itemCode 分组
+ Map>> groupMap = options.stream()
+ .filter(v -> Boolean.TRUE.equals(v.getActive()))
+ .collect(Collectors.groupingBy(
+ ConfigOptionDO::getCategoryCode,
+ Collectors.groupingBy(ConfigOptionDO::getItemCode)
+ ));
+
+ // 5) 组装三层结构:第一层按 type 字典顺序;第二层按 item 字典顺序;第三层按 sortOrder
+ List result = new ArrayList<>();
+ for (ConfigItemCategoryBaseInfoVO typeDict : typeDictList) {
+ String categoryCode = typeDict.getCategoryCode();
+ Map> itemOptionsMap = groupMap.get(categoryCode);
+ if (itemOptionsMap == null || itemOptionsMap.isEmpty()) {
+ continue;
+ }
+
+ ConfigOptionTreeVO typeVO = new ConfigOptionTreeVO();
+ typeVO.setCategoryCode(categoryCode);
+ typeVO.setCategoryName(typeDict.getCategoryName());
+
+ List itemVOList = new ArrayList<>();
+ for (ConfigItemVO itemDict : itemDictList) {
+ String itemCode = itemDict.getItemCode();
+ List optionList = itemOptionsMap.get(itemCode);
+ if (CollectionUtils.isEmpty(optionList)) {
+ continue;
+ }
+
+ ConfigOptionTreeVO.ConfigItemVO itemVO = new ConfigOptionTreeVO.ConfigItemVO();
+ itemVO.setItemCode(itemCode);
+ itemVO.setItemName(itemDict.getItemName());
+
+ List optionVOList = optionList.stream()
+ .sorted(Comparator.comparing(ConfigOptionDO::getSortOrder, Comparator.nullsLast(Integer::compareTo)))
+ .map(v -> BeanUtil.toBean(v, ConfigOptionVO.class))
+ .collect(Collectors.toList());
+ itemVO.setOptions(optionVOList);
+ itemVOList.add(itemVO);
+ }
+
+ // 如果 itemCode 没在字典表11里(比如数据脏了),补在最后
+ Set knownItemCodes = itemDictMap.keySet();
+ List unknownItemCodes = itemOptionsMap.keySet().stream()
+ .filter(v -> v != null && !knownItemCodes.contains(v))
+ .sorted()
+ .collect(Collectors.toList());
+ for (String itemCode : unknownItemCodes) {
+ List optionList = itemOptionsMap.get(itemCode);
+ if (CollectionUtils.isEmpty(optionList)) {
+ continue;
+ }
+ ConfigOptionTreeVO.ConfigItemVO itemVO = new ConfigOptionTreeVO.ConfigItemVO();
+ itemVO.setItemCode(itemCode);
+ itemVO.setItemName(itemCode);
+ List optionVOList = optionList.stream()
+ .sorted(Comparator.comparing(ConfigOptionDO::getSortOrder, Comparator.nullsLast(Integer::compareTo)))
+ .map(v -> BeanUtil.toBean(v, ConfigOptionVO.class))
+ .collect(Collectors.toList());
+ itemVO.setOptions(optionVOList);
+ itemVOList.add(itemVO);
+ }
+
+ if (CollectionUtils.isEmpty(itemVOList)) {
+ continue;
+ }
+ typeVO.setItems(itemVOList);
+ result.add(typeVO);
+ }
+
+ return result;
+ }
+
+ private List listOpenDictColumns(Long dictTableId) {
+ DictColumnQueryRequest dictReq = DictColumnQueryRequest.builder()
+ .dictTableId(dictTableId)
+ .openStatus(1)
+ .build();
+ dictReq.setPageSize(10000);
+ dictReq.setPageNum(1);
+ PageInfo page = dictColumnService.getPage(dictReq);
+ return page == null ? Collections.emptyList() : Optional.ofNullable(page.getList()).orElse(Collections.emptyList());
+ }
+
+ @Override
+ public Boolean deleteByIds(List ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return false;
+ }
+
+ for (Long id : ids) {
+ int usedCount = storeTypeOptionDAO.countByOptionId(id);
+ if (usedCount > 0) {
+ throw new ServiceException(ErrorCodeEnum.CONFIG_OPTION_USED);
+ }
+ ConfigOptionDO update = new ConfigOptionDO();
+ update.setId(id);
+ update.setActive(false);
+ configOptionDAO.updateSelective(update);
+ }
+ return true;
+ }
+}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/dict/impl/DictService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/dict/impl/DictService.java
index 387915531..6f8745af8 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/dict/impl/DictService.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/dict/impl/DictService.java
@@ -155,6 +155,7 @@ public class DictService {
Map fieldMap = CollStreamUtil.toMap(Arrays.asList(fields), Field::getName, v -> v);
List> dictFields = new ArrayList<>();
for (Field field : fields) {
+ // 这里需要优化,对象类型字段也需要转义,注意可能出现的循环嵌套问题
DictField dictField = field.getAnnotation(DictField.class);
if (Objects.nonNull(dictField)) {
field.setAccessible(true);
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/fees/FeeStandardConfigService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/FeeStandardConfigService.java
new file mode 100644
index 000000000..7c086abef
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/FeeStandardConfigService.java
@@ -0,0 +1,29 @@
+package com.cool.store.service.fees;
+
+import com.cool.store.request.fees.FeeStandardConfigAddRequest;
+import com.cool.store.request.fees.FeeStandardConfigPageRequest;
+import com.cool.store.vo.fees.FeeStandardConfigVO;
+import com.github.pagehelper.PageInfo;
+
+import java.util.List;
+
+/**
+ * 加盟费用标准收费额配置Service
+ */
+public interface FeeStandardConfigService {
+
+ Boolean add(FeeStandardConfigAddRequest request);
+
+ Boolean update(FeeStandardConfigAddRequest request);
+
+ PageInfo page(FeeStandardConfigPageRequest request);
+
+ /**
+ * 根据门店id查询配置
+ * @param shopId 门店id
+ * @return 加盟费用标准收费额配置VO
+ */
+ List getByShopId(Long shopId);
+}
+
+
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/fees/PayeeBankConfigService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/PayeeBankConfigService.java
new file mode 100644
index 000000000..243a47a96
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/PayeeBankConfigService.java
@@ -0,0 +1,28 @@
+package com.cool.store.service.fees;
+
+import com.cool.store.request.fees.PayeeBankConfigAddRequest;
+import com.cool.store.request.fees.PayeeBankConfigPageRequest;
+import com.cool.store.vo.fees.PayeeBankConfigVO;
+import com.github.pagehelper.PageInfo;
+
+/**
+ * 线下收款银行配置Service
+ */
+public interface PayeeBankConfigService {
+
+ Boolean add(PayeeBankConfigAddRequest request);
+
+ Boolean update(PayeeBankConfigAddRequest request);
+
+ PageInfo page(PayeeBankConfigPageRequest request);
+
+ /**
+ * 根据门店id查询线下收款银行配置
+ * @param shopId 门店id
+ * @param payType 支付方式
+ * @return 线下收款银行配置VO
+ */
+ PayeeBankConfigVO getByShopId(Long shopId, Integer payType);
+}
+
+
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/fees/ShopAllocationInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/ShopAllocationInfoService.java
new file mode 100644
index 000000000..3b15d9eba
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/ShopAllocationInfoService.java
@@ -0,0 +1,41 @@
+package com.cool.store.service.fees;
+
+import com.cool.store.entity.fees.ShopAllocationInfoDO;
+import com.cool.store.request.fees.ShopAllocationInfoRequest;
+import com.cool.store.vo.fees.ShopAllocationSimpleVO;
+
+import java.util.List;
+
+/**
+ *
+ * 门店平安钱包分账信息服务类
+ *
+ *
+ * @author wangff
+ * @since 2026/1/29
+ */
+public interface ShopAllocationInfoService {
+
+ /**
+ * 根据门店id查询门店分账信息,不存在时获取默认数据
+ * @param shopId 门店id
+ * @return 门店平安钱包分账信息列表
+ */
+ List getOrDefault(Long shopId);
+ /**
+ * 根据门店id查询门店分账信息
+ * @param shopId 门店id
+ * @return 门店平安钱包分账信息列表
+ */
+ List getSimpleInfo(Long shopId);
+
+ /**
+ * 批量新增
+ */
+ void insertBatch(Long shopId, List list);
+
+ /**
+ * 批量更新
+ */
+ void updateBatch(Long shopId, List list);
+}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/fees/WalletAllocationConfigService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/WalletAllocationConfigService.java
new file mode 100644
index 000000000..f1d0204ae
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/WalletAllocationConfigService.java
@@ -0,0 +1,47 @@
+package com.cool.store.service.fees;
+
+import com.cool.store.request.fees.WalletCompanyQueryRequest;
+import com.cool.store.request.fees.WalletAllocationConfigAddRequest;
+import com.cool.store.request.fees.WalletAllocationConfigPageRequest;
+import com.cool.store.vo.fees.InvestDivisionRegionVO;
+import com.cool.store.vo.fees.WalletAllocationCompanyVO;
+import com.cool.store.vo.fees.WalletAllocationConfigVO;
+import com.github.pagehelper.PageInfo;
+
+import java.util.List;
+
+/**
+ * 分账配置服务接口
+ *
+ * @author system
+ */
+public interface WalletAllocationConfigService {
+
+ /**
+ * 新增分账配置
+ */
+ Boolean add(WalletAllocationConfigAddRequest request);
+
+ /**
+ * 编辑分账配置
+ */
+ Boolean update(WalletAllocationConfigAddRequest request);
+
+ /**
+ * 分页查询分账配置
+ */
+ PageInfo page(WalletAllocationConfigPageRequest request);
+
+ /**
+ * 获取招商分部列表
+ */
+ List getInvestDivisionRegionList();
+
+ /**
+ * 公司列表
+ * @param request 收款公司查询Request
+ * @return 分页对象
+ */
+ PageInfo companyPage(WalletCompanyQueryRequest request);
+}
+
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/fees/WalletPayInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/WalletPayInfoService.java
new file mode 100644
index 000000000..243a8c86a
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/WalletPayInfoService.java
@@ -0,0 +1,54 @@
+package com.cool.store.service.fees;
+
+import com.cool.store.request.fees.WalletCancelPayRequest;
+import com.cool.store.request.fees.WalletPayRequest;
+import com.cool.store.request.fees.WalletRepayRequest;
+import com.cool.store.vo.fees.WalletPayInfoVO;
+
+import java.util.List;
+
+/**
+ *
+ * 钱包加盟缴费服务类
+ *
+ *
+ * @author wangff
+ * @since 2026/1/30
+ */
+public interface WalletPayInfoService {
+
+ /**
+ * 支付
+ * @param request 钱包支付Request
+ * @param oldPayNo 重新支付订单号
+ * @return 是否成功
+ */
+ Boolean pay(WalletPayRequest request, String oldPayNo);
+
+ /**
+ * 重新支付
+ * @param request 钱包重新支付Request
+ * @return 是否成功
+ */
+ Boolean rePay(WalletRepayRequest request);
+
+ /**
+ * 取消支付
+ * @param request 钱包取消支付Request
+ * @return 是否成功
+ */
+ Boolean cancelPay(WalletCancelPayRequest request);
+
+ /**
+ * 根据门店id查询缴费信息列表
+ * @param shopId 门店id
+ * @return 钱包加盟缴费信息VO列表
+ */
+ List payInfoList(Long shopId, Integer payStatus);
+
+ /**
+ * 重新推送账单到新管家
+ * @param walletPayInfoId 支付信息
+ */
+ void rePushReceipt(Long walletPayInfoId);
+}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/FeeStandardConfigServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/FeeStandardConfigServiceImpl.java
new file mode 100644
index 000000000..45e50b149
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/FeeStandardConfigServiceImpl.java
@@ -0,0 +1,94 @@
+package com.cool.store.service.fees.impl;
+
+import cn.hutool.core.collection.CollStreamUtil;
+import com.cool.store.context.CurrentUserHolder;
+import com.cool.store.dao.EnterpriseUserDAO;
+import com.cool.store.dao.ShopInfoDAO;
+import com.cool.store.dao.fees.FeeStandardConfigDAO;
+import com.cool.store.dao.modify.ModifyRecordDAO;
+import com.cool.store.entity.ShopInfoDO;
+import com.cool.store.entity.fees.FeeStandardConfigDO;
+import com.cool.store.enums.BusinessModuleEnum;
+import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.exception.ServiceException;
+import com.cool.store.request.fees.FeeStandardConfigAddRequest;
+import com.cool.store.request.fees.FeeStandardConfigPageRequest;
+import com.cool.store.service.dict.impl.DictService;
+import com.cool.store.service.fees.FeeStandardConfigService;
+import com.cool.store.utils.BeanUtil;
+import com.cool.store.vo.fees.FeeStandardConfigVO;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+/**
+ * 加盟费用标准收费额配置Service实现
+ */
+@Service
+@RequiredArgsConstructor
+public class FeeStandardConfigServiceImpl implements FeeStandardConfigService {
+
+ private final FeeStandardConfigDAO feeStandardConfigDAO;
+ private final ModifyRecordDAO modifyRecordDAO;
+ private final DictService dictService;
+ private final EnterpriseUserDAO enterpriseUserDAO;
+ private final ShopInfoDAO shopInfoDAO;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean add(FeeStandardConfigAddRequest request) {
+ verifyUnique(request.getJoinBrand(), request.getExpenseType(), null);
+
+ FeeStandardConfigDO configDO = BeanUtil.toBean(request, FeeStandardConfigDO.class);
+ configDO.setCreateUserId(CurrentUserHolder.getUserId());
+ feeStandardConfigDAO.insertSelective(configDO);
+ return true;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean update(FeeStandardConfigAddRequest request) {
+ verifyUnique(request.getJoinBrand(), request.getExpenseType(), request.getId());
+
+ FeeStandardConfigDO updateDO = BeanUtil.toBean(request, FeeStandardConfigDO.class);
+ feeStandardConfigDAO.updateByPrimaryKeySelective(updateDO);
+
+ modifyRecordDAO.insertRecord(BusinessModuleEnum.FEE_STANDARD_CONFIG, request.getId(), CurrentUserHolder.getUserId());
+ return true;
+ }
+
+ @Override
+ public PageInfo page(FeeStandardConfigPageRequest request) {
+ PageHelper.startPage(request.getPageNum(), request.getPageSize());
+ List list = feeStandardConfigDAO.selectByCondition(request.getJoinBrand(), request.getExpenseType());
+ PageInfo page = new PageInfo<>(list);
+ Set userIds = CollStreamUtil.toSet(list, FeeStandardConfigDO::getCreateUserId);
+ Map userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(userIds));
+ PageInfo newPage = BeanUtil.toPage(page, FeeStandardConfigVO.class);
+ newPage.getList().forEach(v -> v.setCreateUserName(userNameMap.get(v.getCreateUserId())));
+ dictService.fillDictField(newPage.getList());
+ return newPage;
+ }
+
+ @Override
+ public List getByShopId(Long shopId) {
+ ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId);
+ if (Objects.isNull(shopInfo)) {
+ throw new ServiceException(ErrorCodeEnum.SHOP_NOT_EXIST);
+ }
+ List list = feeStandardConfigDAO.selectByCondition(Integer.valueOf(shopInfo.getFranchiseBrand()), null);
+ return BeanUtil.toList(list, FeeStandardConfigVO.class);
+ }
+
+ private void verifyUnique(Integer joinBrand, String expenseType, Long excludeId) {
+ if (feeStandardConfigDAO.existJoinBrandAndExpenseType(joinBrand, expenseType.trim(), excludeId)) {
+ throw new ServiceException(ErrorCodeEnum.FEE_STANDARD_UNIQUE_KEY_EXISTS);
+ }
+ }
+}
+
+
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/PayeeBankConfigServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/PayeeBankConfigServiceImpl.java
new file mode 100644
index 000000000..bb6285fff
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/PayeeBankConfigServiceImpl.java
@@ -0,0 +1,122 @@
+package com.cool.store.service.fees.impl;
+
+import cn.hutool.core.collection.CollStreamUtil;
+import com.cool.store.constants.RedisConstant;
+import com.cool.store.context.CurrentUserHolder;
+import com.cool.store.dao.EnterpriseUserDAO;
+import com.cool.store.dao.FranchiseFeeDAO;
+import com.cool.store.dao.RegionDao;
+import com.cool.store.dao.ShopInfoDAO;
+import com.cool.store.dao.modify.ModifyRecordDAO;
+import com.cool.store.dao.fees.PayeeBankConfigDAO;
+import com.cool.store.entity.FranchiseFeeDO;
+import com.cool.store.entity.RegionDO;
+import com.cool.store.entity.ShopInfoDO;
+import com.cool.store.entity.fees.PayeeBankConfigDO;
+import com.cool.store.enums.BusinessModuleEnum;
+import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.exception.ServiceException;
+import com.cool.store.request.fees.PayeeBankConfigAddRequest;
+import com.cool.store.request.fees.PayeeBankConfigPageRequest;
+import com.cool.store.service.fees.PayeeBankConfigService;
+import com.cool.store.utils.BeanUtil;
+import com.cool.store.utils.RedisUtilPool;
+import com.cool.store.vo.fees.PayeeBankConfigVO;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+/**
+ * 线下收款银行配置Service实现
+ */
+@Service
+@RequiredArgsConstructor
+public class PayeeBankConfigServiceImpl implements PayeeBankConfigService {
+
+ private final PayeeBankConfigDAO payeeBankConfigDAO;
+ private final RedisUtilPool redisUtilPool;
+ private final ModifyRecordDAO modifyRecordDAO;
+ private final EnterpriseUserDAO enterpriseUserDAO;
+ private final ShopInfoDAO shopInfoDAO;
+ private final FranchiseFeeDAO franchiseFeeDAO;
+ private final RegionDao regionDao;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean add(PayeeBankConfigAddRequest request) {
+ verify(request.getJoinBrand(), request.getInvestDivisionId(), request.getPayType(), null);
+
+ String userId = CurrentUserHolder.getUserId();
+ PayeeBankConfigDO configDO = BeanUtil.toBean(request, PayeeBankConfigDO.class);
+ configDO.setCreateUserId(userId);
+ payeeBankConfigDAO.insertSelective(configDO);
+ return true;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean update(PayeeBankConfigAddRequest request) {
+ verify(request.getJoinBrand(), request.getInvestDivisionId(), request.getPayType(), request.getId());
+
+ PayeeBankConfigDO updateDO = BeanUtil.toBean(request, PayeeBankConfigDO.class);
+ payeeBankConfigDAO.updateByPrimaryKeySelective(updateDO);
+
+ // 新增业务修改记录
+ modifyRecordDAO.insertRecord(BusinessModuleEnum.PAYEE_BANK_CONFIG, request.getId(), CurrentUserHolder.getUserId());
+ return true;
+ }
+
+ @Override
+ public PageInfo page(PayeeBankConfigPageRequest request) {
+ PageHelper.startPage(request.getPageNum(), request.getPageSize());
+ List list = payeeBankConfigDAO.selectByCondition(
+ request.getJoinBrand(),
+ request.getInvestDivisionId(),
+ request.getPayType()
+ );
+ PageInfo page = new PageInfo<>(list);
+ PageInfo newPage = BeanUtil.toPage(page, PayeeBankConfigVO.class);
+ Set userIds = CollStreamUtil.toSet(list, PayeeBankConfigDO::getCreateUserId);
+ Map userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(userIds));
+ newPage.getList().forEach(v -> {
+ v.setInvestDivisionName(redisUtilPool.hashGet(RedisConstant.WALLET_ALLOCATION_CONFIG_INVEST_DIVISION, String.valueOf(v.getInvestDivisionId())));
+ v.setCreateUserName(userNameMap.get(v.getCreateUserId()));
+ });
+ return newPage;
+ }
+
+ @Override
+ public PayeeBankConfigVO getByShopId(Long shopId, Integer payType) {
+ ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId);
+ if (Objects.isNull(shopInfo)) {
+ throw new ServiceException(ErrorCodeEnum.SHOP_NOT_EXIST);
+ }
+ FranchiseFeeDO franchiseFeeDO = franchiseFeeDAO.selectByShopId(shopId);
+ if (Objects.isNull(payType) && (Objects.isNull(franchiseFeeDO) || Objects.isNull(franchiseFeeDO.getPayType()))) {
+ throw new ServiceException(ErrorCodeEnum.NO_PAYMENT_METHOD_IS_SET);
+ }
+ RegionDO regionDO = regionDao.getRegionById(shopInfo.getInvestRegionId());
+ PayeeBankConfigDO configDO = payeeBankConfigDAO.getByUniqueKey(Integer.valueOf(shopInfo.getFranchiseBrand()), Long.valueOf(regionDO.getParentId()), Objects.nonNull(payType) ? payType : franchiseFeeDO.getPayType());
+ return BeanUtil.toBean(configDO, PayeeBankConfigVO.class);
+ }
+
+ /**
+ * 校验:
+ * 1) 加盟品牌+招商分部+付款方式唯一
+ * 2) 同品牌同支付方式只能存在分部或全部
+ */
+ private void verify(Integer joinBrand, Long investDivisionId, Integer payType, Long excludeId) {
+ if (payeeBankConfigDAO.existOtherInvestType(joinBrand, payType, investDivisionId, excludeId)) {
+ throw new ServiceException(ErrorCodeEnum.BANK_CONFIG_INVEST_TYPE_EXISTS);
+ }
+ if (payeeBankConfigDAO.existUniqueKey(joinBrand, investDivisionId, payType, excludeId)) {
+ throw new ServiceException(ErrorCodeEnum.BANK_CONFIG_UNIQUE_KEY_EXISTS);
+ }
+ }
+}
+
+
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/ShopAllocationInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/ShopAllocationInfoServiceImpl.java
new file mode 100644
index 000000000..f689262a3
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/ShopAllocationInfoServiceImpl.java
@@ -0,0 +1,144 @@
+package com.cool.store.service.fees.impl;
+
+import cn.hutool.core.collection.CollStreamUtil;
+import com.cool.store.constants.DictConstants;
+import com.cool.store.context.CurrentUserHolder;
+import com.cool.store.dao.RegionDao;
+import com.cool.store.dao.ShopInfoDAO;
+import com.cool.store.dao.dict.SysDictColumnDAO;
+import com.cool.store.dao.fees.*;
+import com.cool.store.entity.RegionDO;
+import com.cool.store.entity.ShopInfoDO;
+import com.cool.store.entity.fees.*;
+import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.enums.fees.AllocationPayStatusEnum;
+import com.cool.store.exception.ServiceException;
+import com.cool.store.request.fees.ShopAllocationInfoRequest;
+import com.cool.store.service.dict.impl.DictService;
+import com.cool.store.service.fees.ShopAllocationInfoService;
+import com.cool.store.utils.BeanUtil;
+import com.cool.store.vo.dict.DictColumnSimpleVO;
+import com.cool.store.vo.fees.ShopAllocationSimpleVO;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 门店平安钱包分账信息服务实现类
+ *
+ *
+ * @author wangff
+ * @since 2026/1/29
+ */
+@Service
+@RequiredArgsConstructor
+public class ShopAllocationInfoServiceImpl implements ShopAllocationInfoService {
+ private final ShopAllocationInfoDAO shopAllocationInfoDAO;
+ private final SysDictColumnDAO dictColumnDAO;
+ private final WalletAllocationConfigDAO walletAllocationConfigDAO;
+ private final WalletAllocationCompanyDAO walletAllocationCompanyDAO;
+ private final FeeStandardConfigDAO feeStandardConfigDAO;
+ private final ShopInfoDAO shopInfoDAO;
+ private final RegionDao regionDao;
+ private final WalletPayInfoDAO walletPayInfoDAO;
+ private final DictService dictService;
+
+ @Override
+ public List getOrDefault(Long shopId) {
+ List list = shopAllocationInfoDAO.getByShopId(shopId);
+ if (CollectionUtils.isEmpty(list)) {
+ list = getDefault(shopId);
+ }
+ return list;
+ }
+
+ @Override
+ public List getSimpleInfo(Long shopId) {
+ List list = shopAllocationInfoDAO.getByShopId(shopId);
+ List result = BeanUtil.toList(list, ShopAllocationSimpleVO.class);
+ dictService.fillDictField(result);
+ result.forEach(v -> v.setGroupName(v.getExpenseType()));
+ return result;
+ }
+
+ @Override
+ public void insertBatch(Long shopId, List list) {
+ if (CollectionUtils.isEmpty(list)) {
+ return;
+ }
+ List infoList = BeanUtil.toList(list, ShopAllocationInfoDO.class);
+ String userId = CurrentUserHolder.getUserId();
+ infoList.forEach(v -> {
+ v.setShopId(shopId);
+ v.setCreateUserId(userId);
+ v.setUpdateUserId(userId);
+ v.setStatus(AllocationPayStatusEnum.PAYING.getStatus());
+ });
+ shopAllocationInfoDAO.insertOrUpdateBatch(infoList);
+ }
+
+ @Override
+ public void updateBatch(Long shopId, List list) {
+ // 存在缴费信息则无法更改
+ if (walletPayInfoDAO.existPayInfo(shopId)) {
+ throw new ServiceException(ErrorCodeEnum.EXIST_PAY_INFO);
+ }
+ if (CollectionUtils.isEmpty(list)) {
+ return;
+ }
+ List infoList = BeanUtil.toList(list, ShopAllocationInfoDO.class);
+ String userId = CurrentUserHolder.getUserId();
+ infoList.forEach(v -> {
+ v.setShopId(shopId);
+ v.setUpdateUserId(userId);
+ });
+ shopAllocationInfoDAO.insertOrUpdateBatch(infoList);
+ }
+
+ /**
+ * 获取默认配置
+ * @param shopId 门店id
+ * @return 分账信息列表
+ */
+ public List getDefault(Long shopId) {
+ List expenseTypes = dictColumnDAO.getOpenColumnListByTableCode(Collections.singletonList(DictConstants.EXPENSE_TYPE));
+ ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId);
+ if (Objects.isNull(shopInfo)) {
+ throw new ServiceException(ErrorCodeEnum.SHOP_NOT_EXIST);
+ }
+ RegionDO regionDO = regionDao.getRegionById(shopInfo.getInvestRegionId());
+ Integer joinBrand = Integer.valueOf(shopInfo.getFranchiseBrand());
+ // 查询分账公司配置
+ List allocationConfigList = walletAllocationConfigDAO.selectByBrandAndInvest(joinBrand, Long.valueOf(regionDO.getParentId()));
+ List allocationConfigIds = CollStreamUtil.toList(allocationConfigList, WalletAllocationConfigDO::getId);
+ Map> allocationCompanyMap = walletAllocationCompanyDAO.selectGroupByConfigIds(allocationConfigIds);
+ Map allocationCompanyConfig = CollStreamUtil.toMap(allocationConfigList, WalletAllocationConfigDO::getExpenseType, v -> allocationCompanyMap.getOrDefault(v.getId(), Collections.emptyList())
+ .stream()
+ .findFirst()
+ .orElse(null)
+ );
+ // 查询加盟费用标准收费额配置
+ Map standardConfigMap = feeStandardConfigDAO.getStandardConfigMap(joinBrand);
+ // 查询配置
+ return expenseTypes.stream()
+ .filter(v -> DictConstants.PING_AN_DEFAULT_ALLOCATION_EXPENSE_TYPE_CODES.contains(v.getColumnCode()))
+ .map(v -> {
+ FeeStandardConfigDO standardConfigDO = standardConfigMap.get(v.getColumnCode());
+ WalletAllocationCompanyDO allocationCompanyDO = allocationCompanyConfig.get(v.getColumnCode());
+ return ShopAllocationInfoDO.builder()
+ .shopId(shopId)
+ .expenseType(v.getColumnCode())
+ .payeeName(Objects.nonNull(allocationCompanyDO) ? allocationCompanyDO.getPayeeName() : null)
+ .payeeCode(Objects.nonNull(allocationCompanyDO) ? allocationCompanyDO.getPayeeCode() : null)
+ .amount(Objects.nonNull(standardConfigDO) ? standardConfigDO.getAmount() : BigDecimal.ZERO)
+ .status(AllocationPayStatusEnum.PAYING.getStatus())
+ .build();
+ })
+ .collect(Collectors.toList());
+ }
+}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/WalletAllocationConfigServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/WalletAllocationConfigServiceImpl.java
new file mode 100644
index 000000000..5825b7eb6
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/WalletAllocationConfigServiceImpl.java
@@ -0,0 +1,170 @@
+package com.cool.store.service.fees.impl;
+
+import cn.hutool.core.collection.CollStreamUtil;
+import com.cool.store.constants.RedisConstant;
+import com.cool.store.context.CurrentUserHolder;
+import com.cool.store.dao.EnterpriseUserDAO;
+import com.cool.store.dao.modify.ModifyRecordDAO;
+import com.cool.store.dao.fees.WalletAllocationCompanyDAO;
+import com.cool.store.dao.fees.WalletAllocationConfigDAO;
+import com.cool.store.dto.wallet.CompanyListDTO;
+import com.cool.store.entity.fees.WalletAllocationCompanyDO;
+import com.cool.store.entity.fees.WalletAllocationConfigDO;
+import com.cool.store.enums.BusinessModuleEnum;
+import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.exception.ServiceException;
+import com.cool.store.request.fees.WalletCompanyQueryRequest;
+import com.cool.store.request.fees.WalletAllocationCompanyRequest;
+import com.cool.store.request.fees.WalletAllocationConfigAddRequest;
+import com.cool.store.request.fees.WalletAllocationConfigPageRequest;
+import com.cool.store.request.wallet.*;
+import com.cool.store.service.dict.impl.DictService;
+import com.cool.store.service.fees.WalletAllocationConfigService;
+import com.cool.store.service.wallet.WalletApiService;
+import com.cool.store.utils.BeanUtil;
+import com.cool.store.utils.RedisUtilPool;
+import com.cool.store.vo.fees.InvestDivisionRegionVO;
+import com.cool.store.vo.fees.WalletAllocationCompanyVO;
+import com.cool.store.vo.fees.WalletAllocationConfigVO;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static com.cool.store.service.wallet.impl.WalletServiceImpl.toPageInfo;
+
+/**
+ * 分账配置服务实现类
+ *
+ * @author system
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class WalletAllocationConfigServiceImpl implements WalletAllocationConfigService {
+
+ private final WalletAllocationConfigDAO walletAllocationConfigDAO;
+ private final WalletAllocationCompanyDAO walletAllocationCompanyDAO;
+ private final ModifyRecordDAO modifyRecordDAO;
+ private final RedisUtilPool redisUtilPool;
+ private final DictService dictService;
+ private final WalletApiService walletApiService;
+ private final EnterpriseUserDAO enterpriseUserDAO;
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean add(WalletAllocationConfigAddRequest request) {
+ verify(request.getJoinBrand(), request.getExpenseType(), request.getInvestDivisionId(), request.getId());
+ String userId = CurrentUserHolder.getUserId();
+
+ WalletAllocationConfigDO configDO = BeanUtil.toBean(request, WalletAllocationConfigDO.class);
+ configDO.setCreateUserId(userId);
+ walletAllocationConfigDAO.insertSelective(configDO);
+
+ // 保存分账公司配置
+ insertCompanyList(request.getCompanyList(), configDO.getId(), userId);
+ return true;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean update(WalletAllocationConfigAddRequest request) {
+ verify(request.getJoinBrand(), request.getExpenseType(), request.getInvestDivisionId(), request.getId());
+
+ WalletAllocationConfigDO configDO = BeanUtil.toBean(request, WalletAllocationConfigDO.class);
+ walletAllocationConfigDAO.updateByPrimaryKeySelective(configDO);
+
+ String userId = CurrentUserHolder.getUserId();
+ walletAllocationCompanyDAO.deleteByConfigId(request.getId());
+ // 保存分账公司配置
+ insertCompanyList(request.getCompanyList(), configDO.getId(), userId);
+
+ // 新增业务修改记录
+ modifyRecordDAO.insertRecord(BusinessModuleEnum.WALLET_ALLOCATION_CONFIG, request.getId(), userId);
+ return true;
+ }
+
+ public void insertCompanyList(List companyList, Long configId, String userId) {
+ if (CollectionUtils.isNotEmpty(companyList)) {
+ List list = BeanUtil.toList(companyList, WalletAllocationCompanyDO.class);
+ list.forEach(v -> {
+ v.setConfigId(configId);
+ v.setCreateUserId(userId);
+ });
+ walletAllocationCompanyDAO.insertBatch(list);
+ }
+ }
+
+ @Override
+ public PageInfo page(WalletAllocationConfigPageRequest request) {
+ List configIds = null;
+ if (Objects.nonNull(request.getPayeeCode())) {
+ List companyList = walletAllocationCompanyDAO.selectByPayeeCode(request.getPayeeCode());
+ if (CollectionUtils.isEmpty(companyList)) {
+ return new PageInfo<>();
+ }
+ configIds = CollStreamUtil.toList(companyList, WalletAllocationCompanyDO::getConfigId);
+ }
+ PageHelper.startPage(request.getPageNum(), request.getPageSize());
+ // 查询分账配置
+ List configList = walletAllocationConfigDAO.selectByCondition(
+ request.getJoinBrand(),
+ request.getInvestDivisionId(),
+ request.getExpenseType(),
+ configIds
+ );
+ PageInfo page = new PageInfo<>(configList);
+ PageInfo newPage = BeanUtil.toPage(page, WalletAllocationConfigVO.class);
+ List resultConfigIds = CollStreamUtil.toList(configList, WalletAllocationConfigDO::getId);
+ Set userIds = CollStreamUtil.toSet(configList, WalletAllocationConfigDO::getCreateUserId);
+ Map> companyGroup = walletAllocationCompanyDAO.selectGroupByConfigIds(resultConfigIds);
+ Map userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(userIds));
+
+ newPage.getList().forEach(v -> {
+ v.setInvestDivisionName(redisUtilPool.hashGet(RedisConstant.WALLET_ALLOCATION_CONFIG_INVEST_DIVISION, String.valueOf(v.getInvestDivisionId())));
+ List companyList = companyGroup.getOrDefault(v.getId(), Collections.emptyList());
+ v.setCompanyList(BeanUtil.toList(companyList, WalletAllocationCompanyVO.class));
+ v.setCreateUserName(userNameMap.get(v.getCreateUserId()));
+ });
+ dictService.fillDictField(newPage.getList());
+ return newPage;
+ }
+
+ @Override
+ public List getInvestDivisionRegionList() {
+ Map map = redisUtilPool.hashGetAll(RedisConstant.WALLET_ALLOCATION_CONFIG_INVEST_DIVISION);
+ return map.entrySet().stream()
+ .map(v -> new InvestDivisionRegionVO(Long.valueOf(v.getKey()), v.getValue()))
+ .collect(Collectors.toList());
+ }
+
+ @Override
+ public PageInfo companyPage(WalletCompanyQueryRequest request) {
+ FindPageCompanyRequest apiRequest = new FindPageCompanyRequest();
+ apiRequest.setCompanyName(request.getCompanyName());
+ apiRequest.setCompanyCode(request.getCompanyCode());
+ apiRequest.setPage(new WalletBasicPageInfo(request.getPageNum(), request.getPageSize()));
+ CompanyListDTO companyInfo = walletApiService.getCompanyInfo(apiRequest);
+ List list = CollStreamUtil.toList(companyInfo.getPageData(), v -> new WalletAllocationCompanyVO(v.getCompanyName(), v.getCompanyCode()));
+ return toPageInfo(list, WalletAllocationCompanyVO.class, companyInfo.getPage());
+ }
+
+ /**
+ * 校验同种费用只允许配置分部或者全部,存在另一种时报错
+ */
+ private void verify(Integer joinBrand, String expenseType, Long investDivisionId, Long excludeId) {
+ if (walletAllocationConfigDAO.existOtherInvestType(joinBrand, expenseType, investDivisionId, excludeId)) {
+ throw new ServiceException(ErrorCodeEnum.WALLET_INVEST_TYPE_EXISTS);
+ }
+ if (walletAllocationConfigDAO.existUniqueKey(joinBrand, investDivisionId, expenseType, excludeId)) {
+ throw new ServiceException(ErrorCodeEnum.WALLET_UNIQUE_KEY_EXISTS);
+ }
+ }
+}
+
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/WalletPayInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/WalletPayInfoServiceImpl.java
new file mode 100644
index 000000000..39ad6d0f2
--- /dev/null
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/fees/impl/WalletPayInfoServiceImpl.java
@@ -0,0 +1,344 @@
+package com.cool.store.service.fees.impl;
+
+import cn.hutool.core.collection.CollStreamUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.cool.store.constants.CommonConstants;
+import com.cool.store.constants.DictConstants;
+import com.cool.store.constants.RedisConstant;
+import com.cool.store.context.PartnerUserHolder;
+import com.cool.store.dao.FranchiseFeeDAO;
+import com.cool.store.dao.ShopInfoDAO;
+import com.cool.store.dao.ShopStageInfoDAO;
+import com.cool.store.dao.dict.SysDictColumnDAO;
+import com.cool.store.dao.fees.ShopAllocationInfoDAO;
+import com.cool.store.dao.fees.WalletPayInfoDAO;
+import com.cool.store.dao.wallet.WalletTradeDAO;
+import com.cool.store.dto.wallet.AccountInfoDTO;
+import com.cool.store.dto.wallet.BatchTransferDTO;
+import com.cool.store.request.wallet.BatchTransferRequest;
+import com.cool.store.dto.wallet.TransferDTO;
+import com.cool.store.entity.FranchiseFeeDO;
+import com.cool.store.entity.ShopInfoDO;
+import com.cool.store.entity.ShopStageInfoDO;
+import com.cool.store.entity.fees.ShopAllocationInfoDO;
+import com.cool.store.entity.fees.WalletPayInfoDO;
+import com.cool.store.entity.wallet.WalletTradeDO;
+import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.enums.fees.AllocationPayStatusEnum;
+import com.cool.store.enums.fees.PayTypeEnum;
+import com.cool.store.enums.fees.WalletFeeItemEnum;
+import com.cool.store.enums.point.ShopSubStageEnum;
+import com.cool.store.enums.point.ShopSubStageStatusEnum;
+import com.cool.store.enums.wallet.WalletTradeModuleEnum;
+import com.cool.store.exception.ServiceException;
+import com.cool.store.request.fees.WalletCancelPayRequest;
+import com.cool.store.request.fees.WalletPayRequest;
+import com.cool.store.request.fees.WalletRepayRequest;
+import com.cool.store.request.wallet.OutStoreIdRequest;
+import com.cool.store.request.wallet.TransferRequest;
+import com.cool.store.request.xgj.ReceiptRequest;
+import com.cool.store.service.PushService;
+import com.cool.store.service.fees.WalletPayInfoService;
+import com.cool.store.service.wallet.WalletApiService;
+import com.cool.store.utils.BeanUtil;
+import com.cool.store.utils.GenerateNoUtil;
+import com.cool.store.utils.RedisUtil;
+import com.cool.store.vo.PartnerUserInfoVO;
+import com.cool.store.vo.fees.WalletPayInfoVO;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.text.MessageFormat;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 钱包加盟缴费服务实现类
+ *
+ *
+ * @author wangff
+ * @since 2026/1/30
+ */
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class WalletPayInfoServiceImpl implements WalletPayInfoService {
+ private final WalletPayInfoDAO walletPayInfoDAO;
+ private final FranchiseFeeDAO franchiseFeeDAO;
+ private final SysDictColumnDAO sysDictColumnDAO;
+ private final ShopAllocationInfoDAO shopAllocationInfoDAO;
+ private final ShopInfoDAO shopInfoDAO;
+ private final WalletApiService walletApiService;
+ private final SysDictColumnDAO dictColumnDAO;
+ private final WalletTradeDAO walletTradeDAO;
+ private final RedisUtil redisUtil;
+ private final ShopStageInfoDAO shopStageInfoDAO;
+ private final PushService pushService;
+
+ @Override
+ @Transactional
+ public Boolean pay(WalletPayRequest request, String oldPayNo) {
+ log.info("钱包缴费开始,参数:{}", JSONObject.toJSONString(request));
+ if (StringUtils.isNotBlank(oldPayNo) && CollectionUtils.isNotEmpty(request.getExpenseTypes()) && request.getExpenseTypes().size() > 1) {
+ // 重新支付不支持批量
+ throw new ServiceException(ErrorCodeEnum.WALLET_RE_PAY_FAIL);
+ }
+ ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(request.getShopId());
+ if (Objects.isNull(shopInfo)) {
+ throw new ServiceException(ErrorCodeEnum.SHOP_NOT_EXIST);
+ }
+ String lockKey = MessageFormat.format(RedisConstant.WALLET_ALLOCATION_PAY_LOCK_KEY, shopInfo.getId());
+ Boolean lock = redisUtil.tryLock(lockKey, lockKey, 600, TimeUnit.SECONDS);
+ if (!Boolean.TRUE.equals(lock)) {
+ throw new ServiceException(ErrorCodeEnum.THE_USER_IS_PAYING);
+ }
+ try {
+ // 查询所有费用
+ List list = shopAllocationInfoDAO.getByShopId(request.getShopId());
+ Map allocationAmountMap = CollStreamUtil.toMap(list, ShopAllocationInfoDO::getExpenseType, ShopAllocationInfoDO::getAmount);
+ Map