Merge remote-tracking branch 'origin/master'

This commit is contained in:
Tankaikai
2025-02-20 11:27:00 +08:00
42 changed files with 1658 additions and 2 deletions

View File

@@ -0,0 +1,69 @@
package com.czg.account.dto;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.alibaba.fastjson2.annotation.JSONField;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* Pad商品布局版式 实体类。
*
* @author zs
* @since 2025-02-20
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PadLayoutDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
/**
* 布局版式名称
*/
private String name;
/**
* 布局版式代码
*/
private String code;
/**
* 允许展示最大商品数
*/
private Integer maximum;
/**
* 详细描述
*/
private String remark;
/**
* 排序号,升序
*/
private Integer sort;
/**
* 创建时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/**
* 删除标志 0-正常 1-已删除
*/
private Integer isDel;
}

View File

@@ -0,0 +1,49 @@
package com.czg.account.dto;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.alibaba.fastjson2.annotation.JSONField;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* Pad商品自定义分类明细 实体类。
*
* @author zs
* @since 2025-02-20
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PadProductCategoryDetailDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
/**
* Pad商品自定义分类id
*/
private Long padProductCategoryId;
/**
* 商品id
*/
private Long productId;
/**
* 创建时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,187 @@
package com.czg.account.dto;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Time;
import java.time.LocalDateTime;
import com.alibaba.fastjson2.annotation.JSONField;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 商品 实体类。
*
* @author zs
* @since 2025-02-20
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProductDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
/**
* 商品分类
*/
private Long categoryId;
/**
* 商品规格
*/
private Long specId;
/**
* 单位id
*/
private Long unitId;
/**
* 店铺id
*/
private Long shopId;
/**
* 商品名称
*/
private String name;
/**
* 短标题--促销语
*/
private String shortTitle;
/**
* 商品类型 single-单规格商品 sku-多规格商品 package-套餐商品 weight-称重商品 coupon-团购券
*/
private String type;
/**
* 0 固定套餐 1可选套餐
*/
private Integer groupType;
/**
* 包装费
*/
private BigDecimal packFee;
/**
* 商品封面图
*/
private String coverImg;
/**
* 商品图片(第一张为缩略图,其他为详情)
*/
private String images;
/**
* 套餐内容
*/
private String groupSnap;
/**
* 库存警戒线
*/
private Integer warnLine;
/**
* 称重 价格/千克
*/
private BigDecimal weight;
/**
* 是否允许临时改价
*/
private Integer isAllowTempModifyPrice;
/**
* 周 数组 'Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday'
*/
private String days;
/**
* 可用开始时间
*/
private Time startTime;
/**
* 可用结束时间
*/
private Time endTime;
/**
* 规格选详情
*/
private String selectSpecInfo;
/**
* 排序
*/
private Integer sort;
/**
* 是否热销
*/
private Integer isHot;
/**
* 是否开启库存
*/
private Integer isStock;
/**
* 是否售罄
*/
private Integer isSoldStock;
/**
* 团购卷分类,可有多个分类
*/
private String groupCategoryId;
/**
* 商品级库存数量
*/
private Integer stockNumber;
/**
* 是否上架
*/
private Boolean isSale;
/**
* 退款是否退回库存
*/
private Boolean isRefundStock;
/**
* 创建时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/**
* 更新时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
/**
* 逻辑删除
*/
private Integer isDel;
}

View File

@@ -0,0 +1,90 @@
package com.czg.account.dto;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.alibaba.fastjson2.annotation.JSONField;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 商品分类 实体类。
*
* @author zs
* @since 2025-02-20
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ShopProdCategoryDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
/**
* 分类名称
*/
private String name;
/**
* 简称
*/
private String shortName;
/**
* 上级分类id-为0则表示是顶级
*/
private Long pid;
/**
* 图标
*/
private String pic;
/**
* 店铺Id
*/
private Long shopId;
/**
* 分类描述
*/
private String detail;
/**
* 排序
*/
private Integer sort;
/**
* 关键词
*/
private String keyWord;
/**
* 状态 0-禁用 1-启用
*/
private Integer status;
/**
* 创建时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
/**
* 更新时间
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,31 @@
package com.czg.account.dto.pad;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
*/
@Data
public class PadDetailAddDTO {
/**
* 布局id
*/
@NotNull(message = "布局id不为空")
private Long padLayoutId;
/**
* 商品分类id
*/
@NotNull(message = "商品分类id不为空")
private Long productCategoryId;
/**
* 商品id集合
*/
@NotNull(message = "商品id不为空")
@NotEmpty(message = "商品id不为空")
private List<Long> productIdList;
}

View File

