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

📄 forumserviceimp.java

📁 天乙虚拟社区8.05版本。只支持Mysql
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
    public void delPosts(List forums, Board board) throws BbscsException {
        for (int i = 0; i < forums.size(); i++) {
            try {
                Forum forum = (Forum) forums.get(i);
                if (forum.getAuditing() == 0) { // 如果已近是通过审核的帖子
                    forum = this.getForumDAO().saveOrUpdateForum(forum); // 保存标注删除,包括删除人、时间等信息
                    if (forum.getIsNew() != 1) { // 如果不是主帖
                        Forum mainForum = this.getForumDAO().findForumByID(forum.getMainID(), forum.getBoardID()); // 取主帖
                        if (mainForum != null) {
                            mainForum.setReNum(mainForum.getReNum() - 1); // 减少主帖回复数
                            if (mainForum.getLastTime() == forum.getPostTime()) { // 如果删除的是最后一个回复帖,要修正主帖表中最后回复人和时间
                                OrderObj[] oo = {new OrderObj("postTime", Constant.ORDER_DESC)};
                                List l = this.getForumDAO().findForumsTopic(mainForum.getBoardID(), mainForum.getId(),
                                        0, 0, oo, 0, 1);
                                if (l != null && !l.isEmpty()) {
                                    Forum lastF = (Forum) l.get(0);
                                    mainForum.setLastPostNickName(lastF.getNickName());
                                    mainForum.setLastPostTitle(lastF.getTitle());
                                    mainForum.setLastPostUserName(lastF.getUserName());
                                    mainForum.setLastTime(lastF.getPostTime());
                                }
                            }
                            this.getForumDAO().saveOrUpdateForum(mainForum); // 保存主帖
                        }
                    }
                    UserInfo ui = this.getUserInfoDAO().findUserInfoById(forum.getUserID());
                    if (board.getAddUserPostNum() == 1 && ui != null) { // 版区为增加用户发帖数量
                        if (ui.getArticleNum() > 0) {
                            ui.setArticleNum(ui.getArticleNum() - 1); // 减少用户发帖数
                            ui = this.getUserInfoDAO().saveUserInfo(ui);
                            this.getUserInfoFileIO().writeUserFile(ui);
                        }

                        if (forum.getIsNew() == 1) {
                            ui.setExperience(ui.getExperience() - 2); // 主帖,扣除发帖人2点经验值
                        } else {
                            ui.setExperience(ui.getExperience() - 1); // 回帖,扣除发帖人1点经验值
                        }
                    }
                    if (forum.getElite() != 0 || forum.getCommend() != 0) { // 如果是精华或推荐
                        if (forum.getElite() != 0) {
                            if (ui.getArticleEliteNum() >= 1) {
                                ui.setArticleEliteNum(ui.getArticleEliteNum() - 1);
                            } else {
                                ui.setArticleEliteNum(0);
                            }
                            ui.setLiterary(ui.getLiterary() - 3);
                        }
                        if (forum.getCommend() != 0) {
                            ui.setLiterary(ui.getLiterary() - 1);
                            this.getCommendDAO().removeCommend(forum.getId());
                        }

                        ui = this.getUserInfoDAO().saveUserInfo(ui);
                        this.getUserInfoFileIO().writeUserFile(ui);
                    }

                    if (forum.getIsNew() == 1) { // 如果是主帖,尝试从新帖Cache中清除
                        this.getSysListObjCache().remove(Constant.FORUM_NEW_CACHE_NAME);
                    }
                } else { // 如果是尚未审核
                    forum = this.getForumDAO().saveOrUpdateForum(forum); // 保存标注删除,包括删除人、时间等信息
                }
            } catch (Exception ex) {
                logger.error(ex);
                throw new BbscsException(ex);
            }
        }
    }

    public void delPostsReal(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 ((System.currentTimeMillis() - forum.getDelTime()) > 7 * 24 * 3600 * 1000) {
                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 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); } } }
                          */
                    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);
                }
            }
        }
    }

    public void delWastePost(long bid) throws BbscsException {
        long atime = System.currentTimeMillis() - 7 * 24 * 3600 * 1000;
        List forums = this.getForumDAO().findForumsRealDelAll(bid, atime);
        for (int i = 0; i < forums.size(); i++) {
            Forum forum = (Forum) forums.get(i);
            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 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); } } }
                     */
                this.getForumUploadFile().delUploadFile(forum);
                this.getForumDAO().removeForum(forum);
            } catch (Exception ex) {
                logger.error(ex);
                throw new BbscsException(ex);
            }
        }
    }

    public void delaPost(Forum forum, Board board, UserInfo ui) throws BbscsException {
        try {
            forum = this.getForumDAO().saveOrUpdateForum(forum);
            if (forum.getIsNew() != 1) {
                Forum mainForum = this.getForumDAO().findForumByID(forum.getMainID(), forum.getBoardID());
                if (mainForum != null) {
                    mainForum.setReNum(mainForum.getReNum() - 1);
                    if (mainForum.getLastTime() == forum.getPostTime()) {
                        OrderObj[] oo = {new OrderObj("postTime", Constant.ORDER_DESC)};
                        List l = this.getForumDAO().findForumsTopic(mainForum.getBoardID(), mainForum.getId(), 0, 0,
                                oo, 0, 1);

                        if (l != null && !l.isEmpty()) {
                            Forum lastF = (Forum) l.get(0);
                            mainForum.setLastPostNickName(lastF.getNickName());
                            mainForum.setLastPostTitle(lastF.getTitle());
                            mainForum.setLastPostUserName(lastF.getUserName());
                            mainForum.setLastTime(lastF.getPostTime());
                        }
                    }
                    this.getForumDAO().saveOrUpdateForum(mainForum);
                }
            }
            if (board.getAddUserPostNum() == 1 && ui != null) { // 版区为增加用户发帖数量
                if (ui.getArticleNum() > 0) {
                    ui.setArticleNum(ui.getArticleNum() - 1);
                    ui = this.getUserInfoDAO().saveUserInfo(ui);
                    this.getUserInfoFileIO().writeUserFile(ui);
                }

                if (forum.getIsNew() == 1) {
                    ui.setExperience(ui.getExperience() - 2); // 主帖,扣除发帖人2点经验值
                } else {
                    ui.setExperience(ui.getExperience() - 1); // 回帖,扣除发帖人1点经验值
                }
            }
            if (forum.getElite() != 0 || forum.getCommend() != 0) {
                if (forum.getElite() != 0) {
                    if (ui.getArticleEliteNum() >= 1) {
                        ui.setArticleEliteNum(ui.getArticleEliteNum() - 1);
                    } else {
                        ui.setArticleEliteNum(0);
                    }
                    ui.setLiterary(ui.getLiterary() - 3);
                }
                if (forum.getCommend() != 0) {
                    ui.setLiterary(ui.getLiterary() - 1);
                    this.getCommendDAO().removeCommend(forum.getId());
                }

                ui = this.getUserInfoDAO().saveUserInfo(ui);
                this.getUserInfoFileIO().writeUserFile(ui);
            }
            if (forum.getIsNew() == 1) {
                this.getSysListObjCache().remove(Constant.FORUM_NEW_CACHE_NAME);
            }
        } catch (Exception ex) {
            logger.error(ex);
            throw new BbscsException(ex);
        }

    }

    public Forum editForum(Forum forum) throws BbscsException {

        return null;
    }

    public ForumBuy findForumBuyByPostIdFromId(String postId, String fromId) {
        return this.getForumBuyDAO().findForumBuyByPostIdFromId(postId, fromId);
    }

    public Forum findForumByID(String id) {
        return this.getForumDAO().findForumByID(id);
    }

    public Forum findForumByID(String id, long bid) {
        return this.getForumDAO().findForumByID(id, bid);
    }

    public List findForums(long bid, int isNew, int delSign, int auditing, OrderObj[] oo) {
        return this.getForumDAO().findForums(bid, isNew, delSign, auditing, oo);
    }

    public PageList findForums(long bid, int isNew, int delSign, int auditing, int auditingAttachFile, OrderObj[] oo,
                               Pages pages) {
        PageList pl = new PageList();
        if (pages.getTotalNum() == -1) {
            pages.setTotalNum(this.getForumDAO().getForumNum(bid, isNew, delSign, auditing, auditingAttachFile));
        }
        pages.executeCount();

        List l = this.getForumDAO().findForums(bid, isNew, delSign, auditing, auditingAttachFile, oo, pages.getSpage(),
                pages.getPerPageNum());
        pl.setObjectList(l);
        pl.setPages(pages);
        return pl;
    }

    public PageList findForumsAll(long bid, Pages pages) {
        OrderObj oo0 = new OrderObj("isTop", Constant.ORDER_DESC);
        OrderObj oo1 = new OrderObj("lastTime", Constant.ORDER_DESC);
        OrderObj[] oo = {oo0, oo1};
        return this.findForums(bid, -1, 0, 0, -1, oo, pages);
    }

    public PageList findForumsAll(long bid, String tagID, Pages pages) {
        OrderObj oo0 = new OrderObj("isTop", Constant.ORDER_DESC);
        OrderObj oo1 = new OrderObj("lastTime", Constant.ORDER_DESC);
        OrderObj[] oo = {oo0, oo1};
        PageList pl = new PageList();
        if (pages.getTotalNum() == -1) {
            pages.setTotalNum(this.getForumDAO().getForumNum(bid, tagID, -1, 0, 0));
        }

        pages.executeCount();
        List l = this.getForumDAO().findForums(bid, tagID, -1, 0, 0, oo, pages.getSpage(), pages.getPerPageNum());
        pl.setObjectList(l);
        pl.setPages(pages);
        return pl;
    }

    public PageList findForumsAllManage(long bid, Pages pages) {
        OrderObj oo0 = new OrderObj("postTime", Constant.ORDER_DESC);
        OrderObj[] oo = {oo0};
        return this.findForums(bid, -1, 0, 0, -1, oo, pages);
    }

    public List findForumsAllNew(int num) {
        OrderObj[] oo = {new OrderObj("postTime", Constant.ORDER_DESC)};
        return this.getForumDAO().findForums(-1, 1, 0, 0, -1, oo, 0, num);
    }

    public List findForumsAllNewCache(int num) {
        List l = (List) this.getSysListObjCache().get(Constant.FORUM_NEW_CACHE_NAME);
        if (l == null) {
            OrderObj[] oo = {new OrderObj("postTime", Constant.ORDER_DESC)};
            l = this.getForumDAO().findForums(-1, 1, 0, 0, -1, oo, 0, num);
            this.getSysListObjCache().add(Constant.FORUM_NEW_CACHE_NAME, l);
        }
        return l;
    }

    public PageList findForumsAuditing(long bid, Pages pages) {
        OrderObj[] oo = {new OrderObj("postTime", Constant.ORDER_DESC)};
        return this.findForums(bid, -1, 0, 1, -1, oo, pages);
    }

    public PageList findForumsAuditingAttachFile(long bid, Pages pages) {
        OrderObj[] oo = {new OrderObj("postTime", Constant.ORDER_DESC)};
        return this.findForums(bid, -1, 0, -1, 1, oo, pages);
    }

    public List findForumsByIndexStatus(int indexStatus) {
        return this.getForumDAO().findForumsByIndexStatus(indexStatus);
    }

    public PageList findForumsCommend(long bid, long commen, Pages pages) {
        PageList pl = new PageList();
        if (pages.getTotalNum() == -1) {
            pages.setTotalNum(this.getForumNumCommend(bid, commen));
        }
        pages.executeCount();

        List l = this.getForumDAO().findForumsCommend(bid, commen, -1, 0, 0, "postTime", Constant.ORDER_DESC,
                pages.getSpage(), pages.getPerPageNum());
        pl.setObjectList(l);

⌨️ 快捷键说明

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