package cn.newgxu.bbs.domain.calendar;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import cn.newgxu.jpamodel.JPAEntity;
import cn.newgxu.jpamodel.ObjectNotFoundException;
/**
* @path valhalla_hx----cn.newgxu.bbs.domain.calendar.FixHoliday.java
*
* @author 集成显卡
* @since 4.5.0
* @version $Revision 1.1$
* @date 2011-9-19
* @describe
* 固定节日,这个是系统管理员添加的。
* 可以在论坛首页添加动画公告。
*/
@Entity
@Table(name="ywc_fix_holiday")
public class FixHoliday extends JPAEntity{
private static final long serialVersionUID=1223727462343894862L;
/*基本属性*/
@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@Column(name="title")
private String name;
@Column(name="date_exe")
private String date;
@Column(name="date_start")
private String startDate;
@Column(name="imagepath")
private String imagePath;
@Column(name="information")
private String information;
@Column(name="color")
private String color="#222222";
@Column(name="jointime")
private Date joinTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/**
* 节日的日期(具体到天)<br />
* 格式:
* <font color="#a50100">yyyy-MM-dd 例如:
* 2011-09-18
* </font><br />
* 如果是固定节日,内是没有前面的yyyy,则是-MM-dd<br /><br />
* <font color="#92bf28">由于date是数据库关键字,这里的字段名为 date_exe</font>
*/
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
/**
* 节日的大图,在论坛上 尺寸为 1004*1200 比较好。
* @return
*/
public String getImagePath() {
return imagePath;
}
public void setImagePath(String imagePath) {
this.imagePath = imagePath;
}
/**
* 这个官方节日的开始日期,到达这个日期后,就会显示这个节日的图片
* @return
*/
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
/**
* 节日的说明信息
* @return
*/
public String getInformation() {
return information;
}
public void setInformation(String information) {
this.information = information;
}
/**
* 节日显示的颜色,默认是#222222
* @return
*/
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public Date getJoinTime() {
return joinTime;
}
public void setJoinTime(Date joinTime) {
this.joinTime = joinTime;
}
public static FixHoliday getById(Integer id) throws ObjectNotFoundException{
return (FixHoliday)getById(FixHoliday.class, id);
}
/**
* 获取某一天的官方节日列表,<br />
* 搜索条件为 带年份参数和不同年份参数两种 <br />
*
* @param year
* @param month
* @param day
* @return
*/
@SuppressWarnings("unchecked")
public static List<FixHoliday> getFixHoliday(int year,int month,int day){
return (List<FixHoliday>)Q("from FixHoliday where date_exe=?1 or date_exe=?2",P(1, YWSCalendar.getDateInfo(year, month, day)),P(2,YWSCalendar.getDateInfo(0, month, day))).getResultList();
}
@SuppressWarnings("unchecked")
public static List<FixHoliday> getComingHoliday(int monthStep){
int day[]=YWSCalendar.getToday(YWSCalendar.YEAR_MONTH_DAY);
System.out.println(day);
int next[]=YWSCalendar.getDay(0, monthStep, 0, YWSCalendar.YEAR_MONTH_DAY);//获取monthType月后对应的 年月日
System.out.println(YWSCalendar.getDateInfo(day[0], day[1], day[2])+" "+YWSCalendar.getDateInfo(next[0], next[1], next[2]));
System.out.println("from FixHoliday where (date_exe>="+YWSCalendar.getDateInfo(day[0], day[1], day[2])+" and date_exe<"+YWSCalendar.getDateInfo(next[0], next[1], next[2])+") or (date_exe>="+YWSCalendar.getDateInfo(0, day[1], day[2])+" and date_exe<"+YWSCalendar.getDateInfo(0, next[1], next[2]));
return (List<FixHoliday>)Q("from FixHoliday where (date_exe>=?1 and date_exe<?2) or (date_exe>=?3 and date_exe<?4)",
P(1,YWSCalendar.getDateInfo(day[0], day[1], day[2])),P(2, YWSCalendar.getDateInfo(next[0], next[1], next[2])),
P(3,YWSCalendar.getDateInfo(0, day[1], day[2])),P(4,YWSCalendar.getDateInfo(0, next[1], next[2]))).getResultList();
}
}