package com.qxueyou.scc.msg.model; import java.io.Serializable; import java.util.Date; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.Lob; import javax.persistence.ManyToMany; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.persistence.Transient; import org.hibernate.annotations.CollectionId; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Type; import com.qxueyou.scc.base.model.ITrace; import com.qxueyou.scc.base.util.UUIDUtils; import com.fasterxml.jackson.annotation.JsonIgnore; /** * 消息群表 实体 * @author ody.yuan * */ @Entity @Table(name="msg_group") @NamedQuery(name="MsgGroup.findAll", query="SELECT m FROM MsgGroup m") public class MsgGroup implements Serializable,ITrace { private static final long serialVersionUID = 1L; /** 群ID */ @Id @Column(name="GROUP_ID", unique=true, nullable=false, length=32) private String groupId; /** * 环信群组ID */ @Column(name="EASEMOB_GROUP_ID", length=32) private String easmobGroupId; /** 创建者ID */ @Column(name="CREATE_ID", nullable=false, length=32) private String createId; /** 创建时间 */ @Column(name="CREATE_TIME", nullable=false) private Date createTime; /** 创建人 */ @Column(name="CREATOR", nullable=false, length=100) private String creator; /** 删除标志 */ @Column(name="DELETE_FLAG", nullable=false) private boolean deleteFlag; /** 描述 */ @Column(name="DESCRIPTION", length=2000) private String description; /** 名称 */ @Column(name="NAME", length=64) private String name; /** 头像 */ @Lob @Column(name="PORTRIAIT",length=512) private String portriait; /** 修改人ID */ @Column(name="UPDATE_ID", length=32) private String updateId; /** 修改时间 */ @Column(name="UPDATE_TIME", nullable=false) private Date updateTime; /** 修改人 */ @Column(name="UPDATOR",length=100) private String updator; @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinTable(name = "msg_group_user_re", joinColumns = { @JoinColumn(name = "GROUP_ID") }, inverseJoinColumns = { @JoinColumn(name = "USER_ID") }) @GeneratedValue(generator = "hibernate-uuid") @GenericGenerator(name = "hibernate-uuid", strategy = "uuid") @CollectionId( columns = @Column(name="RELATION_ID"), type=@Type(type="string"), generator = "hibernate-uuid" ) @JsonIgnore private List users; @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinTable(name = "msg_group_admin", joinColumns = { @JoinColumn(name = "GROUP_ID") }, inverseJoinColumns = { @JoinColumn(name = "USER_ID") }) @GeneratedValue(generator = "hibernate-uuid") @GenericGenerator(name = "hibernate-uuid", strategy = "uuid") @CollectionId( columns = @Column(name="GROUP_ADMIN_ID"), type=@Type(type="string"), generator = "hibernate-uuid" ) @JsonIgnore private List admins; @Transient private int msgUserCount; public int getMsgUserCount() { return msgUserCount; } public void setMsgUserCount(int msgUserCount) { this.msgUserCount = msgUserCount; } public List getUsers() { return users; } public void setUsers(List users) { this.users = users; } public String getNameInitial(){ // return name!=null?"#".concat(Unidecode.initials(name.substring(0, 1))):""; return name!=null?"#".concat(UUIDUtils.generateShortUuid()):""; } public MsgGroup() { } public String getGroupId() { return this.groupId; } public void setGroupId(String groupId) { this.groupId = groupId; } public String getCreateId() { return this.createId; } public void setCreateId(String createId) { this.createId = createId; } public Date getCreateTime() { return this.createTime; } public String getCreator() { return this.creator; } public void setCreator(String creator) { this.creator = creator; } public String getDescription() { return this.description; } public void setDescription(String description) { this.description = description; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public String getPortriait() { return this.portriait; } public void setPortriait(String portriait) { this.portriait = portriait; } public String getUpdateId() { return this.updateId; } public void setUpdateId(String updateId) { this.updateId = updateId; } public Date getUpdateTime() { return this.updateTime; } public String getUpdator() { return this.updator; } public void setUpdator(String updator) { this.updator = updator; } public void setDeleteFlag(boolean deleteFlag) { this.deleteFlag = deleteFlag; } @Override public void setCreateTime(java.util.Date createTime) { this.createTime = createTime; } @Override public boolean getDeleteFlag() { return this.deleteFlag; } @Override public void setUpdateTime(java.util.Date updateTime) { this.updateTime = updateTime; } public List getAdmins() { return admins; } public void setAdmins(List admins) { this.admins = admins; } public int getUserCount(){ return this.users.size(); } public String getEasmobGroupId() { return easmobGroupId; } public void setEasmobGroupId(String easmobGroupId) { this.easmobGroupId = easmobGroupId; } }