📄 replydao.java
字号:
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 + -