话不多少,直接上代码
通过将活动的起止时间与当前时间比较,从而判断出活动的状态
默认为all,before表示尚未开始,now表示正在进行中,after表示已经结束
try{
ExpressionList<LmChannel> expresslist = Ebean.find(LmChannel.class).where();
Date date = new Date();//当前系统时间
if("all".equals(activityStatus)){
Logger.info("查询的活动状态为: " + "all");
} else if("before".equals(activityStatus)){//尚未开始的活动,开始时间大于今天
Logger.info("查询的活动状态为: " + "before");
expresslist.gt("start_time", date);
} else if("now".equals(activityStatus)){//正在进行的活动
Logger.info("查询的活动状态为: " + "now");
expresslist.lt("start_time", date);//开始时间小于当前时间
expresslist.gt("end_time", date);//结束时间大于当前时间
} else if("after".equals(activityStatus)){//已经结束的活动
Logger.info("查询的活动状态为: " + "after");
expresslist.lt("end_time", date);//结束时间小于当前时间
}
return expresslist;
} catch(Exception e){
Logger.info("查询活动列表失败");
return null;
}