package com.jspxcms.ext.domain;
import java.util.ArrayList;
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.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import com.jspxcms.core.domain.Site;
/**
* Vote 投票实体类
*
* @author liufang
*
*/
@Entity
@Table(name = "cms_vote")
public class Vote implements java.io.Serializable {
private static final long serialVersionUID = 1L;
/**
* VoteMark类型
*/
public static final String MARK_CODE = "Vote";
/**
* 无限制模式
*/
public static final int UNLIMITED_MODE = 0;
/**
* 独立访客模式
*/
public static final int COOKIE_MODE = 1;
/**
* 独立IP模式
*/
public static final int IP_MODE = 2;
/**
* 独立用户模式
*/
public static final int USER_MODE = 3;
/**
* 启用状态
*/
public static final int NOMAL_STATUS = 0;
/**
* 禁用状态
*/
public static final int DISABLED_STATUS = 1;
@Transient
public void applyDefaultValue() {
if (getInterval() == null) {
setInterval(0);
}
if (getMaxSelected() == null) {
setMaxSelected(1);
}
if (getMode() == null) {
setMode(COOKIE_MODE);
}
if (getTotal() == null) {
setTotal(0);
}
if (getSeq() == null) {
setSeq(Integer.MAX_VALUE);
}
if (getStatus() == null) {
setStatus(NOMAL_STATUS);
}
}
private Integer id;
private List<VoteOption> options = new ArrayList<VoteOption>();
private Site site;
private String title;
private String number;
private String description;
private Date beginDate;
private Date endDate;
private Integer interval;
private Integer maxSelected;
private Integer mode;
private Integer total;
private Integer seq;
private Integer status;
@Id
@Column(name = "f_vote_id", unique = true, nullable = false)
@TableGenerator(name = "tg_cms_vote", pkColumnValue = "cms_vote", table = "t_id_table", pkColumnName = "f_table", valueColumnName = "f_id_value", initialValue = 1, allocationSize = 1)
@GeneratedValue(strategy = GenerationType.TABLE, generator = "tg_cms_vote")
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.REMOVE }, mappedBy = "vote")
@OrderBy("seq asc,id asc")
public List<VoteOption> getOptions() {
return this.options;
}
public void setOptions(List<VoteOption> options) {
this.options = options;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "f_site_id", nullable = false)
public Site getSite() {
return this.site;
}
public void setSite(Site site) {
this.site = site;
}
@Column(name = "f_title", nullable = false, length = 150)
public String getTitle() {
return this.title;
}
public void setTitle(String title) {
this.title = title;
}
@Column(name = "f_number", length = 100)
public String getNumber() {
return this.number;
}
public void setNumber(String number) {
this.number = number;
}
@Column(name = "f_description")
public String getDescription() {
return this.description;
}
public void setDescription(String description) {
this.description = description;
}
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "f_begin_date", length = 19)
public Date getBeginDate() {
return this.beginDate;
}
public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "f_end_date", length = 19)
public Date getEndDate() {
return this.endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
@Column(name = "f_interval", nullable = false)
public Integer getInterval() {
return this.interval;
}
public void setInterval(Integer interval) {
this.interval = interval;
}
@Column(name = "f_max_selected", nullable = false)
public Integer getMaxSelected() {
return maxSelected;
}
public void setMaxSelected(Integer maxSelected) {
this.maxSelected = maxSelected;
}
@Column(name = "f_mode", nullable = false)
public Integer getMode() {
return this.mode;
}
public void setMode(Integer mode) {
this.mode = mode;
}
@Column(name = "f_total", nullable = false)
public Integer getTotal() {
return this.total;
}
public void setTotal(Integer total) {
this.total = total;
}
@Column(name = "f_seq", nullable = false)
public Integer getSeq() {
return this.seq;
}
public void setSeq(Integer seq) {
this.seq = seq;
}
@Column(name = "f_status", nullable = false)
public Integer getStatus() {
return this.status;
}
public void setStatus(Integer status) {
this.status = status;
}
}