📄 post.java
字号:
package com.laoer.bbscs.web.action;
import java.util.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.commons.lang.*;
import com.laoer.comm.util.*;
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.web.form.*;
import com.laoer.bbscs.web.servlet.*;
import com.laoer.bbscs.exception.*;
import com.laoer.bbscs.fio.UploadFile;
import java.io.*;
import java.io.*;
import org.apache.struts.util.MessageResources;
public class Post
extends BaseAction {
private ForumService forumService;
private BoardService boardService;
private SysConfig sysConfig;
private UserService userService;
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
PostForm postForm = (PostForm) form;
ActionMessages messages = new ActionMessages();
UserSession us = this.getUserSession(request);
UserCookie uc = this.getUserCookie(request, response, this.getSysConfig());
long bid = postForm.getBid();
Board board = (Board) request.getAttribute(Constant.BOARD_REQUEST_KEY);
if (board == null) {
board = this.getBoardService().getBoardByID(bid);
request.setAttribute("board", board);
}
/*
UserInfo ui = this.getUserService().findUserInfoById(us.getId());
if (ui == null) {
messages.add("error.post.guest", new ActionMessage("error.post.guest"));
this.saveErrors(request, messages);
return mapping.getInputForward();
}*/
if (postForm.getAction().equalsIgnoreCase("new") || postForm.getAction().equalsIgnoreCase("re") ||
postForm.getAction().equalsIgnoreCase("requote") ||
postForm.getAction().equalsIgnoreCase("add") ||
postForm.getAction().equalsIgnoreCase("addqre") ||
postForm.getAction().equalsIgnoreCase("addre") ||
postForm.getAction().equalsIgnoreCase("addrequote")) {
if (this.getSysConfig().getPostCheckTime() > 0 &&
!us.isHaveBoardSpecialPermission(Constant.SPERMISSION_NOT_POSTCHECKTIME)) {
if ( (System.currentTimeMillis() - uc.getLastPostTime()) <=
(this.getSysConfig().getPostCheckTime() * 1000)) {
messages.add("error.post.checktime",
new ActionMessage("error.post.checktime",
String.valueOf(this.getSysConfig().getPostCheckTime())));
this.saveErrors(request, messages);
return mapping.findForward(this.FORWARD_ERROR);
}
}
if (this.getSysConfig().getUseForbid() == 1) {
if (this.getSysConfig().isForbidIP(request.getRemoteAddr())) {
messages.add("error.reg.ipforbid",
new ActionMessage("error.reg.ipforbid", request.getRemoteAddr()));
this.saveErrors(request, messages);
return mapping.findForward(this.FORWARD_ERROR);
}
}
}
if (postForm.getAction().equalsIgnoreCase("new")) {
postForm.setAction("add");
if (uc.getEditType() == -1) {
if (this.getSysConfig().getEditInterface() == 0) {
postForm.setEditType(0);
}
else if (this.getSysConfig().getEditInterface() == 1) {
postForm.setEditType(1);
}
else {
postForm.setEditType(2);
}
}
else {
postForm.setEditType(uc.getEditType());
}
postForm.setTitleColor(0);
postForm.setPostType(0);
postForm.setSign( -1);
postForm.setUserBlog(0);
/**
request.setAttribute("postHiddenTypeMoney",
new Integer(this.getSysConfig().getPostHiddenTypeMoney()));
request.setAttribute("postHiddenTypeRe", new Integer(this.getSysConfig().getPostHiddenTypeRe()));
request.setAttribute("postHiddenTypeArtNum",
new Integer(this.getSysConfig().getPostHiddenTypeArtNum()));
int canUseTitleColor = 0;
if (us.isHaveBoardSpecialPermission(Constant.SPERMISSION_CAN_USE_TITLECOLOR)) {
canUseTitleColor = 1;
}
request.setAttribute("titleColorOptions",
BBSCSUtil.getTitleColorOptions(canUseTitleColor, request.getLocale()));*/
this.setNeedsAttribute(request, us);
return mapping.findForward("post");
}
if (postForm.getAction().equalsIgnoreCase("re") ||
postForm.getAction().equalsIgnoreCase("requote")) {
if (postForm.getAction().equalsIgnoreCase("re")) {
postForm.setAction("addre");
}
else {
postForm.setAction("addrequote");
}
if (uc.getEditType() == -1) {
if (this.getSysConfig().getEditInterface() == 0) {
postForm.setEditType(0);
}
else if (this.getSysConfig().getEditInterface() == 1) {
postForm.setEditType(1);
}
else {
postForm.setEditType(2);
}
}
else {
postForm.setEditType(uc.getEditType());
}
postForm.setTitleColor(0);
postForm.setPostType(0);
postForm.setSign( -1);
postForm.setUserBlog(0);
postForm.setTitle(Constant.RE);
/**
request.setAttribute("postHiddenTypeMoney",
new Integer(this.getSysConfig().getPostHiddenTypeMoney()));
request.setAttribute("postHiddenTypeRe", new Integer(this.getSysConfig().getPostHiddenTypeRe()));
request.setAttribute("postHiddenTypeArtNum",
new Integer(this.getSysConfig().getPostHiddenTypeArtNum()));
int canUseTitleColor = 0;
request.setAttribute("titleColorOptions",
BBSCSUtil.getTitleColorOptions(canUseTitleColor, request.getLocale()));*/
this.setNeedsAttributeRe(request, us);
return mapping.findForward("post");
}
if (postForm.getAction().equalsIgnoreCase("upfile")) {
Forum f = this.getForumService().findForumByID(postForm.getId(), postForm.getBid());
if (f == null) {
messages.add("error.post.getpost", new ActionMessage("error.post.getpost"));
this.saveErrors(request, messages);
return mapping.findForward(this.FORWARD_HTMLERROR);
}
if (!us.getId().equals(f.getUserID())) {
messages.add("error.post.upfile.user1",
new ActionMessage("error.post.upfile.user1", postForm.getId()));
this.saveErrors(request, messages);
return mapping.findForward(this.FORWARD_HTMLERROR);
}
return mapping.findForward("upfileInPost");
}
if (postForm.getAction().equalsIgnoreCase("upfileinput")) {
return mapping.findForward("upfileInput");
}
if (postForm.getAction().equalsIgnoreCase("add")) {
String title = StringUtils.trimToEmpty(postForm.getTitle());
String detail = StringUtils.trimToEmpty(postForm.getDetail());
if (StringUtils.isBlank(title) || BBSCSUtil.getSysCharsetStrLength(title) > 90) {
messages.add("error.post.titletoolong", new ActionMessage("error.post.titletoolong"));
this.saveErrors(request, messages);
this.setNeedsAttribute(request, us);
return mapping.getInputForward();
}
title = this.getSysConfig().bestrowScreen(title);
if (StringUtils.isBlank(detail)) {
messages.add("error.post.nodetail", new ActionMessage("error.post.nodetail"));
this.saveErrors(request, messages);
this.setNeedsAttribute(request, us);
return mapping.getInputForward();
}
if (BBSCSUtil.getSysCharsetStrLength(detail) < this.getSysConfig().getPostMinSize() ||
BBSCSUtil.getSysCharsetStrLength(detail) > this.getSysConfig().getPostMaxSize()) {
messages.add("error.post.texttoolong",
new ActionMessage("error.post.texttoolong",
String.valueOf(this.getSysConfig().getPostMinSize()),
String.valueOf(this.getSysConfig().getPostMaxSize())));
this.saveErrors(request, messages);
this.setNeedsAttribute(request, us);
return mapping.getInputForward();
}
detail = this.getSysConfig().bestrowScreen(detail);
UploadFile uploadFile = null;
if (postForm.getUpdateFile() != null &&
StringUtils.isNotBlank(postForm.getUpdateFile().getFileName()) &&
postForm.getUpdateFile().getFileSize() > 0) {
if (!this.getSysConfig().isAllowAttachFileType(postForm.getUpdateFile().getFileName().
toLowerCase()) || postForm.getUpdateFile().getFileSize() >
(this.getSysConfig().getAttachFileSize() * 1024)) {
messages.add("post.upnotice",
new ActionMessage("post.upnotice",
String.valueOf(this.getSysConfig().getAttachFileSize()),
this.getSysConfig().getAttachFileType()));
this.saveErrors(request, messages);
this.setNeedsAttribute(request, us);
return mapping.getInputForward();
}
try {
uploadFile = new UploadFile();
uploadFile.setFileName(postForm.getUpdateFile().getFileName().toLowerCase());
uploadFile.setInputStream(postForm.getUpdateFile().getInputStream());
}
catch (FileNotFoundException ex2) {
uploadFile = null;
}
catch (IOException ex2) {
uploadFile = null;
}
}
long nowtime = System.currentTimeMillis();
Forum f = new Forum();
f.setAgree(0);
f.setAmend("");
f.setArtSize(BBSCSUtil.getSysCharsetStrLength(detail));
f.setAttachFileName(new ArrayList());
f.setAuditing(board.getAuditPost());
if (board.getAuditAttach() == 1 && uploadFile != null) {
f.setAuditingAttachFile(board.getAuditAttach());
}
else {
f.setAuditingAttachFile(0);
}
f.setBeAgainst(0);
f.setBoardID(bid);
f.setBoardName(board.getBoardName());
f.setCanNotDel(0);
f.setCanNotRe(0);
f.setClick(0);
f.setCommend(0);
f.setDelIP("");
f.setDelSign(0);
f.setDelTime(0);
f.setDelUserID("");
f.setDelUserName("");
f.setDetail(detail);
f.setDoEliteName("");
f.setDoEliteTime(0);
f.setEditType(postForm.getEditType());
f.setElite(0);
f.setEliteID(0);
f.setFace(postForm.getFace());
f.setHaveAttachFile(0);
f.setIpAddress(request.getRemoteAddr());
f.setIsHidden(postForm.getIsHidden());
if (postForm.getIsHidden() == 2) {
f.setIsHiddenValue(postForm.getUseCoin());
}
else if (postForm.getIsHidden() == 3) {
f.setIsHiddenValue(postForm.getNeedArtNum());
}
else {
f.setIsHiddenValue(0);
}
f.setIsLock(0);
f.setIsNew(1);
f.setIsTop(0);
f.setIsVote(0);
f.setLastPostNickName("---");
f.setLastPostTitle("");
f.setLastPostUserName("---");
f.setLastTime(nowtime);
f.setMainID("");
f.setNickName(us.getNickName());
f.setParentID("");
f.setPostTime(nowtime);
f.setPostType(postForm.getPostType());
f.setQuoteText("");
f.setReNum(0);
if (postForm.getSign() == -1) {
f.setSign("");
}
else {
f.setSign(us.getSignDetail()[postForm.getSign()]);
}
f.setTitle(title);
f.setTitleColor(postForm.getTitleColor());
f.setUserID(us.getId());
f.setUserName(us.getUserName());
f.setEmailInform(postForm.getEmailInform());
f.setMsgInform(postForm.getMsgInform());
f.setUserBlog(postForm.getUserBlog());
if (board.getAuditPost() == 0) {
f.setIndexStatus(Constant.INDEX_STATUS_NO_INDEX);
}
else {
f.setIndexStatus(Constant.INDEX_STATUS_AUDIT);
}
try {
UserInfo ui = this.getUserService().findUserInfoById(us.getId());
if (ui == null) {
messages.add("error.post.guest", new ActionMessage("error.post.guest"));
this.saveErrors(request, messages);
this.setNeedsAttribute(request, us);
return mapping.getInputForward();
}
f = this.getForumService().createForum(f, board, ui, uploadFile);
uc.addLastPostTime();
if (board.getAuditPost() == 0) {
return new ActionForward(BBSCSUtil.getActionMappingURL("/forum?action=index&bid=" + bid), true);
}
else {
return new ActionForward(BBSCSUtil.getActionMappingURL("/postWaitAudit?bid=" + bid), true);
}
}
catch (BbscsException ex) {
messages.add("error.post.add", new ActionMessage("error.post.add"));
this.saveErrors(request, messages);
this.setNeedsAttribute(request, us);
}
return mapping.getInputForward();
}
if (postForm.getAction().equalsIgnoreCase("addqre")) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -