⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 announcementaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 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 + -