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

📄 forumserviceimp.java

📁 java论坛
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
   * 删除Forum对象
   *
   * @param id String
   * @param bid long
   * @throws BbscsException
   * @todo Implement this com.laoer.bbscs.service.ForumService method
   */
  public void removeForum(String id, long bid) throws BbscsException {
    try {
      this.getForumDAO().removeForum(id, bid);
    }
    catch (Exception ex) {
      logger.error(ex);
      throw new BbscsException(ex);
    }
  }

  /**
   * 删除Forum对象
   *
   * @param id String
   * @throws BbscsException
   * @todo Implement this com.laoer.bbscs.service.ForumService method
   */
  public void removeForum(String id) throws BbscsException {
    try {
      this.getForumDAO().removeForum(id);
    }
    catch (Exception ex) {
      logger.error(ex);
      throw new BbscsException(ex);
    }
  }

  /**
   * 删除Forum对象
   *
   * @param forum Forum
   * @throws BbscsException
   * @todo Implement this com.laoer.bbscs.service.ForumService method
   */
  public void removeForum(Forum forum) throws BbscsException {
    try {
      this.getForumDAO().removeForum(forum);
    }
    catch (Exception ex) {
      logger.error(ex);
      throw new BbscsException(ex);
    }
  }

  /**
   * 发帖
   *
   * @param forum Forum
   * @return Forum
   * @throws BbscsException
   * @todo Implement this com.laoer.bbscs.service.ForumService method
   */
  public Forum createForum(Forum forum) throws BbscsException {
    Board board = this.getBoardDAO().getBoardByID(forum.getBoardID());
    UserInfo ui = this.getUserInfoDAO().findUserInfoById(forum.getUserID());
    return createForum(forum, board, ui, null);
  }

  public Forum createForum(Forum forum, Board board, UserInfo ui, UploadFile uploadFile) throws
      BbscsException {
    try {
      forum = this.getForumDAO().saveForum(forum);
      if (uploadFile != null) {
        String fileName = "File_" + forum.getId() + "_" + System.currentTimeMillis() + "." +
            FilenameUtils.getExtension(uploadFile.getFileName());
        String toFilePath = BBSCSUtil.getUpFilePath(forum.getBoardID(), forum.getPostTime());
        this.getForumUploadFile().saveUploadFile(toFilePath + fileName, uploadFile,
                                                 this.getSysConfig());
        forum.setHaveAttachFile(1);
        forum.getAttachFileName().add(fileName);
        if (board.getAuditAttach() == 1) {
          forum.setAuditingAttachFile(1);
        }
      }
      forum.setMainID(forum.getId());
      forum = this.getForumDAO().saveForum(forum);
      if (board.getAuditPost() == 0 && board.getAddUserPostNum() == 1) { //不需要审核,并且版区为增加用户发帖数量
        ui.setArticleNum(ui.getArticleNum() + 1);
        ui = this.getUserInfoDAO().saveUserInfo(ui);
        this.getUserInfoFileIO().writeUserFile(ui);
      }
      if (forum.getEmailInform() != 0 || forum.getMsgInform() != 0) {
        if (this.getSubscibeDAO().findSubscibeByPostID(forum.getId(), ui.getId(), forum.getBoardID()) == null) {
          Subscibe subs = this.getSubscibeFactory().getInstance(forum.getBoardID());
          subs.setBoardID(forum.getBoardID());
          subs.setCreateTime(new Date());
          subs.setEmailinform(forum.getEmailInform());
          subs.setMsginform(forum.getMsgInform());
          subs.setNickName(ui.getNickName());
          subs.setPostID(forum.getId());
          subs.setPostTitle(forum.getTitle());
          subs.setUserEmail(ui.getEmail());
          subs.setUserID(ui.getId());
          subs.setUserName(ui.getUserName());
          subs.setUserLocale(ui.getUserLocale());
          this.getSubscibeDAO().saveSubscibe(subs);
        }
      }

      return forum;
    }
    catch (Exception ex) {
      logger.error(ex);
      throw new BbscsException(ex);
    }
  }

  /**
   * 回帖
   * @param forum Forum
   * @param mainForum Forum
   * @param board Board
   * @param ui UserInfo
   * @return Forum
   * @throws BbscsException
   */
  public Forum createReForum(Forum forum, Forum mainForum, Board board, UserInfo ui,
                             UploadFile uploadFile, boolean isQuote) throws BbscsException {
    try {
      if (board.getAuditPost() == 0) { //不需要审核
        mainForum.setLastPostNickName(forum.getNickName());
        mainForum.setLastPostTitle(forum.getTitle());
        mainForum.setLastPostUserName(forum.getUserName());
        mainForum.setLastTime(forum.getPostTime());
        mainForum.setReNum(mainForum.getReNum() + 1);
        if (forum.getParentID().equals(forum.getMainID())) { //回复的是主帖
          if (mainForum.getCanNotRe() == 0) {
            mainForum.setCanNotRe(1);
          }
          if (isQuote) {
            forum.setQuoteEditType(mainForum.getEditType());
            if (this.getSysConfig().getQuoteMaxSize() > 0) {
              forum.setQuoteText(BBSCSUtil.getSpeShortString(mainForum.getDetail(),
                  this.getSysConfig().getQuoteMaxSize(), "..."));
            }
            else {
              forum.setQuoteText(mainForum.getDetail());
            }
          }
        }
      }
      //else {
      //}
      mainForum = this.getForumDAO().saveForum(mainForum);
      if (mainForum.getReNum() == this.getSysConfig().getForumHotRes()) { //回复次数达到热贴标准,增加发帖人人缘系数
        UserInfo mui = this.getUserInfoDAO().findUserInfoById(mainForum.getUserID());
        if (mui != null) {
          mui.setUserKnow(mui.getUserKnow() + 1);
          this.getUserInfoDAO().saveUserInfo(mui);
          this.getUserInfoFileIO().writeUserFile(mui);
        }
      }
      Forum reForum = mainForum;
      if (!forum.getParentID().equals(forum.getMainID())) { //回复的不是主帖
        reForum = this.getForumDAO().findForumByID(forum.getParentID(), forum.getBoardID());
        if (reForum != null) {
          if (reForum.getCanNotRe() == 0) {
            reForum.setCanNotRe(1);
            reForum = this.getForumDAO().saveForum(reForum);
          }
          if (isQuote) {
            forum.setQuoteEditType(reForum.getEditType());
            if (this.getSysConfig().getQuoteMaxSize() > 0) {
              forum.setQuoteText(BBSCSUtil.getSpeShortString(reForum.getDetail(),
                  this.getSysConfig().getQuoteMaxSize(), "..."));
            }
            else {
              forum.setQuoteText(reForum.getDetail());
            }
          }
        }
      }

      //处理文章标题
      if (forum.getTitle().equalsIgnoreCase(Constant.RE)) {
        if (reForum != null) {
          if (reForum.getTitle().startsWith(Constant.RE)) {
            forum.setTitle(reForum.getTitle());
          }
          else {
            if (BBSCSUtil.getSysCharsetStrLength(Constant.RE + reForum.getTitle()) > 90) {
              forum.setTitle(reForum.getTitle());
            }
            else {
              forum.setTitle(Constant.RE + reForum.getTitle());
            }
          }
        }
      }

      forum = this.getForumDAO().saveForum(forum);
      if (uploadFile != null) {
        String fileName = "File_" + forum.getId() + "_" + System.currentTimeMillis() + "." +
            FilenameUtils.getExtension(uploadFile.getFileName());
        String toFilePath = BBSCSUtil.getUpFilePath(forum.getBoardID(), forum.getPostTime());
        this.getForumUploadFile().saveUploadFile(toFilePath + fileName, uploadFile,
                                                 this.getSysConfig());
        forum.setHaveAttachFile(1);
        forum.getAttachFileName().add(fileName);
        forum = this.getForumDAO().saveForum(forum);
      }

      if (board.getAuditPost() == 0 && board.getAddUserPostNum() == 1) { //不需要审核,并且版区为增加用户发帖数量
        ui.setArticleNum(ui.getArticleNum() + 1);
        ui = this.getUserInfoDAO().saveUserInfo(ui);
        this.getUserInfoFileIO().writeUserFile(ui);
      }

      if (forum.getEmailInform() != 0 || forum.getMsgInform() != 0) {
        Subscibe subs = this.getSubscibeFactory().getInstance(forum.getBoardID());
        subs.setBoardID(forum.getBoardID());
        subs.setCreateTime(new Date());
        subs.setEmailinform(forum.getEmailInform());
        subs.setMsginform(forum.getMsgInform());
        subs.setNickName(ui.getNickName());
        subs.setPostID(forum.getId());
        subs.setPostTitle(forum.getTitle());
        subs.setUserEmail(ui.getEmail());
        subs.setUserID(ui.getId());
        subs.setUserName(ui.getUserName());
        subs.setUserLocale(ui.getUserLocale());
        this.getSubscibeDAO().saveSubscibe(subs);
      }
      this.getSubscibeQueue().add(forum);

      return forum;
    }
    catch (Exception ex) {
      logger.error(ex);
      throw new BbscsException(ex);
    }
  }

  public Forum createForumUpFile(Forum forum, UploadFile uploadFile) throws BbscsException {
    try {
      if (uploadFile != null) {
        String fileName = "File_" + forum.getId() + "_" + System.currentTimeMillis() + "." +
            FilenameUtils.getExtension(uploadFile.getFileName());
        String toFilePath = BBSCSUtil.getUpFilePath(forum.getBoardID(), forum.getPostTime());
        this.getForumUploadFile().saveUploadFile(toFilePath + fileName, uploadFile,
                                                 this.getSysConfig());
        //System.out.println("upfile");
        List attachFiles = new ArrayList();
        attachFiles.addAll(forum.getAttachFileName());
        attachFiles.add(fileName);
        //forum.getAttachFileName().add(fileName);
        forum.setAttachFileName(attachFiles);
        if (forum.getHaveAttachFile() == 0) {
          forum.setHaveAttachFile(1);
        }

        forum = this.getForumDAO().saveForum(forum);
      }
      return forum;
    }
    catch (Exception ex) {
      logger.error(ex);
      throw new BbscsException(ex);
    }
  }

  /**
   * 帖子修改
   *
   * @param forum Forum
   * @return Forum
   * @throws BbscsException
   * @todo Implement this com.laoer.bbscs.service.ForumService method
   */
  public Forum editForum(Forum forum) throws BbscsException {
    return null;
  }

  /**
   *
   * @param bids List
   * @param reNum int
   * @return int
   */
  public int getForumNumReNum(List bids, int reNum) {
    return this.getForumDAO().getForumNumRcc(bids, reNum, -1, -1);
  }

  /**
   *
   * @param bid long
   * @param reNum int
   * @return int
   */
  public int getForumNumReNum(long bid, int reNum) {
    return this.getForumDAO().getForumNumRcc(bid, reNum, -1, -1);
  }

  /**
   *
   * @param bids List
   * @param reNum int
   * @param pages Pages
   * @return PageList
   */
  public PageList findForumsReNum(List bids, int reNum, Pages pages) {
    PageList pl = new PageList();
    if (pages.getTotalNum() == -1) {
      pages.setTotalNum(this.getForumNumReNum(bids, reNum));
    }
    pages.executeCount();

    List l = this.getForumDAO().findForumsRcc(bids, reNum, -1, -1, "postTime", Constant.ORDER_DESC,
                                              pages.getSpage(), pages.getPerPageNum());
    pl.setObjectList(l);
    pl.setPages(pages);
    return pl;

  }

  /**
   *
   * @param bid long
   * @param reNum int
   * @param pages Pages
   * @return PageList
   */
  public PageList findForumsReNum(long bid, int reNum, Pages pages) {
    PageList pl = new PageList();
    if (pages.getTotalNum() == -1) {
      pages.setTotalNum(this.getForumNumReNum(bid, reNum));
    }
    pages.executeCount();

    List l = this.getForumDAO().findForumsRcc(bid, reNum, -1, -1, "postTime", Constant.ORDER_DESC,
                                              pages.getSpage(), pages.getPerPageNum());
    pl.setObjectList(l);
    pl.setPages(pages);
    return pl;
  }

  /**
   *
   * @param bids List
   * @param click int
   * @return int
   */
  public int getForumNumClick(List bids, int click) {
    return this.getForumDAO().getForumNumRcc(bids, -1, click, -1);
  }

  /**
   *
   * @param bid long
   * @param click int
   * @return int
   */
  public int getForumNumClick(long bid, int click) {
    return this.getForumDAO().getForumNumRcc(bid, -1, click, -1);
  }

  /**
   *
   * @param bids List
   * @param click int
   * @param pages Pages
   * @return PageList
   */
  public PageList findForumsClick(List bids, int click, Pages pages) {
    PageList pl = new PageList();
    if (pages.getTotalNum() == -1) {
      pages.setTotalNum(this.getForumNumClick(bids, click));
    }
    pages.executeCount();

    List l = this.getForumDAO().findForumsRcc(bids, -1, click, -1, "postTime", Constant.ORDER_DESC,
                                              pages.getSpage(), pages.getPerPageNum());
    pl.setObjectList(l);
    pl.setPages(pages);
    return pl;
  }

  /**
   *
   * @param bid long
   * @param click int
   * @param pages Pages
   * @return PageList
   */
  public PageList findForumsClick(long bid, int click, Pages pages) {
    PageList pl = new PageList();
    if (pages.getTotalNum() == -1) {
      pages.setTotalNum(this.getForumNumClick(bid, click));
    }

⌨️ 快捷键说明

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