CheckInPeriod.java 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.xuekairui.activity.entity;
  2. import com.baomidou.mybatisplus.annotation.*;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. import lombok.AllArgsConstructor;
  6. import lombok.Builder;
  7. import java.time.LocalDate;
  8. import java.time.LocalDateTime;
  9. /**
  10. * 签到周期表(每个周期一行,运营端可手动增删改)
  11. * <p>
  12. * 周期模式 cycleMode 决定周期的星期范围(如 FRI_THU=周五到下周四),
  13. * 每条记录定义该周期的起止日期、所需签到天数、达标奖励。
  14. * 活动全局开关和默认值在 t_checkin_config 中。
  15. * 用户奖励发放记录在 t_checkin_reward_record 中。
  16. */
  17. @Data
  18. @NoArgsConstructor
  19. @AllArgsConstructor
  20. @Builder
  21. @TableName("t_checkin_period")
  22. public class CheckInPeriod {
  23. @TableId(type = IdType.AUTO)
  24. private Long id;
  25. /** 周期名称,如"第1周(7/10~7/16)" */
  26. private String periodName;
  27. /** 周期模式:FRI_THU(周五~下周四) / MON_SUN(周一~周日) */
  28. private String cycleMode;
  29. /** 周期起始日 */
  30. private LocalDate startDate;
  31. /** 周期截止日 */
  32. private LocalDate endDate;
  33. /** 周期内需签到天数 */
  34. private Integer requiredDays;
  35. /** 达标模式:CUMULATIVE-周期内累计签到N天 / CONSECUTIVE-周期内连续签到N天 */
  36. @Builder.Default
  37. private String rewardMode = "CUMULATIVE";
  38. /** 达标奖励会员天数 */
  39. private Integer rewardDays;
  40. /** 奖励会员等级 */
  41. @Builder.Default
  42. private String rewardLevel = "PRO";
  43. /** 状态:PENDING-待开始 / ACTIVE-进行中 / CLOSED-已结束 */
  44. @Builder.Default
  45. private String status = "PENDING";
  46. /** 排序(数字越小越靠前) */
  47. @Builder.Default
  48. private Integer sort = 0;
  49. @TableField(fill = FieldFill.INSERT)
  50. private LocalDateTime createTime;
  51. @TableField(fill = FieldFill.INSERT_UPDATE)
  52. private LocalDateTime updateTime;
  53. }