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

📄 post.java

📁 java论坛
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
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 + -