forumserviceimp.java
来自「一个jsp写的bbs」· Java 代码 · 共 1,964 行 · 第 1/5 页
JAVA
1,964 行
return this.getForumDAO().getForumNumRcc(bid, -1, click, -1);
}
/**
*
* @param bids List
* @param click int
* @param pages Pages
* @return PageList
*/
public PageList findForumsClick(List bids, int click, Pages pages) {
PageList pl = new PageList();
if (pages.getTotalNum() == -1) {
pages.setTotalNum(this.getForumNumClick(bids, click));
}
pages.executeCount();
List l = this.getForumDAO().findForumsRcc(bids, -1, click, -1, "postTime", Constant.ORDER_DESC,
pages.getSpage(), pages.getPerPageNum());
pl.setObjectList(l);
pl.setPages(pages);
return pl;
}
/**
*
* @param bid long
* @param click int
* @param pages Pages
* @return PageList
*/
public PageList findForumsClick(long bid, int click, Pages pages) {
PageList pl = new PageList();
if (pages.getTotalNum() == -1) {
pages.setTotalNum(this.getForumNumClick(bid, click));
}
pages.executeCount();
List l = this.getForumDAO().findForumsRcc(bid, -1, click, -1, "postTime", Constant.ORDER_DESC,
pages.getSpage(), pages.getPerPageNum());
pl.setObjectList(l);
pl.setPages(pages);
return pl;
}
/**
*
* @param bids List
* @param commen int
* @return int
*/
public int getForumNumCommend(List bids, long commen) {
return this.getForumDAO().getForumNumRcc(bids, -1, -1, commen);
}
/**
*
* @param bid long
* @param commen int
* @return int
*/
public int getForumNumCommend(long bid, long commen) {
return this.getForumDAO().getForumNumRcc(bid, -1, -1, commen);
}
public int getForumNumCommend(long commend) {
return this.getForumDAO().getForumNumCommend(commend);
}
/**
*
* @param bids List
* @param commen int
* @param pages Pages
* @return PageList
*/
public PageList findForumsCommend(List bids, long commen, Pages pages) {
PageList pl = new PageList();
if (pages.getTotalNum() == -1) {
pages.setTotalNum(this.getForumNumCommend(bids, commen));
}
pages.executeCount();
List l = this.getForumDAO().findForumsRcc(bids, -1, -1, commen, "postTime", Constant.ORDER_DESC,
pages.getSpage(), pages.getPerPageNum());
pl.setObjectList(l);
pl.setPages(pages);
return pl;
}
/**
*
* @param bid long
* @param commen int
* @param pages Pages
* @return PageList
*/
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().findForumsRcc(bid, -1, -1, commen, "postTime", Constant.ORDER_DESC,
pages.getSpage(), pages.getPerPageNum());
pl.setObjectList(l);
pl.setPages(pages);
return pl;
}
public PageList findForumsCommend(long commend, Pages pages) {
PageList pl = new PageList();
if (pages.getTotalNum() == -1) {
pages.setTotalNum(this.getForumNumCommend(commend));
}
pages.executeCount();
//System.out.println(pages.getSpage());
List l = this.getForumDAO().findForumsCommend(commend, "postTime", Constant.ORDER_DESC, pages.getSpage(),
pages.getPerPageNum());
pl.setObjectList(l);
pl.setPages(pages);
return pl;
}
public boolean isReedUser(long bid, String mainID, String userID) {
int num = this.getForumDAO().getForumNumInMainIDByUserID(bid, mainID, userID, 0, 0, 0);
if (num > 0) {
return true;
}
else {
return false;
}
/**
List l = this.getForumDAO().findForumsInMainIDByUserID(bid, mainID, userID, 0, "postTime",
Constant.ORDER_ASC, 0, 1);
if (l == null || l.isEmpty()) {
return false;
}
else {
return true;
}*/
}
public void delaPost(Forum forum, Board board, UserInfo ui) throws BbscsException {
try {
forum = this.getForumDAO().saveForum(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()) {
List l = this.getForumDAO().findForumsTopic(mainForum.getBoardID(), mainForum.getId(), 0,
0, "postTime", Constant.ORDER_DESC, 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().saveForum(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.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.getScriptForumCache().remove(Constant.FORUM_NEW_CACHE_NAME);
}
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
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().saveForum(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()) { //如果删除的是最后一个回复帖,要修正主帖表中最后回复人和时间
List l = this.getForumDAO().findForumsTopic(mainForum.getBoardID(), mainForum.getId(), 0,
0, "postTime", Constant.ORDER_DESC, 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().saveForum(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.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.getScriptForumCache().remove(Constant.FORUM_NEW_CACHE_NAME);
}
}
else { //如果是尚未审核
forum = this.getForumDAO().saveForum(forum); //保存标注删除,包括删除人、时间等信息
}
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
}
public void savePostElite(Forum forum, UserInfo ui) throws BbscsException {
try {
forum = this.getForumDAO().saveForum(forum);
ui.setArticleEliteNum(ui.getArticleEliteNum() + 1);
ui.setLiterary(ui.getLiterary() + 3);
ui = this.getUserInfoDAO().saveUserInfo(ui);
this.getUserInfoFileIO().writeUserFile(ui);
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
public void saveForums(List forums) throws BbscsException {
for (int i = 0; i < forums.size(); i++) {
Forum forum = (Forum) forums.get(i);
try {
this.getForumDAO().saveForum(forum);
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
}
public void saveForumsEliteDel(List forums) throws BbscsException {
for (int i = 0; i < forums.size(); i++) {
Forum forum = (Forum) forums.get(i);
try {
forum = this.getForumDAO().saveForum(forum);
UserInfo ui = this.getUserInfoDAO().findUserInfoById(forum.getUserID());
if (ui.getArticleEliteNum() >= 1) {
ui.setArticleEliteNum(ui.getArticleEliteNum() - 1);
}
else {
ui.setArticleEliteNum(0);
}
ui.setLiterary(ui.getLiterary() - 5);
ui = this.getUserInfoDAO().saveUserInfo(ui);
this.getUserInfoFileIO().writeUserFile(ui);
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
}
public Forum createVoteForum(Forum forum, Board board, Vote vote, UserInfo ui) throws BbscsException {
try {
String detail = forum.getDetail();
forum.setDetail("");
String[] details = detail.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().saveForum(forum);
forum.setMainID(forum.getId());
forum = this.getForumDAO().saveForum(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.setUserEmail(ui.getEmail());
subs.setUserID(ui.getId());
subs.setUserName(ui.getUserName());
this.getSubscibeDAO().saveSubscibe(subs);
}
}
//----------------------
this.getScriptForumCache().remove(Constant.FORUM_NEW_CACHE_NAME);
//----------------------
return forum;
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
/**
* 搂主帖子数
* @param userID String
* @param mainID String
* @return int
*/
public int getForumOwnerNum(long bid, String userID, String mainID) {
return this.getForumDAO().getForumNumInMainIDByUserID(bid, mainID, userID, -1, 0, 0);
}
/**
* 只看楼主
* @param userID String
* @param mainID String
* @param pages Pages
* @return PageList
*/
public PageList findForumsOwner(long bid, String userID, String mainID, Pages pages) {
PageList pl = new PageList();
if (pages.getTotalNum() == -1) {
pages.setTotalNum(this.getForumOwnerNum(bid, userID, mainID));
}
//System.out.println(pages.getTotalNum());
pages.executeCount();
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?