多店铺需求

This commit is contained in:
Tankaikai
2025-04-07 11:40:25 +08:00
parent ec5de0f9ba
commit fffa1e5389
14 changed files with 513 additions and 15 deletions

View File

@@ -0,0 +1,81 @@
package com.czg.account.dto;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 店铺配置扩展
*
* @author Tankaikai tankaikai@aliyun.com
* @since 1.0 2025-04-03
*/
@Data
public class ShopConfigDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 店铺id
*/
private Long id;
/**
* 主店id
*/
private Long mainId;
/**
* 是否启用商品同步 1-是 0-否
*/
private Integer isEnableProdSync;
/**
* 是否启用会员同步 1-是 0-否
*/
private Integer isEnableVipSync;
/**
* 是否启用耗材同步 1-是 0-否
*/
private Integer isEnableConsSync;
/**
* 是否允许账号登录 1-是 0-否
*/
private Integer isAllowAccountLogin;
/**
* 备注
*/
private String remark;
/**
* 是否允许会员自定义金额 1-允许 0-不允许
*/
private Integer isCustomAmount;
/**
* 是否开启退款密码 1-启用 0-禁用
*/
private Integer isReturnPwd;
/**
* 是否开启会员充值密码 1-启用 0-禁用
*/
private Integer isMemberInPwd;
/**
* 是否开启会员退款密码 1-启用 0-禁用
*/
private Integer isMemberReturnPwd;
/**
* 是否免除桌位费 1-是 0-否
*/
private Integer isTableFee;
/**
* 是否启用会员价 1-是 0-否
*/
private Integer isMemberPrice;
/**
* 是否允许会员余额支付 1-是 0-否
*/
private Integer isAccountPay;
/**
* 分店数据同步方式 auto-自动同步 manual-手动同步
*/
private String branchDataSyncMethod;
}

View File

@@ -45,4 +45,12 @@ public class ShopInfoAddDTO {
private String districts;
private String provinces;
private String address;
/**
* 是否为主店
*/
private Integer isHeadShop;
/**
* 主店id
*/
private Long mainId;
}

View File

@@ -87,7 +87,7 @@ public class ShopInfoEditDTO {
/**
* 主店id
*/
private Integer mainId;
private Long mainId;
/**
* 店铺口号
@@ -241,4 +241,8 @@ public class ShopInfoEditDTO {
* 店铺激活码
*/
private String activateCode;
/**
* 是否为主店 1-是 0-否
*/
private Integer isHeadShop;
}

View File

@@ -0,0 +1,85 @@
package com.czg.account.entity;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 店铺配置扩展
*
* @author Tankaikai tankaikai@aliyun.com
* @since 1.0 2025-04-03
*/
@Data
@Table("tb_shop_config")
public class ShopConfig implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 店铺id
*/
@Id(keyType = KeyType.None)
private Long id;
/**
* 主店id
*/
private Long mainId;
/**
* 是否启用商品同步 1-是 0-否
*/
private Integer isEnableProdSync;
/**
* 是否启用会员同步 1-是 0-否
*/
private Integer isEnableVipSync;
/**
* 是否启用耗材同步 1-是 0-否
*/
private Integer isEnableConsSync;
/**
* 是否允许账号登录 1-是 0-否
*/
private Integer isAllowAccountLogin;
/**
* 备注
*/
private String remark;
/**
* 是否允许会员自定义金额 1-允许 0-不允许
*/
private Integer isCustomAmount;
/**
* 是否开启退款密码 1-启用 0-禁用
*/
private Integer isReturnPwd;
/**
* 是否开启会员充值密码 1-启用 0-禁用
*/
private Integer isMemberInPwd;
/**
* 是否开启会员退款密码 1-启用 0-禁用
*/
private Integer isMemberReturnPwd;
/**
* 是否免除桌位费 1-是 0-否
*/
private Integer isTableFee;
/**
* 是否启用会员价 1-是 0-否
*/
private Integer isMemberPrice;
/**
* 是否允许会员余额支付 1-是 0-否
*/
private Integer isAccountPay;
/**
* 分店数据同步方式 auto-自动同步 manual-手动同步
*/
private String branchDataSyncMethod;
}

View File

@@ -0,0 +1,43 @@
package com.czg.account.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import java.util.Arrays;
import java.util.List;
/**
* 分店数据同步方式枚举
*
* @author tankaikai
* @since 2025-04-03 16:53
*/
@Getter
@RequiredArgsConstructor
public enum BranchDataSyncMethodEnum {
/**
* 实时自动同步
*/
AUTO("auto", "实时自动同步"),
/**
* 手动同步
*/
MANUAL("manual", "手动同步");
private final String value;
private final String text;
public static List<String> getValues() {
return Arrays.stream(values()).map(BranchDataSyncMethodEnum::getValue).toList();
}
public static String getText(String value) {
BranchDataSyncMethodEnum item = Arrays.stream(values()).filter(obj -> value.equals(obj.getValue())).findFirst().orElse(null);
if (item != null) {
return item.getText();
}
return null;
}
}

View File

@@ -0,0 +1,48 @@
package com.czg.account.enums;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import java.util.Arrays;
import java.util.List;
/**
* 店铺经营模式枚举
*
* @author tankaikai
* @since 2025-04-03 16:53
*/
@Getter
@RequiredArgsConstructor
public enum ShopTypeEnum {
/**
* 单店
*/
ONLY("only", "单店"),
/**
* 连锁店
*/
CHAIN("chain", "连锁店"),
/**
* 加盟店
*/
JOIN("join", "加盟店"),
;
private final String value;
private final String text;
public static List<String> getValues() {
return Arrays.stream(values()).map(ShopTypeEnum::getValue).toList();
}
public static String getText(String value) {
ShopTypeEnum item = Arrays.stream(values()).filter(obj -> value.equals(obj.getValue())).findFirst().orElse(null);
if (item != null) {
return item.getText();
}
return null;
}
}

View File

@@ -0,0 +1,14 @@
package com.czg.account.service;
import com.czg.account.entity.ShopConfig;
import com.mybatisflex.core.service.IService;
/**
* 店铺配置扩展
*
* @author Tankaikai tankaikai@aliyun.com
* @since 1.0 2025-04-03
*/
public interface ShopConfigService extends IService<ShopConfig> {
}

View File

@@ -10,7 +10,7 @@ import com.mybatisflex.core.service.IService;
* @author Administrator
*/
public interface ShopInfoService extends IService<ShopInfo> {
Page<ShopInfo> get(PageDTO pageDTO, String shopName, Integer status);
Page<ShopInfo> get(PageDTO pageDTO, String shopName, Integer status, Integer isHeadShop);
Boolean add(ShopInfoAddDTO shopInfoAddDTO);