package cn.newgxu.bbs.common.util; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import cn.newgxu.bbs.domain.sys.Param; import cn.newgxu.bbs.domain.sys.TimeIterm; import cn.newgxu.jpamodel.ObjectNotFoundException; /** * 管理论坛开放时间的工具类 * * @author hjc * @since 4.0.0 * @version $Revision 1.1$ */ //public class ForumControlUtil { //// public static String FORUM_CLOSED_STRING="0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"; // //// public static int[] ARRAY; // public static int time[]=null; // private static boolean isClosed = true; // static{ // // try { // time = (int[]) ParamManager.getParam("Forum_Close_Time"); // } catch (ObjectNotFoundException e) { // e.printStackTrace(); // } //// ARRAY=new int[24]; //// int start=time[0]; //// int start_minute = time[1]; //// int end=time[2]; //// int end_minute = time[3]; // //// for(int i=0;i<24;i++){ //// ARRAY[i]=(i<=end&&i>=start)?1:0; //// System.out.print(ARRAY[i]+"="); //// } // // // } //// public static int[] getForumIsClosedArray(){ //// return ARRAY; //// } // // public static boolean isForumClose(){ // if(time==null){ // try { // time = (int[]) ParamManager.getParam("Forum_Close_Time"); // } catch (ObjectNotFoundException e) { // e.printStackTrace(); // } // } // /* // * 获取当前时间 // */ // int hour =TimerUtils.getHour(); // //int hour =6; // int Min =TimerUtils.getMin(); // /* // * 如果是星期6是1点关 // */ // int week = TimerUtils.getDayOfWeek(); // // int startTime = time[0]*60 + time[1]; // int endTime = time[2]*60 + time[3]; // if(week==1){ // endTime = (time[2]+1)*60 + time[3]; // } // /*0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 // * 如果关闭时间小于打开时间,则反向处理 // */ // if(time[0]>time[2]){ // if((hour*60+Min) <=startTime&&(hour*60+Min)>=endTime){ // isClosed = true; // }else{ // isClosed = false; // } // }else{ // if((hour*60+Min) >=startTime&&(hour*60+Min)<=endTime){ // isClosed = false; // }else{ // isClosed = true; // } // } // return isClosed; // } //} public class ForumControlUtil { private static boolean isClosed = false; private static List<TimeIterm> itermDay = new ArrayList<TimeIterm>(); private static List<TimeIterm> itermWeek = new ArrayList<TimeIterm>(); private static List<TimeIterm> itermDate = new ArrayList<TimeIterm>(); static{ init(); } public static void init(){ try { Param param = Param.getByCode("Forum_Close_Time"); try{ Gson gson = new Gson(); Map<String, List<TimeIterm>> map = gson.fromJson(param.getPara_value(), new TypeToken<Map<String, List<TimeIterm>>>(){}.getType()); for(String s : map.keySet()){ if(s.equals("day")){ itermDay = map.get(s); } if(s.equals("week")){ itermWeek = map.get(s); } if(s.equals("date")){ itermDate = map.get(s); } } }catch (Exception e) { System.out.println("数据库暂无控制时间的数据或者数据有错!"); } } catch (ObjectNotFoundException e) { e.printStackTrace(); } } public static boolean isForumClose(){ for(TimeIterm item : itermDate){ if(item.isClose()){ return true; } } for(TimeIterm item : itermWeek){ if(item.isClose()){ return true; } } for(TimeIterm item : itermDay){ if(item.isClose()){ return true; } } return isClosed; } }