📄 forumaction.java
字号:
package com.laoer.bbscs.web.action;
import java.util.*;
import javax.servlet.http.*;
import org.apache.commons.lang.*;
import org.apache.struts.action.*;
import com.laoer.bbscs.bean.*;
import com.laoer.bbscs.comm.*;
import com.laoer.bbscs.service.*;
import com.laoer.bbscs.service.config.*;
import com.laoer.bbscs.service.singleton.*;
import com.laoer.bbscs.service.web.*;
import com.laoer.bbscs.web.form.*;
import com.laoer.bbscs.web.servlet.*;
import org.apache.struts.util.LabelValueBean;
public class ForumAction
extends BaseAction {
private ForumService forumService;
private BoardService boardService;
private SysConfig sysConfig;
private ForumHistoryService forumHistoryService;
private CommendService commendService;
private BoardSingleton boardSingleton;
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
ForumActionForm forumBaseForm = (ForumActionForm) form;
long bid = forumBaseForm.getBid();
String tagId = forumBaseForm.getTagId();
if (StringUtils.isBlank(tagId)) {
tagId = "0";
forumBaseForm.setTagId("0");
}
UserSession us = this.getUserSession(request);
UserCookie uc = this.getUserCookie(request, response, this.getSysConfig());
if (StringUtils.isNotBlank(forumBaseForm.getViewMode())) {
if (uc.getForumViewMode() != this.getViewMode(forumBaseForm.getViewMode())) {
uc.addForumViewMode(this.getViewMode(forumBaseForm.getViewMode()), -1);
}
}
if (uc.getForumViewMode() == 0) {
forumBaseForm.setViewMode("www");
}
if (uc.getForumViewMode() == 1) {
forumBaseForm.setViewMode("bbs");
}
if (uc.getForumViewMode() == 2) {
forumBaseForm.setViewMode("lastre");
}
int isHidden = 0;
if (us.isHaveSpecialPermission(Constant.SPERMISSION_CAN_SEE_HIDDEN_BOARD)) { //如果用户有查看隐藏版区的权限
isHidden = -1;
}
//Board board = this.getBoardService().getBoardByID(bid);
Board board = (Board) request.getAttribute(Constant.BOARD_REQUEST_KEY);
if (board == null) {
board = this.getBoardService().getBoardByID(bid);
}
if (board.getBoardType() == 0) { //作为分区封面使用
request.setAttribute("board", board);
/*
List blist = this.getBoardService().findBoardsByParentID(bid, 1, isHidden,
Constant.FIND_BOARDS_BY_ORDER);
request.setAttribute("blist", blist);
List bhotlist = this.getBoardService().findBoardsAllTree(bid, new ArrayList(), 1, isHidden,
Constant.FIND_BOARDS_BY_ORDER);
request.setAttribute("bhotlist", bhotlist);*/
return mapping.findForward("forumCover");
}
else if (board.getBoardType() == 1) { //作为分区使用但不能发帖
List blist = this.getBoardService().findBoardsInIDsInSameLevel(board.getChildIDs(), 1,
isHidden);
request.setAttribute("blist", blist);
request.setAttribute("board", board);
this.setUrlRewrite(request);
return mapping.findForward("forumBoard");
}
else if (board.getBoardType() == 2) { //作为分区使用可以发帖
ForumSearchForm forumSearchForm = new ForumSearchForm();
forumSearchForm.setBid(bid);
request.setAttribute("forumSearchForm", forumSearchForm);
if (forumBaseForm.getAction().equalsIgnoreCase("index")) {
List cblist = new ArrayList();
cblist.add(new Long(bid));
cblist.addAll(board.getChildIDs());
Pages pages = new Pages();
pages.setPage(forumBaseForm.getPage());
pages.setPerPageNum(this.getUserForumPerNum(uc.getForumPerNum(),
this.getSysConfig().getForumPrePage()));
//pages.setPerPageNum(1);
pages.setFileName(BBSCSUtil.getActionMappingURL("/forum?action=" + forumBaseForm.getAction() +
"&bid=" + bid, request));
if (forumBaseForm.getTotal() > 0) {
pages.setTotalNum(forumBaseForm.getTotal());
}
PageList pl;
if (uc.getForumViewMode() == 1) {
pl = this.getForumService().findForumsInBidsAll(cblist, pages);
}
else if (uc.getForumViewMode() == 2) {
pl = this.getForumService().findForumsInBidsLastRe(cblist, pages);
}
else {
pl = this.getForumService().findForumsInBidsWWW(cblist, pages);
}
request.setAttribute("pl", pl);
request.setAttribute("board", board);
List bcl = this.getBoardService().findBoardsInIDsInSameLevel(board.getChildIDs(), 1,
isHidden);
List blist = new ArrayList();
blist.add(board);
blist.addAll(bcl);
request.setAttribute("blist", blist);
return mapping.findForward("forum");
}
if (forumBaseForm.getAction().equalsIgnoreCase("hot")) {
List cblist = new ArrayList();
cblist.add(new Long(bid));
cblist.addAll(board.getChildIDs());
Pages pages = new Pages();
pages.setPage(forumBaseForm.getPage());
pages.setPerPageNum(this.getUserForumPerNum(uc.getForumPerNum(),
this.getSysConfig().getForumPrePage()));
//pages.setPerPageNum(1);
pages.setFileName(BBSCSUtil.getActionMappingURL("/forum?action=" + forumBaseForm.getAction() +
"&bid=" + bid, request));
if (forumBaseForm.getTotal() > 0) {
pages.setTotalNum(forumBaseForm.getTotal());
}
PageList pl = this.getForumService().findForumsHotTopic(cblist, this.getSysConfig().getForumHotRes(),
this.getSysConfig().getForumHotViews(), pages);
request.setAttribute("pl", pl);
request.setAttribute("board", board);
List bcl = this.getBoardService().findBoardsInIDsInSameLevel(board.getChildIDs(), 1,
isHidden);
List blist = new ArrayList();
blist.add(board);
blist.addAll(bcl);
request.setAttribute("blist", blist);
return mapping.findForward("forum");
}
if (forumBaseForm.getAction().equalsIgnoreCase("commend")) {
List cblist = new ArrayList();
cblist.add(new Long(bid));
cblist.addAll(board.getChildIDs());
Pages pages = new Pages();
pages.setPage(forumBaseForm.getPage());
pages.setPerPageNum(this.getUserForumPerNum(uc.getForumPerNum(),
this.getSysConfig().getForumPrePage()));
//pages.setPerPageNum(1);
pages.setFileName(BBSCSUtil.getActionMappingURL("/forum?action=" + forumBaseForm.getAction() +
"&bid=" + bid, request));
if (forumBaseForm.getTotal() > 0) {
pages.setTotalNum(forumBaseForm.getTotal());
}
long topBid = board.getId().longValue();
if (board.getParentIDs() != null && board.getParentIDs().size() > 0) {
topBid = ( (Long) board.getParentIDs().get(0)).longValue();
}
PageList pl = this.getForumService().findForumsCommend(cblist, topBid, pages);
request.setAttribute("pl", pl);
request.setAttribute("board", board);
List bcl = this.getBoardService().findBoardsInIDsInSameLevel(board.getChildIDs(), 1,
isHidden);
List blist = new ArrayList();
blist.add(board);
blist.addAll(bcl);
request.setAttribute("blist", blist);
return mapping.findForward("forum");
}
if (forumBaseForm.getAction().equalsIgnoreCase("history")) {
List cblist = new ArrayList();
cblist.add(new Long(bid));
cblist.addAll(board.getChildIDs());
Pages pages = new Pages();
pages.setPage(forumBaseForm.getPage());
pages.setPerPageNum(this.getUserForumPerNum(uc.getForumPerNum(),
this.getSysConfig().getForumPrePage()));
//pages.setPerPageNum(1);
pages.setFileName(BBSCSUtil.getActionMappingURL("/forum?action=" + forumBaseForm.getAction() +
"&bid=" + bid, request));
if (forumBaseForm.getTotal() > 0) {
pages.setTotalNum(forumBaseForm.getTotal());
}
PageList pl = this.getForumHistoryService().findForumHistorysInBidsWWW(cblist, pages);
request.setAttribute("pl", pl);
request.setAttribute("board", board);
List bcl = this.getBoardService().findBoardsInIDsInSameLevel(board.getChildIDs(), 1,
isHidden);
List blist = new ArrayList();
blist.add(board);
blist.addAll(bcl);
request.setAttribute("blist", blist);
return mapping.findForward("forumHistory");
}
}
else { //作为论坛使用
ForumSearchForm forumSearchForm = new ForumSearchForm();
forumSearchForm.setBid(bid);
request.setAttribute("forumSearchForm", forumSearchForm);
this.setUrlRewrite(request);
this.setBoardSelectValues(request, isHidden);
if (forumBaseForm.getAction().equalsIgnoreCase("index")) {
Pages pages = new Pages();
pages.setPage(forumBaseForm.getPage());
pages.setPerPageNum(this.getUserForumPerNum(uc.getForumPerNum(),
this.getSysConfig().getForumPrePage()));
if (forumBaseForm.getTotal() > 0) {
pages.setTotalNum(forumBaseForm.getTotal());
}
//pages.setPerPageNum(1);
if (Constant.USE_URL_REWRITE) {
pages.setUseUrlRewrite(Constant.USE_URL_REWRITE);
pages.setFileName("forum-" + forumBaseForm.getAction() + "-" + bid + "-0-{page}-{total}.html");
}
else {
pages.setFileName(BBSCSUtil.getActionMappingURL("/forum?action=" + forumBaseForm.getAction() +
"&bid=" + bid, request));
}
PageList pl;
if (tagId.equals("0")) { //版区根位置
if (uc.getForumViewMode() == 1) {
pl = this.getForumService().findForumsAll(bid, pages);
}
else if (uc.getForumViewMode() == 2) {
pl = this.getForumService().findForumsMainLastRe(bid, pages);
}
else {
pl = this.getForumService().findForumsMainWWW(bid, pages);
}
}
else { //进入Tag
if (uc.getForumViewMode() == 1) {
pl = this.getForumService().findForumsAll(bid, tagId, pages);
}
else if (uc.getForumViewMode() == 2) {
pl = this.getForumService().findForumsMainLastRe(bid, tagId, pages);
}
else {
pl = this.getForumService().findForumsMainWWW(bid, tagId, pages);
}
}
request.setAttribute("pl", pl);
request.setAttribute("board", board);
List pboards = this.getBoardService().findParentBoards(board.getParentIDs());
request.setAttribute("pboards", pboards);
return mapping.findForward("forum");
}
if (forumBaseForm.getAction().equalsIgnoreCase("hot")) {
Pages pages = new Pages();
pages.setPage(forumBaseForm.getPage());
pages.setPerPageNum(this.getUserForumPerNum(uc.getForumPerNum(),
this.getSysConfig().getForumPrePage()));
//pages.setPerPageNum(1);
pages.setFileName(BBSCSUtil.getActionMappingURL("/forum?action=" + forumBaseForm.getAction() +
"&bid=" + bid, request));
if (forumBaseForm.getTotal() > 0) {
pages.setTotalNum(forumBaseForm.getTotal());
}
PageList pl = this.getForumService().findForumsHotTopic(bid, this.getSysConfig().getForumHotRes(),
this.getSysConfig().getForumHotViews(), pages);
request.setAttribute("pl", pl);
request.setAttribute("board", board);
List pboards = this.getBoardService().findParentBoards(board.getParentIDs());
request.setAttribute("pboards", pboards);
return mapping.findForward("forum");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -