📄 announcementaction.java
字号:
package cn.jsprun.struts.foreg.actions;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import cn.jsprun.domain.Members;
import cn.jsprun.service.system.DataBaseService;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Common;
public class AnnouncementAction extends DispatchAction {
private DataBaseService dataBaseService = (DataBaseService) BeanFactory.getBean("dataBaseService");
@SuppressWarnings("unchecked")
public ActionForward showAnnouncement(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
int annid=Common.toDigit(request.getParameter("id"), 1000000000L, 0L).intValue();
int total=0;
int page=1;
HttpSession session=request.getSession();
Members member=(Members)session.getAttribute("user");
Map<String,String> settings=(Map<String,String>)request.getAttribute("settings");
int timestamp = (Integer)(request.getAttribute("timestamp"));
int ppp = member!=null&&member.getPpp()>0?member.getPpp():Integer.valueOf(settings.get("postperpage"));
List<Map<String,String>> announces=dataBaseService.executeQuery("SELECT id, starttime, endtime, type, groups FROM jrun_announcements WHERE type!=2 AND starttime<='"+timestamp+"' AND (endtime='0' OR endtime>'"+timestamp+"') ORDER BY displayorder, starttime DESC, id DESC");
if(announces!=null&&announces.size()>0){
for (Map<String, String> announce : announces) {
String groups=announce.get("groups");
if("".equals(groups)||member!=null&&Common.matches(","+groups+",", ","+member.getGroupid()+",")){
total++;
if(annid>0&&Integer.valueOf(announce.get("id"))==annid){
page=(int)Math.ceil((double)total/(double)ppp);
}
}
}
}
page=Common.toDigit(request.getParameter("page"), Long.valueOf(settings.get("threadmaxpages")), Long.valueOf(page)).intValue();
Map<String,Integer> multiInfo=Common.getMultiInfo(total, ppp, page);
page=multiInfo.get("curpage");
int start_limit=multiInfo.get("start_limit");
Map<String,Object> multi=Common.multi(total, ppp, page, "announcement.jsp", 0, 10, true, false, null, false);
request.setAttribute("multi",multi);
List<Map<String,String>> announcements=dataBaseService.executeQuery("SELECT * FROM jrun_announcements WHERE type!=2 AND starttime<='"+timestamp+"' AND (endtime='0' OR endtime>'"+timestamp+"') ORDER BY displayorder, starttime DESC, id DESC LIMIT "+start_limit+", "+ppp);
if(announcements!=null&&announcements.size()>0){
int timeoffset=(int)((Float)session.getAttribute("timeoffset")*3600);
String dateformat=(String)session.getAttribute("dateformat");
SimpleDateFormat sdf_all=new SimpleDateFormat(dateformat);
for(Map<String,String> announcement:announcements){
announcement.put("authorenc", Common.encode(announcement.get("author")));
int starttime=Common.toDigit(announcement.get("starttime"));
int endtime=Common.toDigit(announcement.get("endtime"));
announcement.put("starttime",Common.gmdate(sdf_all, starttime+timeoffset));
announcement.put("endtime",endtime>0?Common.gmdate(sdf_all, endtime+timeoffset):"不限");
String message=announcement.get("message");
if("1".equals(announcement.get("type"))){
message="<a href=\""+message+"\" target=\"_blank\">"+message+"</a>";
}
announcement.put("message", message.replaceAll("\r\n", "<Br/>"));
}
request.setAttribute("announcements", announcements);
request.setAttribute("annid", annid);
return mapping.findForward("toAnnouncement");
}else{
request.setAttribute("errorInfo", "目前没有公告供查看,请返回。");
return mapping.findForward("showMessage");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -