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

📄 redirectmanageaction.java

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

import java.io.IOException;
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.domain.Threads;
import cn.jsprun.service.forumsedit.ForumService;
import cn.jsprun.service.posts.ThreadsService;
import cn.jsprun.service.system.DataBaseService;
import cn.jsprun.utils.BeanFactory;
import cn.jsprun.utils.Common;
public class RedirectManageAction extends DispatchAction {
	private String tablepre="jrun_";
	private DataBaseService dataBaseService = (DataBaseService) BeanFactory.getBean("dataBaseService");
	@SuppressWarnings("unchecked")
	public ActionForward findpost(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		Integer pid=Common.toDigit(request.getParameter("pid"), 1000000000L, 0L).intValue();
		Integer ptid=Common.toDigit(request.getParameter("ptid"), 1000000000L, 0L).intValue();
		String sql="SELECT p.tid, p.dateline, t.special FROM "+tablepre+"posts p LEFT JOIN "+tablepre+"threads t USING(tid) WHERE p.pid='"+pid+"'";
		List<Map<String,String>> posts=dataBaseService.executeQuery(sql);
		if(posts!=null&&posts.size()>0)
		{
			HttpSession session=request.getSession();
			Members member=(Members)session.getAttribute("user");
			Map<String,String> settings=(Map<String,String>)request.getAttribute("settings");
			Map<String,String> post=posts.get(0);
			String sqladd=Common.toDigit(post.get("special"))>0?"AND first=0":"";
			sql="SELECT count(*) count FROM "+tablepre+"posts WHERE tid='"+post.get("tid")+"' AND dateline<='"+post.get("dateline")+"' "+sqladd;
			double count=Double.valueOf(dataBaseService.executeQuery(sql).get(0).get("count"));
			double ppp=member!=null&&member.getPpp()>0?member.getPpp():Common.toDigit(settings.get("postperpage"), 1000000000L, 0L).doubleValue();
			int page=(int)Math.ceil(count/ppp);
			String special=request.getParameter("special");
			String location=null;
			if(special==null)
			{
				location="viewthread.jsp?tid="+post.get("tid")+"&page="+page+"#pid"+pid;
			}
			else{
				location="viewthread.jsp?do=tradeinfo&tid="+post.get("tid")+"&pid="+pid;
			}
			try {
				response.sendRedirect(location);
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		else{
			request.setAttribute("errorInfo","指定的帖子不存在或已被删除或正在被审核。<br /><br /><a href=\"viewthread.jsp?tid="+ptid+"\">[ 尝试转入主题请点击这里 ]</a>");
			return mapping.findForward("showMessage");
		}
		return null;
	}
	@SuppressWarnings("unchecked")
	public ActionForward lastpost(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		String tid=request.getParameter("tid");
		String sql="";
		if(tid!=null)
		{
			sql="SELECT tid, replies, special FROM "+tablepre+"threads WHERE tid='"+tid+"' AND displayorder>='0'";
		}
		else{
			Short fid=Common.toDigit(request.getParameter("fid"), 1000000L, 0L).shortValue();
			if(((ForumService) BeanFactory.getBean("forumService")).findById(fid)==null)
			{
				request.setAttribute("errorInfo","指定的版块不存在,请返回。");
				return mapping.findForward("showMessage");
			}
			sql="SELECT tid, replies, special FROM {"+tablepre+"}threads WHERE fid='"+fid+"' AND displayorder>='0' ORDER BY lastpost DESC LIMIT 1";
		}
		List<Map<String,String>> threads=dataBaseService.executeQuery(sql);
		if(threads!=null&&threads.size()>0)
		{
			HttpSession session=request.getSession();
			Map<String,String> settings=(Map<String,String>)request.getAttribute("settings");
			Members member=(Members)session.getAttribute("user");
			Map<String,String> thread=threads.get(0);
			double replies=Integer.valueOf(thread.get("replies"));
			double ppp=member!=null&&member.getPpp()>0?member.getPpp():Common.toDigit(settings.get("postperpage"), 1000000000L, 0L).intValue();
			int page=(int)Math.ceil((Double.valueOf(thread.get("special"))>0?replies:replies+1)/ppp);
			try {
				response.sendRedirect("viewthread.jsp?tid="+tid+"&page="+page);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		else{
			request.setAttribute("errorInfo","指定的主题不存在或已被删除或正在被审核,请返回。");
			return mapping.findForward("showMessage");
		}
		return null;
	}
	@SuppressWarnings("unchecked")
	public ActionForward newpost(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		Integer tid=Common.toDigit(request.getParameter("tid"), 1000000000L, 0L).intValue();
		Threads thread=((ThreadsService) BeanFactory.getBean("threadsService")).findByTid(tid);
		if(thread==null)
		{
			request.setAttribute("errorInfo","指定的主题不存在或已被删除或正在被审核,请返回。");
			return mapping.findForward("showMessage");
		}
		tid=thread.getClosed()<2?tid:thread.getClosed();
		HttpSession session=request.getSession();
		Map<String,String> settings=(Map<String,String>)request.getAttribute("settings");
		Members member=(Members)session.getAttribute("user");
		String sql="SELECT COUNT(*) count FROM "+tablepre+"posts WHERE tid='"+tid+"' AND dateline<='"+(member!=null?member.getLastvisit():0)+"'";
		double count=Double.valueOf(dataBaseService.executeQuery(sql).get(0).get("count"));
		double ppp=member!=null&&member.getPpp()>0?member.getPpp():Common.toDigit(settings.get("postperpage"), 1000000000L, 0L).doubleValue();
		int page=(int)Math.ceil(count/ppp);
		try {
			request.getRequestDispatcher("viewthread.jsp?tid="+tid+"&page="+page).forward(request, response);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	public ActionForward newset(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		String gotos = request.getParameter("goto");
		String fid = request.getParameter("fid");
		Integer tid=Common.toDigit(request.getParameter("tid"), 1000000000L, 0L).intValue();
		if(gotos!=null && !gotos.equals("")&& fid!=null){			
			Threads currthread = ((ThreadsService) BeanFactory.getBean("threadsService")).findByTid(tid);
			boolean isNextnewset=false;
			if(gotos.equals("nextnewset")){
				isNextnewset=true;
			}
			else if(gotos.equals("nextoldset"))
			{
				isNextnewset=false;
			}
			if(currthread!=null){
				String threadsql = "SELECT tid FROM jrun_threads WHERE fid='"+fid+"' AND displayorder>='0' AND lastpost"+(isNextnewset?">":"<")+"'"+currthread.getLastpost()+"' ORDER BY lastpost "+(isNextnewset?"ASC":"DESC")+" LIMIT 1";
				List<Map<String, String>> threadlist = dataBaseService.executeQuery(threadsql);
				if(threadlist!=null && threadlist.size()>0){
					Map<String,String> threadmap = threadlist.get(0);
					tid = Common.toDigit(threadmap.get("tid"));
				}else{
					request.setAttribute("errorInfo","没有比当前更"+(isNextnewset?"新":"早")+"的主题,请返回。");
					return mapping.findForward("showMessage");
				}
			}else{
				request.setAttribute("errorInfo", "未定义操作,请返回。");
				return mapping.findForward("showMessage");
			}
		try {
			response.sendRedirect("viewthread.jsp?tid="+tid+"&page=1");
		} catch (Exception e) {
			e.printStackTrace();
		}
		}else{
			request.setAttribute("errorInfo", "未定义操作,请返回。");
			return mapping.findForward("showMessage");
		}
		return null;
	}
}

⌨️ 快捷键说明

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