@@ -0,0 +1,60 @@
|
||||
package com.yunhai.acaclassassign.entity;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Table;
|
||||
import javax.persistence.UniqueConstraint;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 分班结果推送记录:每项目一条(提交分班结果 → 推送班级管理)。
|
||||
* <p>推送与提交解耦:推送异常不回滚提交锁定,只影响本表状态;
|
||||
* 状态机 0未推送 → 4推送中 → 1已推送 / 2部分失败 / 3失败(推送中拒绝重复 Push)。
|
||||
* 重推幂等依赖被推方按 code/account 查重,本表只收敛状态与失败明细。</p>
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@Entity
|
||||
@Table(name = "aca_assign_push",
|
||||
uniqueConstraints = @UniqueConstraint(name = "uk_apush_project", columnNames = "project_id"))
|
||||
public class AssignPush extends BaseEntity {
|
||||
|
||||
public static final int STATUS_NONE = 0;
|
||||
|
||||
public static final int STATUS_OK = 1;
|
||||
|
||||
public static final int STATUS_PARTIAL = 2;
|
||||
|
||||
public static final int STATUS_FAIL = 3;
|
||||
|
||||
public static final int STATUS_PUSHING = 4;
|
||||
|
||||
/** 所属分班项目(唯一) */
|
||||
@Column(name = "project_id", nullable = false)
|
||||
private Integer projectId;
|
||||
|
||||
/** 状态:0未推送 1已推送 2部分失败 3失败 4推送中 */
|
||||
@Column(name = "status", nullable = false, columnDefinition = "TINYINT DEFAULT 0")
|
||||
private Integer status;
|
||||
|
||||
/** 最近一次推送完成时间 */
|
||||
@Column(name = "push_time")
|
||||
private LocalDateTime pushTime;
|
||||
|
||||
/** 本地班级id → 平台班级id(班级组id)映射 JSON:{"12":9901,...} */
|
||||
@Column(name = "class_map_json", columnDefinition = "TEXT")
|
||||
private String classMapJson;
|
||||
|
||||
/** 未成功学生明细 JSON:[{"studentId":1,"name":"张三","reason":"..."}](跨多次推送合并收敛) */
|
||||
@Column(name = "fail_json", columnDefinition = "TEXT")
|
||||
private String failJson;
|
||||
|
||||
/** 摘要信息(成功 N 班 M 人 / 失败原因) */
|
||||
@Column(name = "msg", length = 512)
|
||||
private String msg;
|
||||
}
|
||||
Reference in New Issue
Block a user