@@ -0,0 +1,17 @@
package com.czg.account.dto.pad;
import com.czg.account.entity.Product;
import lombok.Data;
import java.util.List;
/**
* @author Administrator
*/
@Data
public class PadDetailDTO {
private Long id;
private Long padLayoutId;
private List<Long> productIdList;
private List<Product> productList;
}

View File

@@ -0,0 +1,19 @@
package com.czg.account.dto.pad;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
*/
@Data
public class PadDetailDelDTO {
/**
* 列表id
*/
@NotNull(message = "tb_pad_product_categoryId不为空")
private Long id;
}

View File

@@ -0,0 +1,21 @@
package com.czg.account.dto.pad;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
*/
@Data
public class PadDetailEditDTO {
/**
* 列表id
*/
@NotNull(message = "tb_pad_product_categoryId不为空")
private Long id;
private Long padLayoutId;
private List<Long> productIdList = new ArrayList<>();
}

View File

@@ -0,0 +1,57 @@
package com.czg.account.dto.pad;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* Pad商品布局版式 实体类。
*
* @author zs
* @since 2025-02-20
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PadLayoutAddDTO implements Serializable {
/**
* 布局版式名称
*/
private String customName;
/**
* 布局id
*/
private Long padLayoutId;
/**
* 分类id
*/
private Long productCategoryId;
/**
* 商品id集合
*/
private List<Long> productIdList;
/**
* 详细描述
*/
private String remark;
/**
* 排序号,升序
*/
private Integer sort;
}

View File

@@ -0,0 +1,89 @@
package com.czg.account.dto.pad;
import com.czg.product.entity.Product;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Pad商品自定义分类
*
* @author tankaikai
* @since 2024-10-22 17:07
*/
@Data
public class PadProductCategoryDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
/**
* 布局版式id
*/
private Long padLayoutId;
/**
* 自定义名称
*/
private String customName;
/**
* 商品分类id
*/
private Long productCategoryId;
/**
* 店铺id
*/
private Long shopId;
/**
* 排序
*/
private Integer sort;
/**
* 备注
*/
private String remark;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 商品名称
*/
private String productNames;
/**
* 布局版式代码
*/
private String padLayoutCode;
/**
* 布局类型
*/
private String padLayoutName;
/**
* 分类名称
*/
private String productCategoryName;
/**
* 商品id列表
*/
private List<Long> productIdList = new ArrayList<>();
/**
* 商品列表
*/
private List<Product> productList = new ArrayList<>();
}

View File

@@ -0,0 +1,75 @@
package com.czg.account.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* Pad商品布局版式 实体类。
*
* @author zs
* @since 2025-02-20
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_pad_layout")
public class PadLayout implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 布局版式名称
*/
private String name;
/**
* 布局版式代码
*/
private String code;
/**
* 允许展示最大商品数
*/
private Integer maximum;
/**
* 详细描述
*/
private String remark;
/**
* 排序号,升序
*/
private Integer sort;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
/**
* 删除标志 0-正常 1-已删除
*/
private Integer isDel;
}

View File

@@ -0,0 +1,83 @@
package com.czg.account.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* Pad商品自定义分类 实体类。
*
* @author zs
* @since 2025-02-20
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_pad_product_category")
@Accessors(chain = true)
public class PadProductCategory implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 布局版式id
*/
private Long padLayoutId;
/**
* 自定义名称
*/
private String customName;
/**
* 商品分类id
*/
private Long productCategoryId;
/**
* 店铺id
*/
private Long shopId;
/**
* 排序
*/
private Integer sort;
/**
* 备注
*/
private String remark;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
/**
* 更新时间
*/
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,57 @@
package com.czg.account.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
/**
* Pad商品自定义分类明细 实体类。
*
* @author zs
* @since 2025-02-20
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_pad_product_category_detail")
@Accessors(chain = true)
public class PadProductCategoryDetail implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@Id(keyType = KeyType.Auto)
private Long id;
/**
* Pad商品自定义分类id
*/
private Long padProductCategoryId;
/**
* 商品id
*/
private Long productId;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,193 @@
package com.czg.account.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Time;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 商品 实体类。
*
* @author zs
* @since 2025-02-20
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_product")
public class Product implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 商品分类
*/
private Long categoryId;
/**
* 商品规格
*/
private Long specId;
/**
* 单位id
*/
private Long unitId;
/**
* 店铺id
*/
private Long shopId;
/**
* 商品名称
*/
private String name;
/**
* 短标题--促销语
*/
private String shortTitle;
/**
* 商品类型 single-单规格商品 sku-多规格商品 package-套餐商品 weight-称重商品 coupon-团购券
*/
private String type;
/**
* 0 固定套餐 1可选套餐
*/
private Integer groupType;
/**
* 包装费
*/
private BigDecimal packFee;
/**
* 商品封面图
*/
private String coverImg;
/**
* 商品图片(第一张为缩略图,其他为详情)
*/
private String images;
/**
* 套餐内容
*/
private String groupSnap;
/**
* 库存警戒线
*/
private Integer warnLine;
/**
* 称重 价格/千克
*/
private BigDecimal weight;
/**
* 是否允许临时改价
*/
private Integer isAllowTempModifyPrice;
/**
* 周 数组 'Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday'
*/
private String days;
/**
* 可用开始时间
*/
private Time startTime;
/**
* 可用结束时间
*/
private Time endTime;
/**
* 规格选详情
*/
private String selectSpecInfo;
/**
* 排序
*/
private Integer sort;
/**
* 是否热销
*/
private Integer isHot;
/**
* 是否开启库存
*/
private Integer isStock;
/**
* 是否售罄
*/
private Integer isSoldStock;
/**
* 团购卷分类,可有多个分类
*/
private String groupCategoryId;
/**
* 商品级库存数量
*/
private Integer stockNumber;
/**
* 是否上架
*/
private Boolean isSale;
/**
* 退款是否退回库存
*/
private Boolean isRefundStock;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
/**
* 更新时间
*/
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
/**
* 逻辑删除
*/
private Integer isDel;
}

