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

📄 replydao.java

📁 EasyJForum 是一个基于 Java 技术的免费社区论坛软件系统
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                        fromUser = userinfo.userID;
                        toUser = userIDs[0];
                        userinfo.credits = userinfo.credits - credits;
                    }
                    else
                    {
                        fromUser = userIDs[0];
                        toUser = userinfo.userID;
                        userinfo.credits = userinfo.credits + credits;
                    }
                 
                    paramValues.clear();
                    paramValues.add(isBest);
                    paramValues.add(topicIDs[0]);
                    this.execUpdateSql(adapter.Topic_SetIsSolved, paramValues, conn);
                    
                    paramValues.clear();
                    paramValues.add(credits);
                    paramValues.add(toUser);
                    this.execUpdateSql(adapter.User_IncCredits, paramValues, conn);
    
                    paramValues.clear();
                    paramValues.add(credits);
                    paramValues.add(fromUser);
                    this.execUpdateSql(adapter.User_DecCredits, paramValues, conn);
                    
                    ActionLogDAO.getInstance().addCreditsLog(
                            fromUser, toUser, credits, action, conn);
                }
                
                boolean hasValidUser = false;
                if (userIDs[0] != null && userIDs[0].length() > 0)
                    hasValidUser = true;

                if (sendsms != null && sendsms.equals("yes") && hasValidUser)
                {
                    if (reason.length() > 0)
                        reason = ", 原因是: " + reason;
                    String[] messages = new String[1];
                    messages[0] = new StringBuilder("您在主题\"").append(topicTitles[0])
                                      .append("\"发表的回复已被主题作者").append(action)
                                      .append(reason).append("。").toString();
                    
                    String subject = "[系统消息]您发表的回复已被主题作者" + action;
                    String fromUser = userinfo.userID;
                    ShortMsgDAO.getInstance().addShortMsgs(fromUser, userIDs, subject, messages, conn);
                }
            }
            conn.commit();
            return "OK";
        }
        catch(Exception e)
        {
            conn.rollback();
            throw e;
        }
        finally
        {
            dbManager.closePStatement(pstmtUpdate);
            dbManager.closeConnection(conn);
        }
    }
    
    /**
     * Get a reply info
     * @param 
     *      aTopic - A topic object
     *      replyID - Reply ID
     * @return if has attachments
     * @throws SQLException
     * @since 1.0
     */
    public boolean getReply(TopicVO aTopic, String replyID, 
                            Connection conn) throws SQLException
    {
        boolean hasAttach = false;
        String querySql = adapter.Reply_Select;
        
        PreparedStatement pstmtQuery = null;
        ResultSet rs = null;
        try
        {
            pstmtQuery = conn.prepareStatement(querySql);
            pstmtQuery.setString(1, replyID);
            rs = pstmtQuery.executeQuery();
            
            if(rs.next())
            {
                PostVO aPost = new PostVO();
                aPost.topicID = aTopic.topicID;
                aPost.replyID = rs.getString("replyID");
                aPost.title = rs.getString("title");
                aPost.content = rs.getString("content");
                aPost.isHidePost = rs.getString("isHidePost").charAt(0);
                aPost.attaches = rs.getInt("attaches");
                aPost.u_userID = rs.getString("userID");

                aTopic.postList.add(aPost);
                    
                if (aPost.attaches > 0)
                    hasAttach = true;
            }
        }
        finally
        {
            dbManager.closeResultSet(rs);
            dbManager.closePStatement(pstmtQuery);
        }
        return hasAttach;
    }
    
    /**
     * Get reply page no in a topic
     * @param 
     *      topicID - topic ID
     *      replyID - reply ID
     * @return page no
     * @throws SQLException
     * @since 1.0
     */
    public int getPageNo(String topicID, String replyID, int pageRows) throws SQLException
    {
        Connection conn = null;
        try
        {
            conn = dbManager.getConnection();
            
            ArrayList<Object> paramValues = new ArrayList<Object>();
            paramValues.add(topicID);
            paramValues.add(replyID);
                
            int seqno = 
                this.execSelectCountSql(adapter.Reply_GetSeqno, paramValues, conn);
            return (seqno / pageRows + 1);
        }
        finally
        {
            dbManager.closeConnection(conn);
        }
    }
    
    /**
     * Get reply list of a topic
     * @param 
     *      aTopic - A topic object
     *      pageNo - page number 
     *      pageRows - page rows per page
     * @return if has attachments
     * @throws SQLException
     * @since 1.0
     */
    public boolean getReplyList(TopicVO aTopic, int pageNo, int pageRows, 
                                Connection conn) throws SQLException
    {
        boolean hasAttach = false;
        String querySql = adapter.Reply_GetList;
        String countSql = adapter.Reply_GetCount;
        
        int totalCount = 0;
        int pageCount = 0;
        PreparedStatement pstmtQuery = null;
        ResultSet rs = null;
        try
        {
            pstmtQuery = conn.prepareStatement(countSql);
            pstmtQuery.setString(1, aTopic.topicID);
            rs = pstmtQuery.executeQuery();
            if(rs.next())
            {
                totalCount = rs.getInt(1);
            }
            
            if (totalCount > 0)
            {
                dbManager.closeResultSet(rs);
                dbManager.closePStatement(pstmtQuery);
             
                pageCount = (totalCount - 1) / pageRows + 1;
                if (pageNo == 999)
                    aTopic.pageNo = pageCount;
                
                querySql = adapter.getPageQuerySql(
                            new StringBuilder(querySql),
                            aTopic.pageNo, pageRows, totalCount);
            
                pstmtQuery = conn.prepareStatement(querySql);
                pstmtQuery.setString(1, aTopic.topicID);
                rs = pstmtQuery.executeQuery();
            
                PostVO aPost = null;
                String tmpStr = null;
                
                while(rs.next())
                {
                    aPost = new PostVO();
                    aPost.topicID = aTopic.topicID;
                    aPost.replyID = rs.getString(1);
                    aPost.title = rs.getString(2);
                    aPost.content = rs.getString(3);
                    aPost.isHidePost = rs.getString(4).charAt(0);
                    aPost.attaches = rs.getInt(5);
                    aPost.isBest = rs.getString(6).charAt(0);
                    aPost.state = rs.getString(7).charAt(0);
                    aPost.createTime = AppUtils.formatSQLTimeStr(rs.getTimestamp(8));
                    aPost.u_userID = rs.getString(9);
                    aPost.u_nickname = rs.getString(10);
                    aPost.u_avatar = rs.getString(11);
                    aPost.u_posts = rs.getInt(12);
                    aPost.u_credits = rs.getInt(13);

                    tmpStr = rs.getString(14);
                    aPost.u_groupID = tmpStr == null ? '1' : tmpStr.charAt(0);

                    aTopic.postList.add(aPost);
                    
                    if (aPost.attaches > 0)
                        hasAttach = true;
                }
            }
        }
        finally
        {
            dbManager.closeResultSet(rs);
            dbManager.closePStatement(pstmtQuery);
        }
        // Get result page code
        if (totalCount > 0)
        {
            if (pageCount <= 1) return hasAttach;
            aTopic.pageHTML = 
                PageUtils.getPageHTMLStr(totalCount, aTopic.pageNo, pageRows, 0);
        }
        return hasAttach;
    }

    /**
     * Get reply list of an user
     * @param 
     *      userID - user ID
     *      pageNo - page number 
     *      pageRows - page rows per page
     * @return Reply list
     * @throws SQLException
     * @since 1.0
     */
    public Object[] getUserReplies(String userID, boolean isForSpace, 
                                   int pageNo, int pageRows) throws SQLException
    {
        Object[] result = new Object[3];
        String querySql = adapter.Reply_GetListByUser;
        String countSql = adapter.Reply_GetCountByUser;
        
        int totalCount = 0;
        Connection conn = null;
        PreparedStatement pstmtQuery = null;
        ResultSet rs = null;
        try
        {
            conn = dbManager.getConnection();
            if (isForSpace)
            {
                result[2] = UserDAO.getInstance().getUserVO(userID, conn);
                querySql = querySql + " and b.state <> 'R'";
                countSql = countSql + " and b.state <> 'R'";
            }
            
            pstmtQuery = conn.prepareStatement(countSql);
            pstmtQuery.setString(1, userID);
            rs = pstmtQuery.executeQuery();
            if(rs.next())
            {
                totalCount = rs.getInt(1);
            }
            
            if (totalCount > 0)
            {
                querySql = adapter.getPageQuerySql(
                            new StringBuilder(querySql).append(" order by b.createTime DESC"),
                            pageNo, pageRows, totalCount);
            
                ArrayList<Object> paramValues = new ArrayList<Object>();
                paramValues.add(userID);
                ArrayList<HashMap> replies = 
                    this.execSelectSql(querySql, paramValues, conn);
                
                result[1] = replies;
            }
        }
        finally
        {
            dbManager.closeResultSet(rs);
            dbManager.closePStatement(pstmtQuery);
            dbManager.closeConnection(conn);
        }
        // Get result page code
        if (totalCount > 0)
        {
            int pageCount = (totalCount - 1) / pageRows + 1;
            if (pageCount <= 1) return result;
            result[0] = PageUtils.getPageHTMLStr(totalCount, pageNo, pageRows, 0);
        }        
        return result;
    }
    
    public static class PostVO
    {
        public String replyID = null;
        public String topicID = null;
        public String title = null;
        public String content = null;
        public int attaches = 0;
        public char isHidePost = 'F';
        public char isBest = 'F';
        public char state = 'N';
        public String createTime = null;
        public String u_userID = null;
        public String u_nickname = null;
        public String u_avatar = null;
        public int u_posts = 0;
        public int u_credits = 0;
        public char u_groupID = '1';
    }    
}

⌨️ 快捷键说明

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