package com.yunhai.userhome.entity; import com.yunhai.userhome.common.BaseEntity; import com.yunhai.userhome.model.SetType; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.Index; import javax.persistence.Table; import java.util.Date; /** * 用户「常用应用」设置(本地表)。 * *
对齐旧 UserHome used_app 结构:一行存一组常用(appIds 逗号分隔), * 按 {@code setType(0系统/1学校/2用户) + setId + roleType + schId} 四维唯一覆盖保存。 * 应用元数据不落本地,跨仓来自 UserBase。
*/ @NoArgsConstructor @Data @Entity @Table( name = "used_app", indexes = { @Index(name = "idx_used_app_set", columnList = "set_id,set_type,role_type,sch_id") } ) @EqualsAndHashCode(onlyExplicitlyIncluded = true, callSuper = false) public class UsedApp extends BaseEntity { /** 常用应用ID,逗号分隔字符串(按展示顺序)。 */ @Column(name = "app_ids", length = 500) private String appIds; /** 设置级别:0=系统 1=学校 2=用户。 */ @Enumerated(EnumType.ORDINAL) @Column(name = "set_type") private SetType type; /** 归属维度ID:系统=超管用户ID、学校=schId、用户=用户ID。 */ @Column(name = "set_id") private Integer setId; /** 学校ID(逻辑外键 → UserBase sys_group.id,schId=0 表示非学校群组)。 */ @Column(name = "sch_id") private Integer schId; /** 角色类型(-1 表示用户级不区分角色)。 */ @Column(name = "role_type") private Integer roleType; /** 操作人ID(逻辑外键 → UserBase 用户)。 */ @Column(name = "c_id") private Integer cId; /** 操作时间。 */ @Column(name = "c_date") private Date cDate; }