package cn.newgxu.bbs.web.action.admin;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cn.newgxu.bbs.common.MessageList;
import cn.newgxu.bbs.common.util.ForumControlUtil;
import cn.newgxu.bbs.common.util.Util;
import cn.newgxu.bbs.domain.sys.TimeIterm;
import cn.newgxu.bbs.service.ForumService;
import cn.newgxu.bbs.web.action.AbstractBaseAction;
import cn.newgxu.bbs.web.model.admin.ForumTimeModel;
import cn.newgxu.jpamodel.ObjectNotFoundException;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
/**
*
* @author tao
* @since 4.0.0
* @version $Revision 1.1$
*/
@SuppressWarnings("serial")
public class ControlForumTimeAction extends AbstractBaseAction {
private ForumService forumService;
private ForumTimeModel model = new ForumTimeModel();
@Override
public String execute() throws Exception {
forumService.getFourmTime(model);
String value = model.getTimeParam().getPara_value();
if(value==null||value.equals("")){
System.out.println("没有相应的数据!");
return SUCCESS;
}
//用于捕获由于数据错误无法转换的异常
try{
Gson gson = new Gson();
Map<String, List<TimeIterm>> map = gson.fromJson(value, new TypeToken<Map<String, List<TimeIterm>>>(){}.getType());
for(String s : map.keySet()){
if(s.equals("day")){
model.setItermDay(map.get(s));
}
if(s.equals("week")){
model.setItermWeek(map.get(s));
}
if(s.equals("date")){
model.setItermDate(map.get(s));
}
}
}catch (Exception e) {
e.printStackTrace();
System.out.println("数据库暂无控制时间的数据或者数据有错!");
}
return SUCCESS;
}
public String editOpenClose() {
try {
forumService.getFourmTime(model);
Gson gson = new Gson();
Map<String, List<TimeIterm>> map = new HashMap<String, List<TimeIterm>>();
map.put("day", TimeIterm.getTimeItermByString(model.getDay(), 1));
map.put("week", TimeIterm.getTimeItermByString(model.getWeek(), 2));
map.put("date", TimeIterm.getTimeItermByString(model.getDate(), 3));
model.getTimeParam().setPara_value(gson.toJson(map));
try {
forumService.modifyFourmTime(model);
} catch (Exception e) {
e.printStackTrace();
}
ForumControlUtil.init();//修改时间后从新加载数据
MessageList m = new MessageList();
m.setUrl("/admin/controlForumTime.yws");
m.addMessage("<b>修改成功!</b>");
Util.putMessageList(m, getSession());
} catch (ObjectNotFoundException e) {
e.printStackTrace();
}
return SUCCESS;
}
public Object getModel() {
return model;
}
public ForumService getForumService() {
return forumService;
}
public void setForumService(ForumService forumService) {
this.forumService = forumService;
}
}