package com.punchsettle.server.atomic.entity; import java.io.Serial; import java.io.Serializable; import java.time.LocalDate; import com.punchsettle.server.common.pojo.BaseEntity; import com.punchsettle.server.constant.PunchInStatusEnum; import jakarta.persistence.Column; import jakarta.persistence.Table; import lombok.Data; import lombok.EqualsAndHashCode; import org.springframework.beans.factory.annotation.Autowired; /** * @author tyuio * @version 1.0.0 * @description 打卡多任务记录表 * @date 2025/04/08 09:49 */ @Data @EqualsAndHashCode(callSuper = true) @Table(name = "pi_multi_task_history") public class PiMultiTaskHistory extends BaseEntity implements Serializable { @Serial private static final long serialVersionUID = -8993538007673896334L; /** * 用户ID */ @Column(name = "user_id") private Long userId; /** * 打卡多任务唯一ID */ @Column(name = "multi_task_unique_id") private Long multiTaskUniqueId; /** * 打卡日期 */ @Column(name = "punch_in_date") private String punchInDate; /** * 总任务数 */ @Column(name = "total_task_count") private Integer totalTaskCount; /** * 打卡完成数 */ @Column(name = "punch_in_done_count") private Integer punchInDoneCount; /** * 任务连续打卡状态(连续打卡-CONTINUE、中断-INTERRUPTED) */ @Column(name = "task_continue_status") private String taskContinueStatus; /** * 任务连续天数,第一天开始就等于1 */ @Column(name = "task_continue_day") private Integer taskContinueDay; /** * 连续阶段(宽限期-GRACE_STAGE,正常打卡期-NORMAL_STAGE,惩罚期-PENALTY_STAGE) */ @Column(name = "continue_stage") private String continueStage; /** * 阶段开始日期 */ @Column(name = "stage_start_date") private LocalDate stageStartDate; /** * 阶段结束日期 */ @Column(name = "stage_end_date") private LocalDate stageEndDate; /** * 连续中断次数 */ @Column(name = "continue_interrupted_count") private Integer continueInterruptedCount; /** * 打卡结果(DONE-完成,UNDONE-未完成) * @see PunchInStatusEnum */ @Column(name = "punch_in_result") private PunchInStatusEnum punchInResult; /** * 结算结果(未结算-UNSETTLED,已结算-SETTLED) */ @Column(name = "settle_result") private String settleResult; /** * 结算任务执行ID */ @Column(name = "settle_task_history_id") private Long settleTaskHistoryId; /** * 结算时的打卡多任务ID */ @Column(name = "settle_pi_multi_task_id") private Long settlePiMultiTaskId; /** * 结算奖励积分 */ @Column(name = "settle_points") private Integer settlePoints; }