限时折扣 用户端接口

This commit is contained in:
2025-10-21 15:43:18 +08:00
parent 02cbb27eac
commit a2cd91bf75
10 changed files with 531 additions and 12 deletions

View File

@@ -0,0 +1,133 @@
package com.czg.market.dto;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serial;
import java.io.Serializable;
import java.sql.Time;
import java.time.LocalDateTime;
/**
* 限时折扣 实体类。
*
* @author ww
* @since 2025-10-21
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class MkLimitTimeDiscountDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 自增主键
*/
private Long id;
/**
* 店铺ID
*/
private Long shopId;
/**
* only-仅本店 all全部 /custom 指定
*/
private String useShopType;
/**
* 可用门店
*/
private String useShops;
/**
* 有效期开始时间
*/
private String validStartTime;
/**
* 有效期结束时间
*/
private String validEndTime;
/**
* 可用周期,示例:周一,周二,周三,周四,周五,周六,周日
*/
private String useDays;
/**
* 可用时间段类型all-全时段custom-指定时段
*/
private String useTimeType;
/**
* 可用开始时间
*/
private Time useStartTime;
/**
* 可用结束时间
*/
private Time useEndTime;
/**
* 可使用类型:堂食 dine-in 外带 take-out 外卖 take-away 配送 post
* 示例 dine-in,take-out,take-away,post
*/
private String useType;
/**
* 折扣% 范围1-99
*/
private Integer discountRate;
/**
* 数字越小级别越高
*/
private Integer sort;
/**
* 折扣优先级 limit-time/vip-price
*/
private String discountPriority;
/**
* 参与商品 1全部 2部分
*/
private Integer foodType;
/**
* 参与商品
*/
private String foods;
/**
* 状态1未开始2进行中3已结束 -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;
/**
* 0否1是
*/
private Boolean isDel;
}

View File

@@ -0,0 +1,142 @@
package com.czg.market.entity;
import com.alibaba.fastjson2.annotation.JSONField;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
/**
* 限时折扣 实体类。
*
* @author ww
* @since 2025-10-21
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("mk_limit_time_discount")
public class MkLimitTimeDiscount implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 自增主键
*/
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 店铺ID
*/
private Long shopId;
/**
* only-仅本店 all全部 /custom 指定
*/
private String useShopType;
/**
* 可用门店
*/
private String useShops;
/**
* 有效期开始时间
*/
@JSONField(format = "yyyy-MM-dd")
private LocalDate validStartTime;
/**
* 有效期结束时间
*/
@JSONField(format = "yyyy-MM-dd")
private LocalDate validEndTime;
/**
* 可用周期,如:周一,周二,周三,周四,周五,周六,周日
*/
private String useDays;
/**
* 可用时间段类型all-全时段custom-指定时段
*/
private String useTimeType;
/**
* 可用开始时间
*/
@JSONField(format = "HH:mm")
private LocalTime useStartTime;
/**
* 可用结束时间
*/
@JSONField(format = "HH:mm")
private LocalTime useEndTime;
/**
* 可使用类型:堂食 dine-in 外带 take-out 外卖 take-away 配送 post
*/
private String useType;
/**
* 折扣% 范围1-99
*/
private Integer discountRate;
/**
* 数字越小级别越高
*/
private Integer sort;
/**
* 折扣优先级 limit-time/vip-price
*/
private String discountPriority;
/**
* 参与商品 1全部 2部分
*/
private Integer foodType;
/**
* 参与商品
*/
private String foods;
/**
* 状态1未开始2进行中3已结束 -1当前时间不可用
*/
private Integer status;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
/**
* 更新时间
*/
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
/**
* 0否1是
*/
private Boolean isDel;
}

View File

@@ -0,0 +1,25 @@
package com.czg.market.service;
import com.czg.TimeQueryParam;
import com.czg.market.dto.MkLimitTimeDiscountDTO;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.czg.market.entity.MkLimitTimeDiscount;
/**
* 限时折扣 服务层。
*
* @author ww
* @since 2025-10-21
*/
public interface MkLimitTimeDiscountService extends IService<MkLimitTimeDiscount> {
Page<MkLimitTimeDiscountDTO> getLimitTimeDiscountPage(TimeQueryParam param, Long shopId);
MkLimitTimeDiscount getLimitTimeDiscountByShopId(Long shopId);
void addLimitTimeDiscount(MkLimitTimeDiscountDTO param);
void updateLimitTimeDiscountById(MkLimitTimeDiscountDTO param);
void deleteLimitTimeDiscount(Long id);
}