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

📄 threadwebhandler.java

📁 java servlet著名论坛源代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:

        // user must have been authenticated before he can edit thread status
        permission.ensureIsAuthenticated();

        // primary key column(s)
        int threadID = ParamUtil.getParameterInt(request, "thread");

        // now, check the permission
        ThreadBean threadBean = DAOFactory.getThreadDAO().getBean(threadID);
        int forumID = threadBean.getForumID();

        ForumCache.getInstance().getBean(forumID).ensureNotDisabledForum();

        permission.ensureCanModerateThread(forumID);

        // now check the password
        MyUtil.ensureCorrectCurrentPassword(request);

        int threadStatus = ParamUtil.getParameterInt(request, "ThreadStatus");

        ThreadBean.validateThreadStatus(threadStatus);

        // now if change from Disable to Enable, update the lastpostdate so
        // that the Watch will see this thread as a new thread
        if ((threadBean.getThreadStatus() == ThreadBean.THREAD_STATUS_DISABLED) &&
            (threadStatus != ThreadBean.THREAD_STATUS_DISABLED)) {
            Timestamp now = DateUtil.getCurrentGMTTimestamp();
            DAOFactory.getThreadDAO().updateLastPostDate(threadID, now);
        }

        DAOFactory.getThreadDAO().update_ThreadStatus(threadID, threadStatus);
        StatisticsUtil.updateForumStatistics(forumID);
        //@todo: should update other info ???

        request.setAttribute("ThreadID", String.valueOf(threadID));
        request.setAttribute("ForumID", String.valueOf(forumID));
    }

    void prepareList_limit(HttpServletRequest request)
        throws BadInputException, ObjectNotFoundException, DatabaseException,
        AssertionException, AuthenticationException {

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();

        int forumID = ParamUtil.getParameterInt(request, "forum");

        // make sure there is the forum
        // will throw an BadInputException if there is not this forum
        ForumBean forumBean = ForumCache.getInstance().getBean(forumID);

        forumBean.ensureNotDisabledForum();

        // make sure user can read post in this forum
        permission.ensureCanReadPost(forumID);

        // for sort and order stuff
        String sort  = ParamUtil.getParameter(request, "sort");
        String order = ParamUtil.getParameter(request, "order");
        if (sort.length() == 0) sort = "ThreadLastPostDate";
        if (order.length()== 0) order = "DESC";

        int postsPerPage = onlineUser.getPostsPerPage();
        int offset = 0;
        try {
            offset = ParamUtil.getParameterInt(request, "offset");
        } catch (BadInputException e) {
            // do nothing
        }

        int totalThreads = DAOFactory.getThreadDAO().getNumberOfEnableBeans_inForum(forumID);
        if (offset > totalThreads) {
            throw new BadInputException("The offset is not allowed to be greater than total rows.");
        }

        Collection threadBeans = DAOFactory.getThreadDAO().getEnableBeans_inForum_withSortSupport_limit(forumID, offset, postsPerPage, sort, order);

        // the correct value is the enable posts - disable threads, so we could get directly from the ForumBean
        //int totalPosts = DAOFactory.getPostDAO().getNumberOfEnablePosts_inForum(forumID);
        int totalPosts = forumBean.getForumPostCount();

        int pendingThreadCount = 0;
        int threadsWithPendingPostsCount = 0;
        if (permission.canModerateThread(forumID)) {
            pendingThreadCount = DAOFactory.getThreadDAO().getNumberOfDisableBeans_inForum(forumID);
            threadsWithPendingPostsCount = DAOFactory.getThreadDAO().getNumberOfEnableThreadsWithPendingPosts_inForum(forumID);
        }

        request.setAttribute("ThreadBeans", threadBeans);
        request.setAttribute("TotalThreads", new Integer(totalThreads));
        request.setAttribute("TotalPosts", new Integer(totalPosts));
        request.setAttribute("PendingThreadCount", new Integer(pendingThreadCount));
        request.setAttribute("ThreadsWithPendingPostsCount", new Integer(threadsWithPendingPostsCount));
    }

    public void prepareListRecentThreads_limit(HttpServletRequest request)
        throws DatabaseException, AssertionException, BadInputException,
        AuthenticationException, ObjectNotFoundException, DatabaseException {

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();

        // for sort and order stuff
        String sort  = ParamUtil.getParameter(request, "sort");
        String order = ParamUtil.getParameter(request, "order");
        if (sort.length() == 0) sort = "ThreadLastPostDate";
        if (order.length()== 0) order = "DESC";

        int postsPerPage = onlineUser.getPostsPerPage();
        int offset = 0;
        try {
            offset = ParamUtil.getParameterInt(request, "offset");
        } catch (BadInputException e) {
            // do nothing
        }

        int totalThreads = DAOFactory.getThreadDAO().getNumberOfEnableBeans();
        if (offset > totalThreads) {
            throw new BadInputException("The offset is not allowed to be greater than total rows.");
        }

        Collection threadBeans = DAOFactory.getThreadDAO().getEnableBeans_withSortSupport_limit(offset, postsPerPage, sort, order);

        // now remove thread that current user does not have permission
        for (Iterator iterator = threadBeans.iterator(); iterator.hasNext(); ) {
            ThreadBean threadBean = (ThreadBean)iterator.next();
            int currentForumID = threadBean.getForumID();
            if (permission.canReadPost(currentForumID) == false) {
                iterator.remove();
            } else if (ForumCache.getInstance().getBean(currentForumID).getForumStatus() == ForumBean.FORUM_STATUS_DISABLED) {
                iterator.remove();
            }
        }

        request.setAttribute("ThreadBeans", threadBeans);
        request.setAttribute("TotalThreads", new Integer(totalThreads));
    }

    void prepareListDisabledThreads_inForum_limit(HttpServletRequest request)
        throws DatabaseException, AssertionException, BadInputException,
        AuthenticationException, ObjectNotFoundException, DatabaseException {

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();

        // user must have been authenticated before he can view pending/disabled threads
        permission.ensureIsAuthenticated();

        int forumID = ParamUtil.getParameterInt(request, "forum");

        // make sure there is the forum
        // will throw an BadInputException if there is not this forum
        ForumCache.getInstance().getBean(forumID);

        ForumCache.getInstance().getBean(forumID).ensureNotDisabledForum();

        permission.ensureCanModerateThread(forumID);

        // for sort and order stuff
        String sort  = ParamUtil.getParameter(request, "sort");
        String order = ParamUtil.getParameter(request, "order");
        if (sort.length() == 0) sort = "ThreadLastPostDate";
        if (order.length()== 0) order = "DESC";

        int postsPerPage = onlineUser.getPostsPerPage();
        int offset = 0;
        try {
            offset = ParamUtil.getParameterInt(request, "offset");
        } catch (BadInputException e) {
            // do nothing
        }

        int totalThreads = DAOFactory.getThreadDAO().getNumberOfDisableBeans_inForum(forumID);
        if (offset > totalThreads) {
            throw new BadInputException("The offset is not allowed to be greater than total rows.");
        }

        Collection threadBeans = DAOFactory.getThreadDAO().getDisableBeans_inForum_withSortSupport_limit(forumID, offset, postsPerPage, sort, order);

        request.setAttribute("ThreadBeans", threadBeans);
        request.setAttribute("TotalThreads", new Integer(totalThreads));
    }

    void prepareListRecentDisabledThreads_limit(HttpServletRequest request)
        throws DatabaseException, AssertionException, BadInputException, AuthenticationException, ObjectNotFoundException {

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();

        // user must have been authenticated before he can view pending/disabled threads
        permission.ensureIsAuthenticated();
        permission.ensureCanModerateThreadInAnyForum();

        // for sort and order stuff
        String sort  = ParamUtil.getParameter(request, "sort");
        String order = ParamUtil.getParameter(request, "order");
        if (sort.length() == 0) sort = "ThreadLastPostDate";
        if (order.length()== 0) order = "DESC";

        int postsPerPage = onlineUser.getPostsPerPage();
        int offset = 0;
        try {
            offset = ParamUtil.getParameterInt(request, "offset");
        } catch (BadInputException e) {
            // do nothing
        }

        int totalThreads = DAOFactory.getThreadDAO().getNumberOfDisableBeans();
        if (offset > totalThreads) {
            throw new BadInputException("The offset is not allowed to be greater than total rows.");
        }

        Collection threadBeans = DAOFactory.getThreadDAO().getDisableBeans_withSortSupport_limit(offset, postsPerPage, sort, order);

        // now remove thread that current user does not have permission
        for (Iterator iterator = threadBeans.iterator(); iterator.hasNext(); ) {
            ThreadBean threadBean = (ThreadBean)iterator.next();
            int currentForumID = threadBean.getForumID();
            if (permission.canModerateThread(currentForumID) == false) {
                iterator.remove();
            } else if (ForumCache.getInstance().getBean(currentForumID).getForumStatus() == ForumBean.FORUM_STATUS_DISABLED) {
                iterator.remove();
            }
        }

        request.setAttribute("ThreadBeans", threadBeans);
        request.setAttribute("TotalThreads", new Integer(totalThreads));
    }

    void prepareListDisabledThreads_limit_xml(HttpServletRequest request)
        throws DatabaseException, AssertionException, BadInputException, AuthenticationException, ObjectNotFoundException {

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();

        // user must have been authenticated before he can view pending/disabled threads
        permission.ensureIsAuthenticated();
        permission.ensureCanModerateThreadInAnyForum();

        Collection pendingThreadBeans = DAOFactory.getThreadDAO().getDisableBeans_withSortSupport_limit(0, 10000, "ThreadLastPostDate", "DESC");
        // now remove thread that current user does not have permission
        for (Iterator iterator = pendingThreadBeans.iterator(); iterator.hasNext(); ) {
            ThreadBean threadBean = (ThreadBean)iterator.next();
            if (permission.canModerateThread(threadBean.getForumID()) == false) {
                iterator.remove();
            }
        }

        Collection threadWithPendingPostsBeans = DAOFactory.getThreadDAO().getEnableThreadsWithPendingPosts_withSortSupport_limit(0, 10000, "ForumID", "DESC");
        for (Iterator iterator = threadWithPendingPostsBeans.iterator(); iterator.hasNext(); ) {
            ThreadBean threadBean = (ThreadBean)iterator.next();
            if (permission.canModerateThread(threadBean.getForumID()) == false) {
                iterator.remove();
            } else {
                Collection pendingPosts = DAOFactory.getPostDAO().getDisablePosts_inThread_limit(threadBean.getThreadID(), 0, 10000);
                threadBean.setPendingPosts(pendingPosts);
            }
        }

        request.setAttribute("PendingThreadBeans", pendingThreadBeans);
        request.setAttribute("ThreadWithPendingPostsBeans", threadWithPendingPostsBeans);
    }

    void prepareListRecentEnableThreadsWithPendingPosts_limit(HttpServletRequest request)
        throws DatabaseException, AssertionException, BadInputException, AuthenticationException, ObjectNotFoundException {

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();

        // user must have been authenticated before he can view enable threads with pending posts
        permission.ensureIsAuthenticated();
        permission.ensureCanModerateThreadInAnyForum();

        // for sort and order stuff
        String sort  = ParamUtil.getParameter(request, "sort");
        String order = ParamUtil.getParameter(request, "order");
        if (sort.length() == 0) sort = "ThreadLastPostDate";
        if (order.length()== 0) order = "DESC";

        int postsPerPage = onlineUser.getPostsPerPage();
        int offset = 0;
        try {
            offset = ParamUtil.getParameterInt(request, "offset");
        } catch (BadInputException e) {
            // do nothing
        }

        int totalThreads = DAOFactory.getThreadDAO().getNumberOfEnableThreadsWithPendingPosts();
        if (offset > totalThreads) {
            throw new BadInputException("The offset is not allowed to be greater than total rows.");
        }

        Collection threadBeans = DAOFactory.getThreadDAO().getEnableThreadsWithPendingPosts_withSortSupport_limit(offset, postsPerPage, sort, order);

        // now remove thread that current user does not have permission
        for (Iterator iterator = threadBeans.iterator(); iterator.hasNext(); ) {
            ThreadBean threadBean = (ThreadBean)iterator.next();
            int currentForumID = threadBean.getForumID();
            if (permission.canModerateThread(currentForumID) == false) {
                iterator.remove();
            } else if (ForumCache.getInstance().getBean(currentForumID).getForumStatus() == ForumBean.FORUM_STATUS_DISABLED) {
                iterator.remove();
            }
        }

        request.setAttribute("ThreadBeans", threadBeans);
        request.setAttribute("TotalThreads", new Integer(totalThreads));
    }

    void prepareListEnableThreadsWithPendingPosts_inForum_limit(HttpServletRequest request)
        throws DatabaseException, AssertionException, BadInputException, AuthenticationException, ObjectNotFoundException {

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();

⌨️ 快捷键说明

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