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