package com.qxueyou.scc.teach.live.model; import java.io.Serializable; import java.math.BigInteger; 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.ManyToMany; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Table; import javax.persistence.Transient; import org.hibernate.annotations.CollectionId; import org.hibernate.annotations.GenericGenerator; import org.hibernate.annotations.Type; import org.hibernate.annotations.Where; import org.springframework.format.annotation.DateTimeFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.qxueyou.scc.admin.classes.model.ClsClass; import com.qxueyou.scc.base.model.ITrace; import com.qxueyou.scc.media.model.MediaVideo; import com.qxueyou.scc.media.model.SchLiveReVideo; import com.qxueyou.scc.media.model.VideoLiveChatroom; import com.qxueyou.scc.teach.subject.model.Subject; /** * ÊÓÆµÖ±²¥±í ʵÌå * @author ody.yuan * */ /** * @author ody.yuan * */ @Entity @Table(name="MEDIA_VIDEO_LIVE") public class MediaVideoLive implements Serializable, ITrace { /** * UID */ private static final long serialVersionUID = -313139100670956005L; /** ²Ý¸å,ÐÂÔöÖ±²¥Ä¬ÈÏ״̬ */ public static final short STATUS_LIVE_DRAFT = 0; /** Ô¤¸æ,µ±Ç°²»ÔÚÖ±²¥×´Ì¬ */ public static final short STATUS_LIVE_ORDER = 1; /** Ö±²¥ ÖУ¬ÕýÔÚÖ±²¥*/ public static final short STATUS_LIVE_LIVE = 2; /** »Ø·Å */ public static final short STATUS_LIVE_REVIEW = 3; /** ·ÏÆú£¬ºǫ́²éѯ²»µ½ÍøÒ×Ö±²¥µÄ·¿¼äÐÅϢ״̬ */ public static final short STATUS_LIVE_TAKEOFF = 4; /** ÔÝÍ£ £¬Ö±²¥ÖеÄÔÝͣ״̬*/ public static final short STATUS_LIVE_PAUSE = 5; /** »Ø·ÅÏÂÔØÖÐ £¬ÏÂÔØÍê³Éºó²ÅÊǻطÅ״̬*/ public static final short STATUS_LIVE_DOWNLOAD = 6; /** »Ø·ÅÏÂÔØÊ§°Ü*/ public static final short STATUS_LIVE_DOWNLOAD_ERROR = 8; /** »Ø·ÅÏÂÔØ³É¹¦*/ public static final short STATUS_LIVE_DOWNLOAD_SUCCESS = 7; /** Í£Ö¹Ö±²¥*/ public static final short STATUS_LIVE_STOP = 9; /** ´ý±à¼­×´Ì¬*/ public static final short STATUS_LIVE_PREPARED = 10; /** Ô¤´¦Àíʧ°Ü*/ public static final short STATUS_LIVE_PREPARE_FAILD = 11; /** ±à¼­×¼±¸ÖÐ*/ public static final short STATUS_LIVE_PREPARED_READY = 12; /** ½öÏް༶ */ public static final String PERMISSION_STATUS_LIMITCLASS = "limitClass"; /** ¹«¿ª */ public static final String PERMISSION_STATUS_PUBLIC = "public"; /** ½öÏÞ»ú¹¹ */ public static final String PERMISSION_STATUS_LIMITORG = "limitOrg"; /** Ô¤Ô¼¹Û¿´ */ public static final String PERMISSION_STATUS_ORDERWATCH = "orderWatch"; /** Ö±²¥ */ public static final int TYPE_LIVE_LIVE = 1; /** »Ø·Å */ public static final int TYPE_LIVE_DOWNLOAD = 2; /** Ö÷¼ü */ @Id @GeneratedValue(generator = "hibernate-uuid") @GenericGenerator(name = "hibernate-uuid", strategy = "uuid") @Column(name="VIDEO_LIVE_ID", unique=true, nullable=false, length=32) private String videoLiveId; /** ´´½¨ÕßID */ @Column(name="CREATE_ID", length=32) private String createId; /** ´´½¨Ê±¼ä */ @Column(name="CREATE_TIME", nullable=false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; /** ´´½¨ÈË */ @Column(name="CREATOR", length=100) private String creator; /** ɾ³ý±êÖ¾ */ @Column(name="DELETE_FLAG", nullable=false) private boolean deleteFlag; /** ÊÇ·ñ×Ô¶¯Éú³É»Ø·Å£¨0¡¢ÊÇ£¬1¡¢·ñ¡£Ä¬ÈÏΪ0£© */ @Column(name="EDIT_REPLAY_FLAG", nullable=false) private boolean editReplayFlag; /** ÐÞ¸ÄÈËID */ @Column(name="UPDATE_ID", length=32) private String updateId; /** ÐÞ¸Äʱ¼ä */ @Column(name="UPDATE_TIME", nullable=false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; /** ÐÞ¸ÄÈË */ @Column(name="UPDATOR", length=100) private String updator; /** Ãû³Æ */ @Column(name="NAME", length=128) private String name; /** ״̬ 1:Ô¤¸æ 2 Ö±²¥ 3 »Ø·Å 4 ·ÏÆú */ @Column(name="STATUS") private short status; /** Ö±²¥ÈËID */ @Column(name="ANCHOR_ID", length=32) private String anchorId; /** Ö±²¥ÈË */ @Column(name="ANCHOR", length=128) private String anchor; /** Ô¤¸æÍ¼Æ¬URL */ @Column(name="PREVIEW_IMG_URL",length=256) private String previewImgUrl; /** ×ÉѯͼƬURL */ @Column(name="CONSULT_IMG_URL",length=256) private String consultImgUrl; /** Ô¤¸æÆ¬ÊÓÆµURL */ @Column(name="PREVIEW_VIDEO_URL",length=256) private String previewVideoUrl; /** Ô¤Ô¼´ÎÊý */ @Column(name="ORDER_TIMES") private Integer orderTimes; /** Ö±²¥¹Û¿´ÈË´Î */ @Column(name="WATCH_TIMES") private Integer watchTimes; /** µãÔÞÈË´Î */ @Column(name="PRAISE_TIMES") private Integer praiseTimes; /** Ö±²¥×î¸ß¹Û¿´ÈË´Î */ @Column(name="WATCH_MAX_TIMES") private Integer watchMaxTimes; /** »Ø·Å´ÎÊý */ @Column(name="REVIEW_TIMES") private Integer reviewTimes; /** ±¨ÃûÈËÊýÉÏÏÞ */ @Column(name="WATCHER_LIMIT") private Integer watcherLimit; /** ±¸×¢ÏêÇé */ @Column(name="REMARK", length=16777215) private String remark; /** Ö±²¥Ô¤¼Æ¿ªÊ¼Ê±¼ä */ @Column(name="START_TIME") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") private Date startTime; /** Ö±²¥Ô¤¼Æ½áÊøÊ±¼ä */ @Column(name="END_TIME") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") private Date endTime; /** ÊÇ·ñ°´Ê±¿ªÊ¼Ö±²¥£¬Îó²î5·ÖÖÓÄÚ */ @Column(name="ON_TIME_FLAG") private boolean onTimeFlag; /** ÊÇ·ñÓÐÍê³ÉÖ±²¥ */ @Column(name="COMPLETE_FLAG") private boolean completeFlag; /** ÌÚÑ¶ÔÆ·¿¼äºÅÂë */ @Column(name="TECENT_LIVE_NUMBER", length=128) private String tecentLiveNumber; /** ÍøÒ×ÔÆÐÅ·¿¼äºÅÂë */ @Column(name="WY_LIVE_NUMBER", length=128) private String wyLiveNumber; /** ÍøÒ×ÔÆÐÅÖ±²¥ÍÆÁ÷url */ @Column(name="WY_PUSH_URL", length=128) private String pushUrl; /** ÍøÒ×ÔÆÐÅÖ±²¥À­Á÷£ºhttpPullUrl */ @Column(name="WY_HTTP_PULL_URL", length=128) private String httpPullUrl; /** ÍøÒ×ÔÆÐÅÖ±²¥À­Á÷£ºhlsPullUrl */ @Column(name="WY_HLS_PULL_URL", length=128) private String hlsPullUrl; /** ÍøÒ×ÔÆÐÅÖ±²¥À­Á÷£ºrtmpPullUrl */ @Column(name="WY_RTMP_PULL_URL", length=128) private String rtmpPullUrl; /** ȨÏÞ£ºlimitClass£º½öÏް༶ public£º¹«¿ª orderWatch:Ô¤Ô¼¹Û¿´ limitOrg:½öÏÞ»ú¹¹ */ @Column(name="PERMISSION", length=32) private String permission; /** ÇåÎú¶È LD:Á÷³© SD:±êÇå HD:¸ßÇå */ @Column(name="DEFINITION", length=32) private String definition; /** Ô¤¼ÆÊ±³¤ µ¥Î»£º·ÖÖÓ */ @Column(name="EXPECTED_TIMES") private Integer expectedTimes; /** ʵ¼Ê²¥·Åʱ³¤ µ¥Î»£ºÃë */ @Column(name="PLAY_TIMES") private BigInteger playTimes; /** ·ÖÏí´ÎÊý */ @Column(name="SHARE_TIMES") private BigInteger shareTimes; /** À©Õ¹×ֶΣ¨ÏÔʾÒì³£¡¢Ô¤´¦Àíʧ°Ü¼°½ø¶ÈÌõ£© */ @Column(name="ATTRIBUTE") private String attribute; /** ÍøÒ×״̬»Øµ÷£¬¼Ç¼×îºóÂ¼ÖÆÊ±¼ä */ @Column(name="LAST_RECORD_TIME") @JsonIgnore private long lastRecordTime; /** ÌÆÇÅ»áÒéid */ @Column(name="TQ_MEETING_ID", length=32) private String meetingId; /** ÌÆÇżÓÈë¿ÎÌÃÃÜÂë */ @Column(name="TQ_MEETING_PWD", length=32) private String meetingPwd; @OneToMany(fetch = FetchType.LAZY, mappedBy = "videoLive") @JsonIgnore private List liveReVideos; @OneToMany(fetch = FetchType.LAZY, mappedBy = "mediaVideoLive") @JsonIgnore private List videoLiveChatrooms; @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH) @JoinTable(name = "MEDIA_VIDEO_LIVE_RE_CLASS", joinColumns = { @JoinColumn(name = "LIVE_ID") }, inverseJoinColumns = { @JoinColumn(name = "CLASS_ID") }) @GeneratedValue(generator = "hibernate-uuid") @GenericGenerator(name = "hibernate-uuid", strategy = "uuid") @CollectionId( columns = @Column(name="LIVE_RE_CLASS_ID"), type=@Type(type="string"), generator = "hibernate-uuid" ) @Where(clause="DELETE_FLAG=0") private List classes; @Transient private List lstVideoVO; @Column(name="SUBJECT_ID") private String subjectId; @Column(name="SUBJECT_NAME") private String subjectName; @OneToOne(cascade = CascadeType.ALL,fetch = FetchType.LAZY) @JoinColumn(name = "SUBJECT_ID",referencedColumnName="SUBJECT_ID",updatable=false,insertable=false) @JsonIgnore private Subject subject; @Transient private int lotteryItemCount; public int getLotteryItemCount() { return lotteryItemCount; } public boolean getEditReplayFlag() { return editReplayFlag; } public void setEditReplayFlag(boolean editReplayFlag) { this.editReplayFlag = editReplayFlag; } public void setLotteryItemCount(int lotteryItemCount) { this.lotteryItemCount = lotteryItemCount; } public List getLstVideoVO() { return lstVideoVO; } public void setLstVideoVO(List lstVideoVO) { this.lstVideoVO = lstVideoVO; } public String getVideoLiveId() { return videoLiveId; } public void setVideoLiveId(String videoLiveId) { this.videoLiveId = videoLiveId; } public String getCreateId() { return createId; } public void setCreateId(String createId) { this.createId = createId; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public String getCreator() { return creator; } public void setCreator(String creator) { this.creator = creator; } public boolean getDeleteFlag() { return deleteFlag; } public void setDeleteFlag(boolean deleteFlag) { this.deleteFlag = deleteFlag; } public String getUpdateId() { return updateId; } public void setUpdateId(String updateId) { this.updateId = updateId; } public Date getUpdateTime() { return updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } public String getUpdator() { return updator; } public void setUpdator(String updator) { this.updator = updator; } public String getName() { return name; } public void setName(String name) { this.name = name; } public short getStatus() { return status; } public void setStatus(short status) { this.status = status; } public String getAnchorId() { return anchorId; } public void setAnchorId(String anchorId) { this.anchorId = anchorId; } public String getAnchor() { return anchor; } public void setAnchor(String anchor) { this.anchor = anchor; } public String getPreviewImgUrl() { return previewImgUrl; } public void setPreviewImgUrl(String previewImgUrl) { this.previewImgUrl = previewImgUrl; } public String getPreviewVideoUrl() { return previewVideoUrl; } public void setConsultImgUrl(String consultImgUrl) { this.consultImgUrl = consultImgUrl; } public String getConsultImgUrl() { return consultImgUrl; } public void setPreviewVideoUrl(String previewVideoUrl) { this.previewVideoUrl = previewVideoUrl; } public Integer getOrderTimes() { return orderTimes; } public void setOrderTimes(Integer orderTimes) { this.orderTimes = orderTimes; } public Integer getWatchTimes() { return watchTimes; } public void setWatchTimes(Integer watchTimes) { this.watchTimes = watchTimes; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public Date getStartTime() { return startTime; } public void setStartTime(Date startTime) { this.startTime = startTime; } public Date getEndTime() { return endTime; } public void setEndTime(Date endTime) { this.endTime = endTime; } public boolean getOnTimeFlag() { return onTimeFlag; } public void setOnTimeFlag(boolean onTimeFlag) { this.onTimeFlag = onTimeFlag; } public boolean getCompleteFlag() { return completeFlag; } public void setCompleteFlag(boolean completeFlag) { this.completeFlag = completeFlag; } public String getTecentLiveNumber() { return tecentLiveNumber; } public void setTecentLiveNumber(String tecentLiveNumber) { this.tecentLiveNumber = tecentLiveNumber; } public List getLiveReVideos() { return liveReVideos; } public void setLiveReVideos(List liveReVideos) { this.liveReVideos = liveReVideos; } public List getVideoLiveChatrooms() { return videoLiveChatrooms; } public void setVideoLiveChatrooms(List videoLiveChatrooms) { this.videoLiveChatrooms = videoLiveChatrooms; } public Integer getWatcherLimit() { return watcherLimit; } public void setWatcherLimit(Integer watcherLimit) { this.watcherLimit = watcherLimit; } public String getWyLiveNumber() { return wyLiveNumber; } public void setWyLiveNumber(String wyLiveNumber) { this.wyLiveNumber = wyLiveNumber; } public String getPushUrl() { return pushUrl; } public void setPushUrl(String pushUrl) { this.pushUrl = pushUrl; } public String getHttpPullUrl() { return httpPullUrl; } public void setHttpPullUrl(String httpPullUrl) { this.httpPullUrl = httpPullUrl; } public String getHlsPullUrl() { return hlsPullUrl; } public void setHlsPullUrl(String hlsPullUrl) { this.hlsPullUrl = hlsPullUrl; } public String getRtmpPullUrl() { return rtmpPullUrl; } public void setRtmpPullUrl(String rtmpPullUrl) { this.rtmpPullUrl = rtmpPullUrl; } public Integer getWatchMaxTimes() { return watchMaxTimes; } public void setWatchMaxTimes(Integer watchMaxTimes) { this.watchMaxTimes = watchMaxTimes; } public Integer getReviewTimes() { return reviewTimes; } public void setReviewTimes(Integer reviewTimes) { this.reviewTimes = reviewTimes; } public String getPermission() { return permission; } public void setPermission(String permission) { this.permission = permission; } public String getDefinition() { return definition; } public void setDefinition(String definition) { this.definition = definition; } public Integer getExpectedTimes() { return expectedTimes; } public void setExpectedTimes(Integer expectedTimes) { this.expectedTimes = expectedTimes; } public BigInteger getShareTimes() { return shareTimes; } public void setShareTimes(BigInteger shareTimes) { this.shareTimes = shareTimes; } public BigInteger getPlayTimes() { return playTimes; } public void setPlayTimes(BigInteger playTimes) { this.playTimes = playTimes; } public String getAttribute() { return attribute; } public void setAttribute(String attribute) { this.attribute = attribute; } public long getLastRecordTime() { return lastRecordTime; } public void setLastRecordTime(long lastRecordTime) { this.lastRecordTime = lastRecordTime; } public String getMeetingId() { return meetingId; } public void setMeetingId(String meetingId) { this.meetingId = meetingId; } public String getMeetingPwd() { return meetingPwd; } public void setMeetingPwd(String meetingPwd) { this.meetingPwd = meetingPwd; } public String getSubjectId() { return subjectId; } public void setSubjectId(String subjectId) { this.subjectId = subjectId; } public String getSubjectName() { return subjectName; } public void setSubjectName(String subjectName) { this.subjectName = subjectName; } public List getClasses() { return classes; } public void setClasses(List classes) { this.classes = classes; } public Integer getPraiseTimes() { return praiseTimes; } public void setPraiseTimes(Integer praiseTimes) { this.praiseTimes = praiseTimes; } public Subject getSubject() { return subject; } public void setSubject(Subject subject) { this.subject = subject; } }