📄 digestaction.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:"")+"&authorid="+(authorid!=null?authorid:"")+"&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 + -