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

📄 digestaction.java

📁 论坛软件系统亦称电子公告板(BBS)系统
💻 JAVA
字号:
package cn.jsprun.struts.foreg.actions;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

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.service.user.MemberService;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Common;
import cn.jsprun.utils.DataParse;

public class DigestAction extends DispatchAction {
	private MemberService memberService = (MemberService) BeanFactory.getBean("memberService");
	private DataBaseService dataBaseService = (DataBaseService) BeanFactory.getBean("dataBaseService");
	@SuppressWarnings("unchecked")
	public ActionForward showDigest(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
		Map<String,String> settings = (Map<String,String>)request.getAttribute("settings");
		HttpSession session=request.getSession();
		Members member=(Members)session.getAttribute("user");
		short groupid=(Short)session.getAttribute("jsprun_groupid");
		request.setAttribute("threadsticky", settings.get("threadsticky").split(","));
		String forumstr=request.getParameter("forums");
		List<String> fidList=new ArrayList<String>();
		if(forumstr!=null){
			String[] fids=forumstr.split("_");
			for(String fid:fids){
				fidList.add(fid.trim());
			}
		}
		else{
			String[] forums=request.getParameterValues("forums[]");
			if(forums!=null&&forums.length>0){
				for(String fid:forums){
					fidList.add(fid.trim());
				}
			}
		}
		StringBuffer fids =new StringBuffer();
		fids.append("0");
		Map<String,String> forumslist = new HashMap<String,String>();
		Map<String,String> forumcheck=new HashMap<String,String>();
		Map<String,String> forumStr = (Map<String,String>)request.getAttribute("forums");
		Map<String,Map<String,String>> forumMap=((DataParse) BeanFactory.getBean("dataParse")).characterParse(forumStr.get("forums"), false);
		if(forumMap!=null){
			Map<String,String> usergroups = (Map<String,String>)request.getAttribute("usergroups");
			String extgroupids=member!=null?member.getExtgroupids():"";
			boolean readaccess=!usergroups.get("readaccess").equals("0"); 
			Set<String> keys=forumMap.keySet();
			for(String key : keys){
				Map<String,String> forum=forumMap.get(key);
				String viewperm=forum.get("viewperm");
				if((viewperm.equals("") && readaccess) || (!viewperm.equals("") && Common.forumperm(viewperm, groupid, extgroupids))){
					if(fidList.size()<=0||fidList.contains(key)){
						fids.append(","+key);
						forumcheck.put(key, "checked");
					}
					forumslist.put(key, forum.get("name"));
				}
			}
		}
		request.setAttribute("forumslist", forumslist);
		request.setAttribute("forumcheck", forumcheck);
		String keyword = request.getParameter("keyword");
		String author = request.getParameter("author");
		String authorid = request.getParameter("authorid");
		if(author!=null && !author.equals("")){
			Members user = memberService.findByName(author);
			if(user!=null){
				request.setAttribute("author", author);
				authorid =String.valueOf(user.getUid());
			}
		}
		String authoradd =authorid!=null&&!authorid.equals("")?" AND authorid='"+authorid+"'":"";
		String keywordadd=null;
		if(keyword!=null&&!keyword.equals("")){
			keywordadd=" AND subject LIKE '%"+keyword+"%'";
			request.setAttribute("keyword", keyword);
		}else{
			keywordadd="";
		}
		List<Map<String,String>> digestcount = dataBaseService.executeQuery("SELECT COUNT(*) count FROM jrun_threads WHERE digest>'0' AND fid IN ( "+fids+" ) AND displayorder>='0' "+authoradd+keywordadd);
		int threadcount =Integer.valueOf( digestcount!=null && digestcount.size()>0?digestcount.get(0).get("count"):"0");
		if(threadcount==0){
			request.setAttribute("errorInfo", "对不起,指定范围内没有精华帖,请返回。");
			return mapping.findForward("showMessage");
		}
		String order = request.getParameter("order");
		if(order==null){
			order = "digest";
		}
		request.setAttribute("ordercheck_"+order, "selected");
		Long threadmaxpages =Long.valueOf(settings.get("threadmaxpages"));
		int tpp = member != null && member.getTpp() > 0 ? member.getTpp(): Integer.valueOf(settings.get("topicperpage"));
		int page = Common.toDigit(request.getParameter("page"),threadmaxpages, 1L).intValue();
		Map<String,Integer> multiInfo=Common.getMultiInfo(threadcount, tpp, page);
		page=multiInfo.get("curpage");
		int start_limit=multiInfo.get("start_limit");
		String url = "digest.jsp?order="+order+"&keyword="+(keyword!=null?keyword:"")+"&amp;authorid="+(authorid!=null?authorid:"")+"&amp;forums="+fids.toString().replace(',', '_');
		Map<String,Object> multi=Common.multi(threadcount, tpp, page, url, threadmaxpages.intValue(), 10, true, false, null, false);
		request.setAttribute("multi", multi);
		List<Map<String,String>> disgetThread = dataBaseService.executeQuery("SELECT t.tid,t.fid,t.iconid,t.price,t.author,t.authorid,t.subject,t.dateline,t.lastpost,t.lastposter,t.views,t.replies,t.highlight,t.digest,t.special,t.attachment,f.name FROM jrun_threads as t LEFT JOIN jrun_forums as f on t.fid=f.fid where t.digest>'0' AND t.fid IN ( "+fids+" ) AND t.displayorder>='0' "+authoradd+keywordadd+" ORDER BY "+order+" DESC LIMIT "+ start_limit+ ", " +tpp);
		if(disgetThread!=null&&disgetThread.size()>0){
			int timeoffset=(int)((Float)session.getAttribute("timeoffset")*3600);
			String timeformat=(String)session.getAttribute("timeformat");
			String dateformat=(String)session.getAttribute("dateformat");
			SimpleDateFormat sdf_all=new SimpleDateFormat(dateformat+" "+timeformat);
			SimpleDateFormat sdf_dateformat=new SimpleDateFormat(dateformat);
			int ppp = member != null&& member.getPpp() > 0 ? member.getPpp() : Integer.valueOf(settings.get("postperpage"));
			for(Map<String,String> thread:disgetThread){
				thread.put("dateline", Common.gmdate(sdf_dateformat, Integer.valueOf(thread.get("dateline"))+timeoffset));
				thread.put("lastpost", Common.gmdate(sdf_all, Integer.valueOf(thread.get("lastpost"))+timeoffset));
				Common.procThread(thread, ppp);
			}
		}
		request.setAttribute("threadlist", disgetThread);
		return mapping.findForward("todisgest");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -