生日有礼接口

This commit is contained in:
张松
2025-10-14 16:07:24 +08:00
parent c40df0294d
commit b5dd99fa62
21 changed files with 788 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
package com.czg.market.dto;
import com.alibaba.fastjson2.annotation.JSONField;
import com.czg.market.entity.MkBirthdayGiftConfig;
import com.czg.validator.group.UpdateGroup;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
* 消费赠券表 实体类。
*
* @author ww
* @since 2025-09-12
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MkBirthdayGiftDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 是否开启
*/
private Integer isEnable;
/**
* 是否发送短信
*/
private Integer sendSms;
/**
* 短信模板id
*/
private Long templateId;
/**
* 配置信息
*/
private List<MkBirthdayGiftConfig> configList;
}

View File

@@ -0,0 +1,73 @@
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.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 生日有礼 实体类。
*
* @author zs
* @since 2025-10-14
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("mk_birthday_gift")
public class MkBirthdayGift implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 是否开启
*/
private Integer isEnable;
/**
* 是否发送短信
*/
private Integer sendSms;
/**
* 短信模板id
*/
private Long templateId;
/**
* 配置信息
*/
private String configList;
/**
* 主店id
*/
private Long mainShopId;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
/**
* 修改时间
*/
@Column(onInsertValue = "now()", onUpdateValue = "now()")
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,51 @@
package com.czg.market.entity;
import com.czg.market.dto.CouponInfoDTO;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import jakarta.validation.Valid;
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;
/**
* 生日有礼 实体类。
*
* @author zs
* @since 2025-10-14
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MkBirthdayGiftConfig implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 用户类型all 全部用户 vip 会员用户
*/
private String userType;
/**
* 是否开启
*/
private String deliverTime;
private String deliverDate;
/**
* 赠送券信息
*/
@Valid
private List<CouponInfoDTO> couponInfoList;
}

View File

@@ -0,0 +1,58 @@
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.sql.Date;
import java.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 生日有礼记录 实体类。
*
* @author zs
* @since 2025-10-14
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("mk_birthday_gift_record")
public class MkBirthdayGiftRecord implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 用户id
*/
private Long userId;
private Long shopUserId;
/**
* 生日
*/
private Date birthday;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
/**
* 主店id
*/
private Long mainShopId;
}

View File

@@ -0,0 +1,72 @@
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.time.LocalDateTime;
import java.io.Serial;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 实体类。
*
* @author zs
* @since 2025-10-14
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table("mk_birthday_gift_record_coupon")
public class MkBirthdayGiftRecordCoupon implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 券名称
*/
private String couponName;
/**
* 数量
*/
private Integer num;
/**
* give获得 consume消耗
*/
private String type;
/**
* 生日有礼记录id
*/
private Long recordId;
/**
* 用户id
*/
private Long userId;
/**
* 门店用户id
*/
private Long shopUserId;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,14 @@
package com.czg.market.service;
import com.mybatisflex.core.service.IService;
import com.czg.market.entity.MkBirthdayGiftRecordCoupon;
/**
* 服务层。
*
* @author zs
* @since 2025-10-14
*/
public interface MkBirthdayGiftRecordCouponService extends IService<MkBirthdayGiftRecordCoupon> {
}

View File

@@ -0,0 +1,14 @@
package com.czg.market.service;
import com.mybatisflex.core.service.IService;
import com.czg.market.entity.MkBirthdayGiftRecord;
/**
* 生日有礼记录 服务层。
*
* @author zs
* @since 2025-10-14
*/
public interface MkBirthdayGiftRecordService extends IService<MkBirthdayGiftRecord> {
}

View File

@@ -0,0 +1,28 @@
package com.czg.market.service;
import com.czg.market.dto.MkBirthdayGiftDTO;
import com.czg.market.vo.MkBirthdayGiftRecordSummaryVO;
import com.czg.market.vo.MkBirthdayGiftRecordVO;
import com.czg.market.vo.MkBirthdayGiftVO;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import com.czg.market.entity.MkBirthdayGift;
import java.time.LocalDateTime;
/**
* 生日有礼 服务层。
*
* @author zs
* @since 2025-10-14
*/
public interface MkBirthdayGiftService extends IService<MkBirthdayGift> {
MkBirthdayGiftVO detail(Long shopId);
Boolean edit(Long shopId, MkBirthdayGiftDTO giftDTO);
Page<MkBirthdayGiftRecordVO> getRecord(Long shopId, String key, LocalDateTime dateTime);
MkBirthdayGiftRecordSummaryVO summary(Long shopId, String key, LocalDateTime dateTime);
}

View File

@@ -0,0 +1,17 @@
package com.czg.market.vo;
import com.czg.market.entity.MkBirthdayGiftConfig;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author Administrator
*/
@Data
public class MkBirthdayGiftRecordSummaryVO implements Serializable {
private Long totalNum = 0L;
private Long usedNum = 0L;
}

View File

@@ -0,0 +1,61 @@
package com.czg.market.vo;
import com.czg.market.entity.MkBirthdayGiftConfig;
import com.czg.market.entity.MkBirthdayGiftRecordCoupon;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.sql.Date;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author Administrator
*/
@Data
public class MkBirthdayGiftRecordVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Auto)
private Long id;
/**
* 用户id
*/
private Long userId;
/**
* 生日
*/
private Date birthday;
/**
* 赠送优惠券信息
*/
private List<MkBirthdayGiftRecordCoupon> couponList;
/**
* 已经使用的优惠券
*/
private List<MkBirthdayGiftRecordCoupon> usedCouponList;
/**
* 创建时间
*/
@Column(onInsertValue = "now()")
private LocalDateTime createTime;
/**
* 主店id
*/
private Long mainShopId;
private String phone;
private String nickName;
}

View File

@@ -0,0 +1,57 @@
package com.czg.market.vo;
import com.czg.market.entity.MkBirthdayGift;
import com.czg.market.entity.MkBirthdayGiftConfig;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author Administrator
*/
@Data
public class MkBirthdayGiftVO implements Serializable {
private Long id;
/**
* 是否开启
*/
private Integer isEnable;
/**
* 是否发送短信
*/
private Integer sendSms;
/**
* 短信模板id
*/
private Long templateId;
/**
* 配置信息
*/
private List<MkBirthdayGiftConfig> configList;
/**
* 主店id
*/
private Long mainShopId;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 修改时间
*/
private LocalDateTime updateTime;
}