套餐推广管理端接口
This commit is contained in:
@@ -123,6 +123,10 @@ public class ShopConfig implements Serializable {
|
||||
* 拼团开关 1-是 0-否
|
||||
*/
|
||||
private Integer isGroupBuy;
|
||||
/**
|
||||
* 套餐推广 开关
|
||||
*/
|
||||
private Integer isPackagePromotion;
|
||||
|
||||
|
||||
private String dingAppKey;
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.czg.constants;
|
||||
|
||||
/**
|
||||
* @author yjjie
|
||||
* @date 2025/12/18 11:37
|
||||
*/
|
||||
public interface PpPackageConstants {
|
||||
|
||||
/**
|
||||
* 订单状态
|
||||
* ing进行中, wait_verify 待核销,finish 已核销,refunding 退款中,refund 已退款,cancel 已取消,timeout 超时
|
||||
*/
|
||||
class OrderStatus {
|
||||
/**
|
||||
* 进行中
|
||||
*/
|
||||
public static final String PROCESSING = "ing";
|
||||
|
||||
/**
|
||||
* 待核销
|
||||
*/
|
||||
public static final String WAIT_VERIFY = "wait_verify";
|
||||
|
||||
/**
|
||||
* 已核销
|
||||
*/
|
||||
public static final String FINISH = "finish";
|
||||
|
||||
/**
|
||||
* 退款中
|
||||
*/
|
||||
public static final String REFUNDING = "refunding";
|
||||
|
||||
/**
|
||||
* 已退款
|
||||
*/
|
||||
public static final String REFUND = "refund";
|
||||
|
||||
/**
|
||||
* 已取消
|
||||
*/
|
||||
public static final String CANCEL = "cancel";
|
||||
|
||||
/**
|
||||
* 超时
|
||||
*/
|
||||
public static final String TIMEOUT = "timeout";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.czg.constants;
|
||||
|
||||
/**
|
||||
* 系统常量
|
||||
* @author yjjie
|
||||
* @date 2025/12/18 13:45
|
||||
*/
|
||||
public interface SystemConstants {
|
||||
|
||||
/**
|
||||
* 状态 1 0
|
||||
* 是否 1 0
|
||||
*/
|
||||
class OneZero {
|
||||
/**
|
||||
* 是否:是
|
||||
* 状态:允许,开启
|
||||
*/
|
||||
public static final Integer ONE = 1;
|
||||
/**
|
||||
* 是否:否
|
||||
* 状态:进制,关闭
|
||||
*/
|
||||
public static final Integer ZERO = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分店类型
|
||||
*/
|
||||
class SubShopType {
|
||||
/**
|
||||
* 全部
|
||||
*/
|
||||
public static final String ALL = "all";
|
||||
|
||||
/**
|
||||
* 仅本店
|
||||
*/
|
||||
public static final String ONLY = "only";
|
||||
|
||||
/**
|
||||
* 自定义
|
||||
*/
|
||||
public static final String CUSTOM = "custom";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
|
||||
package com.czg.market.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
import lombok.experimental.Accessors;
|
||||
import java.io.Serial;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 套餐推广助力记录 实体类。
|
||||
*
|
||||
* @author gyj
|
||||
* @since 2025-12-18
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class PpHelpRecordDTO implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 自增主键
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 订单 Id
|
||||
*/
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 用户 Id
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 用户头像
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 用户头像
|
||||
*/
|
||||
private String userAvator;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
|
||||
package com.czg.market.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import lombok.experimental.Accessors;
|
||||
import java.io.Serial;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 套餐推广订单 实体类。
|
||||
*
|
||||
* @author gyj
|
||||
* @since 2025-12-18
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Accessors(chain = true)
|
||||
public class PpPackageOrderDTO implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 自增主键
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 店铺 Id
|
||||
*/
|
||||
private Long shopId;
|
||||
|
||||
/**
|
||||
* 订单编号
|
||||
*/
|
||||
private String orderNo;
|
||||
|
||||
/**
|
||||
* 套餐 Id
|
||||
*/
|
||||
private Long packageId;
|
||||
|
||||
/**
|
||||
* 用户 Id
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 分享人数
|
||||
*/
|
||||
private Integer shareNum;
|
||||
|
||||
/**
|
||||
* 最终支付金额
|
||||
*/
|
||||
private BigDecimal finalPrice;
|
||||
|
||||
/**
|
||||
* 订单状态:ing进行中, wait_verify 待核销,finish 已核销,refunding 退款中,refund 已退款,cancel 已取消,timeout 超时
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 支付时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime payTime;
|
||||
|
||||
/**
|
||||
* 支付订单 Id
|
||||
*/
|
||||
private Long payOrderId;
|
||||
|
||||
/**
|
||||
* 核销码
|
||||
*/
|
||||
private String verifyCode;
|
||||
|
||||
/**
|
||||
* 核销时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime verifyTime;
|
||||
|
||||
/**
|
||||
* 取消时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime cancelTime;
|
||||
|
||||
/**
|
||||
* 取消原因
|
||||
*/
|
||||
private String cancelReason;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.czg.market.entity;
|
||||
|
||||
import com.mybatisflex.annotation.Id;
|
||||
import com.mybatisflex.annotation.KeyType;
|
||||
import com.mybatisflex.annotation.Table;
|
||||
import java.io.Serializable;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 套餐推广助力记录 实体类。
|
||||
*
|
||||
* @author gyj
|
||||
* @since 2025-12-18
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Table("pp_help_record")
|
||||
public class PpHelpRecord implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 自增主键
|
||||
*/
|
||||
@Id(keyType = KeyType.Auto)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 订单 Id
|
||||
*/
|
||||
private Long orderId;
|
||||
|
||||
/**
|
||||
* 用户 Id
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 用户头像
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 用户头像
|
||||
*/
|
||||
private String userAvator;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
package com.czg.market.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.time.LocalDateTime;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 套餐推广套餐 实体类。
|
||||
*
|
||||
* @author gyj
|
||||
* @since 2025-12-18
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Table("pp_package")
|
||||
public class PpPackage implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 自增主键
|
||||
*/
|
||||
@Id(keyType = KeyType.Auto)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 店铺ID
|
||||
*/
|
||||
private Long shopId;
|
||||
|
||||
/**
|
||||
* only-仅本店 all全部 /custom 指定
|
||||
* {@link com.czg.constants.SystemConstants.SubShopType}
|
||||
*/
|
||||
private String useShopType;
|
||||
|
||||
/**
|
||||
* 可用门店(指定门店时存储门店ID,逗号分隔)
|
||||
*/
|
||||
private String useShops;
|
||||
|
||||
/**
|
||||
* 套餐名称
|
||||
*/
|
||||
private String packageName;
|
||||
|
||||
/**
|
||||
* 套餐描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 套餐图片
|
||||
*/
|
||||
private String images;
|
||||
|
||||
/**
|
||||
* 套餐原价
|
||||
*/
|
||||
private BigDecimal originPrice;
|
||||
|
||||
/**
|
||||
* 销售价格
|
||||
*/
|
||||
private BigDecimal price;
|
||||
|
||||
/**
|
||||
* 套餐内容 json
|
||||
*/
|
||||
private String packageContent;
|
||||
|
||||
/**
|
||||
* 可用时段:08:00~21:30
|
||||
*/
|
||||
private String useTimes;
|
||||
|
||||
/**
|
||||
* 可用周期: [周一,周二]
|
||||
*/
|
||||
private String useWeeks;
|
||||
|
||||
/**
|
||||
* 其他使用描述
|
||||
*/
|
||||
private String otherDesc;
|
||||
|
||||
/**
|
||||
* 阶梯优惠
|
||||
*/
|
||||
private String tieredDiscount;
|
||||
|
||||
/**
|
||||
* 分享期限(小时)
|
||||
*/
|
||||
private Integer expireHours;
|
||||
|
||||
/**
|
||||
* 上线状态
|
||||
*/
|
||||
private Integer onlineStatus;
|
||||
|
||||
/**
|
||||
* 商品详情图片
|
||||
*/
|
||||
private String detailImages;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Column(onInsertValue = "now()")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@Column(onInsertValue = "now()", onUpdateValue = "now()")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
* 0否1是
|
||||
*/
|
||||
private Integer isDel;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
package com.czg.market.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.time.LocalDateTime;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 套餐推广订单 实体类。
|
||||
*
|
||||
* @author gyj
|
||||
* @since 2025-12-18
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@Accessors(chain = true)
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Table("pp_package_order")
|
||||
public class PpPackageOrder implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 自增主键
|
||||
*/
|
||||
@Id(keyType = KeyType.Auto)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 店铺 Id
|
||||
*/
|
||||
private Long shopId;
|
||||
|
||||
/**
|
||||
* 订单编号
|
||||
*/
|
||||
private String orderNo;
|
||||
|
||||
/**
|
||||
* 套餐 Id
|
||||
*/
|
||||
private Long packageId;
|
||||
|
||||
/**
|
||||
* 用户 Id
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 分享人数
|
||||
*/
|
||||
private Integer shareNum;
|
||||
|
||||
/**
|
||||
* 最终支付金额
|
||||
*/
|
||||
private BigDecimal finalPrice;
|
||||
|
||||
/**
|
||||
* 订单状态:ing进行中, wait_verify 待核销,finish 已核销,refunding 退款中,refund 已退款,cancel 已取消,timeout 超时
|
||||
* {@link com.czg.constants.PpPackageConstants.OrderStatus}
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 支付时间
|
||||
*/
|
||||
private LocalDateTime payTime;
|
||||
|
||||
/**
|
||||
* 支付订单 Id
|
||||
*/
|
||||
private Long payOrderId;
|
||||
|
||||
/**
|
||||
* 核销码
|
||||
*/
|
||||
private String verifyCode;
|
||||
|
||||
/**
|
||||
* 核销时间
|
||||
*/
|
||||
private LocalDateTime verifyTime;
|
||||
|
||||
/**
|
||||
* 取消时间
|
||||
*/
|
||||
private LocalDateTime cancelTime;
|
||||
|
||||
/**
|
||||
* 取消原因
|
||||
*/
|
||||
private String cancelReason;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@Column(onInsertValue = "now()")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@Column(onInsertValue = "now()", onUpdateValue = "now()")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.czg.market.service;
|
||||
|
||||
import com.mybatisflex.core.service.IService;
|
||||
import com.czg.market.entity.PpHelpRecord;
|
||||
|
||||
/**
|
||||
* 套餐推广助力记录 服务层。
|
||||
*
|
||||
* @author gyj
|
||||
* @since 2025-12-18
|
||||
*/
|
||||
public interface PpHelpRecordService extends IService<PpHelpRecord> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.czg.market.service;
|
||||
|
||||
import com.mybatisflex.core.service.IService;
|
||||
import com.czg.market.entity.PpPackageOrder;
|
||||
|
||||
/**
|
||||
* 套餐推广订单 服务层。
|
||||
*
|
||||
* @author gyj
|
||||
* @since 2025-12-18
|
||||
*/
|
||||
public interface PpPackageOrderService extends IService<PpPackageOrder> {
|
||||
|
||||
/**
|
||||
* 创建推广订单
|
||||
*/
|
||||
Long createPackageOrder(Long packageId);
|
||||
|
||||
/**
|
||||
* 获取进行中的套餐推广订单数量
|
||||
*/
|
||||
long getProgressingPackageOrderCount(Long packageId);
|
||||
|
||||
/**
|
||||
* 将所有正在进行的推广订单设置为取消
|
||||
*/
|
||||
void cancelProgressingPackageOrder(Long shopId, Long packageId);
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.czg.market.service;
|
||||
|
||||
import com.czg.market.vo.PpPackagePageReqVo;
|
||||
import com.czg.market.vo.PpPackageVO;
|
||||
import com.mybatisflex.core.paginate.Page;
|
||||
import com.mybatisflex.core.service.IService;
|
||||
import com.czg.market.entity.PpPackage;
|
||||
|
||||
/**
|
||||
* 套餐推广套餐 服务层。
|
||||
*
|
||||
* @author gyj
|
||||
* @since 2025-12-18
|
||||
*/
|
||||
public interface PpPackageService extends IService<PpPackage> {
|
||||
|
||||
/**
|
||||
* 获取套餐推广开关
|
||||
*/
|
||||
Integer getPackagePromotionSwitch();
|
||||
|
||||
/**
|
||||
* 更新套餐开关
|
||||
*/
|
||||
boolean updatePackagePromotionSwitch(Integer status);
|
||||
|
||||
/**
|
||||
* 插入套餐
|
||||
*/
|
||||
void insertPackage(PpPackageVO packageVO);
|
||||
|
||||
/**
|
||||
* 更新套餐
|
||||
*/
|
||||
void updatePackage(PpPackageVO packageVO);
|
||||
|
||||
/**
|
||||
* 删除套餐
|
||||
*/
|
||||
long deletePackage(Long id);
|
||||
|
||||
/**
|
||||
* 确认删除套餐
|
||||
*/
|
||||
void sureDeletePackage(Long id);
|
||||
|
||||
/**
|
||||
* 获取套餐分页
|
||||
*/
|
||||
Page<PpPackageVO> getPackagePage(PpPackagePageReqVo reqVo, boolean isAdmin);
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.czg.market.vo;
|
||||
|
||||
import com.czg.BaseQueryParam;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @author yjjie
|
||||
* @date 2025/12/18 11:25
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class PpPackagePageReqVo extends BaseQueryParam {
|
||||
/**
|
||||
* 上架状态
|
||||
*/
|
||||
private Integer onlineStatus;
|
||||
|
||||
/**
|
||||
* 套餐名称
|
||||
*/
|
||||
private String packageName;
|
||||
}
|
||||
@@ -0,0 +1,176 @@
|
||||
package com.czg.market.vo;
|
||||
|
||||
import com.alibaba.fastjson2.annotation.JSONField;
|
||||
import com.czg.validator.group.InsertGroup;
|
||||
import com.czg.validator.group.UpdateGroup;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author yjjie
|
||||
* @date 2025/12/18 10:22
|
||||
*/
|
||||
@Data
|
||||
public class PpPackageVO {
|
||||
|
||||
@Data
|
||||
public static class TieredDiscount {
|
||||
/**
|
||||
* 人数
|
||||
*/
|
||||
private Integer peopleNum;
|
||||
|
||||
/**
|
||||
* 价格
|
||||
*/
|
||||
private BigDecimal price;
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class PackageContent {
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 选择数量
|
||||
*/
|
||||
private Integer num;
|
||||
|
||||
/**
|
||||
* 商品内容
|
||||
*/
|
||||
private List<PackageProduct> packageProducts;
|
||||
}
|
||||
|
||||
|
||||
@Data
|
||||
public static class PackageProduct {
|
||||
/**
|
||||
* 名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 价格
|
||||
*/
|
||||
private BigDecimal price;
|
||||
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private Integer num;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 自增主键
|
||||
*/
|
||||
@NotNull(message = "id不能为空", groups = {UpdateGroup.class})
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 店铺ID
|
||||
*/
|
||||
private Long shopId;
|
||||
|
||||
/**
|
||||
* 可用门店:only-仅本店 all全部 /custom 指定
|
||||
* {@link com.czg.constants.SystemConstants.SubShopType}
|
||||
*/
|
||||
@NotBlank(message = "可用门店不能为空", groups = {UpdateGroup.class, InsertGroup.class})
|
||||
private String useShopType;
|
||||
|
||||
/**
|
||||
* 可用门店(指定门店时存储门店ID,逗号分隔)
|
||||
*/
|
||||
private String useShops;
|
||||
|
||||
/**
|
||||
* 套餐名称
|
||||
*/
|
||||
@NotBlank(message = "套餐名称不能为空", groups = {UpdateGroup.class, InsertGroup.class})
|
||||
private String packageName;
|
||||
|
||||
/**
|
||||
* 套餐描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 套餐图片
|
||||
*/
|
||||
@NotNull(message = "套餐图片不能为空", groups = {UpdateGroup.class, InsertGroup.class})
|
||||
private List<String> images;
|
||||
|
||||
/**
|
||||
* 套餐原价
|
||||
*/
|
||||
@NotNull(message = "套餐原价不能为空", groups = {UpdateGroup.class, InsertGroup.class})
|
||||
private BigDecimal originPrice;
|
||||
|
||||
/**
|
||||
* 销售价格
|
||||
*/
|
||||
@NotNull(message = "销售价格不能为空", groups = {UpdateGroup.class, InsertGroup.class})
|
||||
private BigDecimal price;
|
||||
|
||||
/**
|
||||
* 套餐内容 json
|
||||
*/
|
||||
@NotNull(message = "套餐内容不能为空", groups = {UpdateGroup.class, InsertGroup.class})
|
||||
private List<PackageContent> packageContent;
|
||||
|
||||
/**
|
||||
* 可用时段:08:00~21:30
|
||||
*/
|
||||
private String useTimes;
|
||||
|
||||
/**
|
||||
* 可用周期: [周一,周二]
|
||||
*/
|
||||
private List<String> useWeeks;
|
||||
|
||||
/**
|
||||
* 其他使用描述
|
||||
*/
|
||||
private String otherDesc;
|
||||
|
||||
/**
|
||||
* 阶梯优惠
|
||||
*/
|
||||
private List<TieredDiscount> tieredDiscount;
|
||||
|
||||
/**
|
||||
* 分享期限(小时)
|
||||
*/
|
||||
private Integer expireHours;
|
||||
|
||||
/**
|
||||
* 上线状态
|
||||
*/
|
||||
private Integer onlineStatus = 1;
|
||||
|
||||
/**
|
||||
* 商品详情图片
|
||||
*/
|
||||
private String detailImages;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime updateTime;
|
||||
}
|
||||
@@ -21,6 +21,7 @@ public enum OrderNoPrefixEnum {
|
||||
GB("GB", "拼团-团单号"),
|
||||
GBO("GBO", "拼团-订单号"),
|
||||
REG("REG", "拼团-退单"),
|
||||
PPO("PPO", "套餐推广订单号"),
|
||||
;
|
||||
|
||||
private final String value;
|
||||
|
||||
Reference in New Issue
Block a user