post.java

来自「一个jsp写的bbs」· Java 代码 · 共 1,187 行 · 第 1/4 页

JAVA
1,187
字号
      }

      postForm.setAction("editdo");
      postForm.setTitle(f.getTitle());
      postForm.setDetail(f.getDetail());
      int canUseTitleColor = 0;
      if (f.getIsNew() == 1) {
        if (us.isHaveBoardSpecialPermission(Constant.SPERMISSION_CAN_USE_TITLECOLOR)) {
          canUseTitleColor = 1;
        }
      }
      request.setAttribute("titleColorOptions",
                           BBSCSUtil.getTitleColorOptions(canUseTitleColor, request.getLocale()));
      postForm.setTitleColor(f.getTitleColor());
      postForm.setPostType(f.getPostType());
      postForm.setFace(f.getFace());
      postForm.setEditType(f.getEditType());
      postForm.setSign(3);
      postForm.setEmailInform(f.getEmailInform());
      postForm.setMsgInform(f.getMsgInform());
      this.setTagsAttribute(request, board);

      return mapping.findForward("post");
    }

    if (postForm.getAction().equalsIgnoreCase("editdo")) {
      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);
        return mapping.findForward(this.FORWARD_ERROR);
      }
      title = this.getSysConfig().bestrowScreen(title);
      if (StringUtils.isBlank(detail)) {
        messages.add("error.post.nodetail", new ActionMessage("error.post.nodetail"));
        this.saveErrors(request, messages);
        return mapping.findForward(this.FORWARD_ERROR);
      }

      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);
        return mapping.findForward(this.FORWARD_ERROR);
      }
      detail = this.getSysConfig().bestrowScreen(detail);

      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_ERROR);
      }
      if (! (f.getUserID().equals(us.getId()) ||
             us.isHaveBoardSpecialPermission(Constant.SPERMISSION_CAN_EDITPOST))) {
        messages.add("error.noPermission", new ActionMessage("error.noPermission"));
        this.saveErrors(request, messages);
        return mapping.findForward(this.FORWARD_ERROR);
      }

      MessageResources mr = this.getResources(request);
      Locale locale = this.getLocale(request);

      String IP = request.getRemoteAddr();
      IP = IP.substring(0, IP.lastIndexOf(".")) + ".*";
      f.setArtSize(BBSCSUtil.getSysCharsetStrLength(postForm.getDetail()));

      String amend = mr.getMessage(locale, "change.text", us.getUserName(),
                                   Util.formatDateTime(new Date()), IP);
      f.setAmend(amend);

      f.setEditType(postForm.getEditType());
      f.setFace(postForm.getFace());
      f.setPostType(postForm.getPostType());
      if (postForm.getSign() != 3) {
        if (postForm.getSign() == -1) {
          f.setSign("");
        }
        else {
          f.setSign(us.getSignDetail()[postForm.getSign()]);
        }
      }
      f.setTitle(title);
      f.setTitleColor(postForm.getTitleColor());
      f.setDetail(detail);
      if (f.getIndexStatus() == Constant.INDEX_STATUS_INDEXED) {
        f.setIndexStatus(Constant.INDEX_STATUS_NEED_UPDTAE);
      }

      //f.setTagID(tagId);
      //if (tagId.equals("0")) {
      //  f.setTagName("");
      //}
      //else {
      //  f.setTagName(board.getBoardTagById(tagId).getTagName());
      //}

      try {
        f = this.getForumService().saveEditForum(f);
        if (Constant.USE_URL_REWRITE) {
          return new ActionForward("/read-topic-" + bid + "-" + postForm.getMainID() + "-" + tagId + "-" +
                                   postForm.getFcpage() + "-index-" + postForm.getInpages() + ".html", true);
        }
        else {
          return new ActionForward(BBSCSUtil.getActionMappingURL("/read?action=topic&id=" +
              postForm.getMainID() + "&bid=" + bid + "&fcpage=" + postForm.getFcpage() + "&inpages=" +
              postForm.getInpages() + "&tagId=" + tagId), true);
        }
      }
      catch (BbscsException ex4) {
        messages.add("error.post.editdo", new ActionMessage("error.post.editdo"));
        this.saveErrors(request, messages);
        return mapping.findForward(this.FORWARD_ERROR);

      }
    }

    if (postForm.getAction().equalsIgnoreCase("showdelattachpage")) {
      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 (f.getAttachFileName() == null || f.getAttachFileName().isEmpty()) {
        messages.add("error.post.upfile.notexist",
                     new ActionMessage("error.post.upfile.notexist", postForm.getId()));
        this.saveErrors(request, messages);
        return mapping.findForward(this.FORWARD_HTMLERROR);
      }
      if (! (us.getId().equals(f.getUserID()) ||
             us.isHaveBoardSpecialPermission(Constant.SPERMISSION_CAN_DELATTACH))) {
        messages.add("error.post.upfile.user2",
                     new ActionMessage("error.post.upfile.user2", postForm.getId()));
        this.saveErrors(request, messages);
        return mapping.findForward(this.FORWARD_HTMLERROR);
      }
      request.setAttribute("attachFiles", f.getAttachFileName());
      return mapping.findForward("attachFiles");
    }

    if (postForm.getAction().equalsIgnoreCase("buy")) {
      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_ERROR);
      }

      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, board);
        return mapping.getInputForward();
      }

      if (ui.getCoin() < f.getIsHiddenValue()) {
        messages.add("error.post.buy.coin", new ActionMessage("error.post.buy.coin"));
        this.saveErrors(request, messages);
        return mapping.findForward(this.FORWARD_ERROR);
      }
      try {
        this.getForumService().saveForumBuy(bid, postForm.getId(), f, ui);
        if (Constant.USE_URL_REWRITE) {
          return new ActionForward("/read-topic-" + bid + "-" + postForm.getId() + "-" + tagId +
                                   "-1-index-1.html", true);
        }
        else {
          return new ActionForward(BBSCSUtil.getActionMappingURL("/read?action=topic&id=" +
              postForm.getId() + "&bid=" + bid + "&fcpage=" + 1 + "&fcaction=index" +
              "&inpages=" + 1 + "&tagId=" + tagId), true);
        }

      }
      catch (BbscsException ex5) {
        messages.add("error.post.buy.error", new ActionMessage("error.post.buy.error"));
        this.saveErrors(request, messages);
        return mapping.findForward(this.FORWARD_ERROR);
      }

    }

    return mapping.getInputForward();
  }

  private int getUserPostPerNum(int userNum, int sysNum) {
    if (userNum == 0) {
      return sysNum;
    }
    else {
      return userNum;
    }
  }

  private void setNeedsAttribute(HttpServletRequest request, UserSession us, Board b) {
    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;
    }
    //System.out.println(canUseTitleColor);
    request.setAttribute("titleColorOptions",
                         BBSCSUtil.getTitleColorOptions(canUseTitleColor, request.getLocale()));
    request.setAttribute("postPriceValues",
                         BBSCSUtil.getPostPriceValues(this.getSysConfig().getPostPriceLists()));

    Vector v = new Vector();
    v.add(new LabelValueBean(b.getBoardName(), "0"));
    Iterator it = b.getBoardTag().iterator();
    BoardTag bt = null;
    while (it.hasNext()) {
      bt = (BoardTag) it.next();
      v.add(new LabelValueBean(bt.getTagName(), bt.getId()));
    }
    request.setAttribute("tagValues", v);

  }

  private void setNeedsAttributeRe(HttpServletRequest request, UserSession us, Board b) {
    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()));
    request.setAttribute("postPriceValues",
                         BBSCSUtil.getPostPriceValues(this.getSysConfig().getPostPriceLists()));

    Vector v = new Vector();
    v.add(new LabelValueBean(b.getBoardName(), "0"));
    Iterator it = b.getBoardTag().iterator();
    BoardTag bt = null;
    while (it.hasNext()) {
      bt = (BoardTag) it.next();
      v.add(new LabelValueBean(bt.getTagName(), bt.getId()));
    }
    request.setAttribute("tagValues", v);

  }

  private void setTagsAttribute(HttpServletRequest request, Board b) {
    Vector v = new Vector();
    v.add(new LabelValueBean(b.getBoardName(), "0"));
    Iterator it = b.getBoardTag().iterator();
    BoardTag bt = null;
    while (it.hasNext()) {
      bt = (BoardTag) it.next();
      v.add(new LabelValueBean(bt.getTagName(), bt.getId()));
    }
    request.setAttribute("tagValues", v);
  }

  public BoardService getBoardService() {
    return boardService;
  }

  public ForumService getForumService() {
    return forumService;
  }

  public SysConfig getSysConfig() {
    return sysConfig;
  }

  public UserService getUserService() {
    return userService;
  }

  public void setBoardService(BoardService boardService) {
    this.boardService = boardService;
  }

  public void setForumService(ForumService forumService) {
    this.forumService = forumService;
  }

  public void setSysConfig(SysConfig sysConfig) {
    this.sysConfig = sysConfig;
  }

  public void setUserService(UserService userService) {
    this.userService = userService;
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?