📄 redirectmanageaction.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 + -