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

📄 forumserviceimp.java

📁 天乙虚拟社区8.05版本。只支持Mysql
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                    subs.setUserLocale(ui.getUserLocale());
                    this.getSubscibeDAO().saveSubscibe(subs);
                }
            }

            this.getSysListObjCache().remove(Constant.FORUM_NEW_CACHE_NAME);
            return forum;
        } catch (Exception ex) {
            logger.error(ex);
            throw new BbscsException(ex);
        }
    }

    @SuppressWarnings("unchecked")
    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());
                List attachFiles = new ArrayList();
                attachFiles.addAll(forum.getAttachFileName());
                attachFiles.add(fileName);
                forum.setAttachFileName(attachFiles);
                if (forum.getHaveAttachFile() == 0) {
                    forum.setHaveAttachFile(1);
                }

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

    @SuppressWarnings("unchecked")
    public Forum createReForum(Forum forum, Forum mainForum, Board board, UserInfo ui, UploadFile uploadFile,
                               boolean isQuote) throws BbscsException {
        try {
            String detail = forum.getDetail();
            //if (board.getAuditPost() == 0) { // 不需要审核
            if (forum.getAuditing() == 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(this.getForumDetail(mainForum, false), this
                                    .getSysConfig().getQuoteMaxSize(), "..."));
                        } else {
                            forum.setQuoteText(this.getForumDetail(mainForum, false));
                        }
                    }
                }
            } else {
                //mainForum.setLastPostTitle(forum.getTitle()); change at 2007.9.7
                //mainForum.setLastTime(forum.getPostTime()); change at 2007.9.7
                if (forum.getParentID().equals(forum.getMainID())) { // 回复的是主帖
                    if (isQuote) {
                        forum.setQuoteEditType(mainForum.getEditType());
                        if (this.getSysConfig().getQuoteMaxSize() > 0) {
                            forum.setQuoteText(BBSCSUtil.getSpeShortString(this.getForumDetail(mainForum, false), this
                                    .getSysConfig().getQuoteMaxSize(), "..."));
                        } else {
                            forum.setQuoteText(this.getForumDetail(mainForum, false));
                        }
                    }
                }
            }
            mainForum = this.getForumDAO().saveOrUpdateForum(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().saveOrUpdateForum(reForum);
                    }
                    if (isQuote) {
                        forum.setQuoteEditType(reForum.getEditType());
                        String reDetail = this.getForumDetail(reForum, false);
                        if (this.getSysConfig().getQuoteMaxSize() > 0) {
                            forum.setQuoteText(BBSCSUtil.getSpeShortString(reDetail, this.getSysConfig()
                                    .getQuoteMaxSize(), "..."));
                        } else {
                            forum.setQuoteText(reDetail);
                        }
                    }
                }
            }

            // 处理文章标题
            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().saveOrUpdateForum(forum);
            if (Constant.POST_STORAGE_MODE == 0) {
                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().saveOrUpdateForum(forum);
                }
            } else {
                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);

                }

                String postFileName = "P_" + forum.getBoardID() + "_" + forum.getId() + ".txt";
                File postFile = new File(this.getForumConfig().getForumPath(forum.getBoardID(), forum.getPostTime())
                        + postFileName);
                FileUtils.writeStringToFile(postFile, detail, Constant.CHARSET);
                forum.setDetail(postFileName);

                forum = this.getForumDAO().saveOrUpdateForum(forum);
            }

            //if (board.getAuditPost() == 0 && board.getAddUserPostNum() == 1) { // 不需要审核,并且版区为增加用户发帖数量
            if (forum.getAuditing() == 0 && board.getAddUserPostNum() == 1) { // 不需要审核,并且版区为增加用户发帖数量
                ui.setArticleNum(ui.getArticleNum() + 1);
                ui.setExperience(ui.getExperience() + 1); // 回帖增加经验值1点。add at
                // 2007.2.23
                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.setForum(forum);

                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 createVoteForum(Forum forum, Board board, Vote vote, UserInfo ui, String voteItem)
            throws BbscsException {
        try {
            // String detail = forum.getDetail();
            // forum.setDetail("");
            String[] details = voteItem.split("\n");

            vote = this.getVoteDAO().saveVote(vote);
            for (int i = 0; i < details.length; i++) {
                VoteItem vi = new VoteItem();
                vi.setItem(details[i]);
                vi.setItemValue(0);
                vi.setVoteID(vote.getId());
                this.getVoteItemDAO().saveVoteItem(vi);
            }
            forum.setVoteID(vote.getId());
            forum = this.getForumDAO().saveOrUpdateForum(forum);

            forum.setMainID(forum.getId());
            forum = this.getForumDAO().saveOrUpdateForum(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.setForum(forum);

                    subs.setUserEmail(ui.getEmail());
                    subs.setUserID(ui.getId());
                    subs.setUserName(ui.getUserName());
                    this.getSubscibeDAO().saveSubscibe(subs);
                }
            }
            this.getSysListObjCache().remove(Constant.FORUM_NEW_CACHE_NAME);
            return forum;
        } catch (Exception ex) {
            logger.error(ex);
            throw new BbscsException(ex);
        }
    }

    public void delForumsNotAuditingAttachFile(List ids) throws BbscsException {
        List forums = this.getForumDAO().findForumsInIds(ids);
        for (int i = 0; i < forums.size(); i++) {
            Forum forum = (Forum) forums.get(i);
            if (forum.getHaveAttachFile() == 1) {
                List fl = forum.getAttachFileName();
                String filePath = BBSCSUtil.getUpFilePath(forum.getBoardID(), forum.getPostTime());
                try {
                    for (int j = 0; j < fl.size(); j++) {
                        File attachFile = new File(filePath + (String) fl.get(j));
                        if (attachFile.exists()) {
                            FileUtils.forceDelete(attachFile);
                        }
                        File attachFileSmall = new File(filePath + (String) fl.get(j) + Constant.IMG_SMALL_FILEPREFIX);
                        if (attachFileSmall.exists()) {
                            FileUtils.forceDelete(attachFileSmall);
                        }
                    }
                    fl.clear();
                    forum.setAttachFileName(fl);
                    forum.setAuditingAttachFile(0);
                    forum.setHaveAttachFile(0);
                    this.getForumDAO().saveOrUpdateForum(forum);
                } catch (Exception ex) {
                    logger.error(ex);
                    throw new BbscsException(ex);
                }
            }
        }
    }

    public void delPostReal(Forum forum) throws BbscsException {
        try {
            /*
                * if (forum.getHaveAttachFile() == 1 && forum.getAttachFileName() !=
                * null && forum.getAttachFileName().size() > 0) { List fl =
                * forum.getAttachFileName(); String filePath =
                * BBSCSUtil.getUpFilePath(forum.getBoardID(), forum.getPostTime());
                * for (int i = 0; i < fl.size(); i++) { File attachFile = new
                * File(filePath + (String) fl.get(i)); if (attachFile.exists()) {
                * FileUtils.forceDelete(attachFile); } File attachFileSmall = new
                * File(filePath + (String) fl.get(i) +
                * Constant.IMG_SMALL_FILEPREFIX); if (attachFileSmall.exists()) {
                * FileUtils.forceDelete(attachFileSmall); } } }
                */
            if (Constant.POST_STORAGE_MODE == 1) {
                this.getForumUploadFile().delDetailFile(forum);
            }
            this.getForumUploadFile().delUploadFile(forum);
            this.getForumDAO().removeForum(forum);
        } catch (Exception ex) {
            logger.error(ex);
            throw new BbscsException(ex);
        }
    }

⌨️ 快捷键说明

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