View File

@@ -0,0 +1,96 @@
package com.czg.account.entity;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 商品分类 实体类。
*
* @author zs
* @since 2025-02-20
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("tb_shop_prod_category")
public class ShopProdCategory implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 分类名称
*/
private String name;
/**
* 简称
*/
private String shortName;
/**
* 上级分类id-为0则表示是顶级
*/
private Long pid;
/**
* 图标
*/
private String pic;
/**
* 店铺Id
*/
private Long shopId;
/**
* 分类描述
*/
private String detail;
/**
* 排序
*/
private Integer sort;
/**
* 关键词
*/
private String keyWord;
/**
* 状态 0-禁用 1-启用
*/
private Integer status;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
/**
* 更新时间
*/
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
}

View File

@@ -93,6 +93,8 @@ public class ShopStaff implements Serializable {
private String accountName;
@Column(ignore = true)
private String accountPwd;
@Column(ignore = true)
private String phone;
}

View File

@@ -0,0 +1,14 @@
package com.czg.account.service;
import com.mybatisflex.core.service.IService;
import com.czg.account.entity.PadLayout;
/**
* Pad商品布局版式 服务层。
*
* @author zs
* @since 2025-02-20
*/
public interface PadLayoutService extends IService<PadLayout> {
}

View File

@@ -0,0 +1,19 @@
package com.czg.account.service;
import com.czg.account.dto.pad.*;
import com.mybatisflex.core.paginate.Page;
/**
* @author Administrator
*/
public interface PadProdService {
Page<PadProductCategoryDTO> pageInfo(Page<PadProductCategoryDTO> objectPage, Long productCategoryId, Long shopId);
PadDetailDTO detail(Long shopId, Long padProductCategory);
Boolean edit(Long shopId, PadDetailEditDTO padDetailEditDTO);
Boolean add(Long shopId, PadDetailAddDTO padDetailAddDTO);
Boolean del(Long shopId, PadDetailDelDTO delDTO);
}

View File

@@ -0,0 +1,14 @@
package com.czg.account.service;
import com.mybatisflex.core.service.IService;
import com.czg.account.entity.PadProductCategoryDetail;
/**
* Pad商品自定义分类明细 服务层。
*
* @author zs
* @since 2025-02-20
*/
public interface PadProductCategoryDetailService extends IService<PadProductCategoryDetail> {
}

View File

@@ -0,0 +1,14 @@
package com.czg.account.service;
import com.mybatisflex.core.service.IService;
import com.czg.account.entity.PadProductCategory;
/**
* Pad商品自定义分类 服务层。
*
* @author zs
* @since 2025-02-20
*/
public interface PadProductCategoryService extends IService<PadProductCategory> {
}

View File

@@ -0,0 +1,14 @@
package com.czg.account.service;
import com.mybatisflex.core.service.IService;
import com.czg.account.entity.Product;
/**
* 商品 服务层。
*
* @author zs
* @since 2025-02-20
*/
public interface ProductService extends IService<Product> {
}

View File

@@ -0,0 +1,14 @@
package com.czg.account.service;
import com.mybatisflex.core.service.IService;
import com.czg.account.entity.ShopProdCategory;
/**
* 商品分类 服务层。
*
* @author zs
* @since 2025-02-20
*/
public interface ShopProdCategoryService extends IService<ShopProdCategory> {
}