@@ -0,0 +1,71 @@
|
||||
package com.yunhai.campusnotice.entity;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 通知阅读记录(懒标记)。对应原 .NET Notify_ReceiveList 的「逐用户阅读状态」语义,
|
||||
* 但仅在读者首次查看时落库,避免发通知时预插全员。
|
||||
* <p>
|
||||
* 唯一约束 (notice_id, reader_account):同一用户对同一通知只记一条已读。
|
||||
*/
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "notice_read",
|
||||
uniqueConstraints = @UniqueConstraint(
|
||||
name = "uk_notice_reader",
|
||||
columnNames = {"notice_id", "reader_account"}))
|
||||
@EqualsAndHashCode(onlyExplicitlyIncluded = true, callSuper = false)
|
||||
public class NoticeRead extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 通知ID(关联 notice.id)
|
||||
*/
|
||||
@Column(name = "notice_id", nullable = false)
|
||||
private Integer noticeId;
|
||||
|
||||
/**
|
||||
* 读者登录账号
|
||||
*/
|
||||
@Column(name = "reader_account", nullable = false, length = 64)
|
||||
private String readerAccount;
|
||||
|
||||
/**
|
||||
* 读者姓名
|
||||
*/
|
||||
@Column(name = "reader_name", length = 64)
|
||||
private String readerName;
|
||||
|
||||
/**
|
||||
* 阅读时间
|
||||
*/
|
||||
@Column(name = "read_time")
|
||||
private LocalDateTime readTime;
|
||||
|
||||
// ==================== 阅读身份快照(改造方案 2.3,学员阅读时带出) ====================
|
||||
|
||||
/** 学校ID(取通知 sch_id) */
|
||||
@Column(name = "sch_id")
|
||||
private Integer schId;
|
||||
|
||||
/** 年级ID快照 */
|
||||
@Column(name = "grade_id")
|
||||
private Integer gradeId;
|
||||
|
||||
/** 年级名称快照 */
|
||||
@Column(name = "grade_name", length = 128)
|
||||
private String gradeName;
|
||||
|
||||
/** 班级ID快照 */
|
||||
@Column(name = "class_id")
|
||||
private Integer classId;
|
||||
|
||||
/** 班级名称快照 */
|
||||
@Column(name = "class_name", length = 128)
|
||||
private String className;
|
||||
}
|
||||
Reference in New Issue
Block a user