📄 forumserviceimp.java
字号:
* 删除Forum对象
*
* @param id String
* @param bid long
* @throws BbscsException
* @todo Implement this com.laoer.bbscs.service.ForumService method
*/
public void removeForum(String id, long bid) throws BbscsException {
try {
this.getForumDAO().removeForum(id, bid);
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
/**
* 删除Forum对象
*
* @param id String
* @throws BbscsException
* @todo Implement this com.laoer.bbscs.service.ForumService method
*/
public void removeForum(String id) throws BbscsException {
try {
this.getForumDAO().removeForum(id);
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
/**
* 删除Forum对象
*
* @param forum Forum
* @throws BbscsException
* @todo Implement this com.laoer.bbscs.service.ForumService method
*/
public void removeForum(Forum forum) throws BbscsException {
try {
this.getForumDAO().removeForum(forum);
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
/**
* 发帖
*
* @param forum Forum
* @return Forum
* @throws BbscsException
* @todo Implement this com.laoer.bbscs.service.ForumService method
*/
public Forum createForum(Forum forum) throws BbscsException {
Board board = this.getBoardDAO().getBoardByID(forum.getBoardID());
UserInfo ui = this.getUserInfoDAO().findUserInfoById(forum.getUserID());
return createForum(forum, board, ui, null);
}
public Forum createForum(Forum forum, Board board, UserInfo ui, UploadFile uploadFile) throws
BbscsException {
try {
forum = this.getForumDAO().saveForum(forum);
if (uploadFile != null) {
String fileName = "File_" + forum.getId() + "_" + System.currentTimeMillis() + "." +
FilenameUtils.getExtension(uploadFile.getFileName());
String toFilePath = BBSCSUtil.getUpFilePath(forum.getBoardID(), forum.getPostTime());
this.getForumUploadFile().saveUploadFile(toFilePath + fileName, uploadFile,
this.getSysConfig());
forum.setHaveAttachFile(1);
forum.getAttachFileName().add(fileName);
if (board.getAuditAttach() == 1) {
forum.setAuditingAttachFile(1);
}
}
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());
subs.setUserLocale(ui.getUserLocale());
this.getSubscibeDAO().saveSubscibe(subs);
}
}
return forum;
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
/**
* 回帖
* @param forum Forum
* @param mainForum Forum
* @param board Board
* @param ui UserInfo
* @return Forum
* @throws BbscsException
*/
public Forum createReForum(Forum forum, Forum mainForum, Board board, UserInfo ui,
UploadFile uploadFile, boolean isQuote) throws BbscsException {
try {
if (board.getAuditPost() == 0) { //不需要审核
mainForum.setLastPostNickName(forum.getNickName());
mainForum.setLastPostTitle(forum.getTitle());
mainForum.setLastPostUserName(forum.getUserName());
mainForum.setLastTime(forum.getPostTime());
mainForum.setReNum(mainForum.getReNum() + 1);
if (forum.getParentID().equals(forum.getMainID())) { //回复的是主帖
if (mainForum.getCanNotRe() == 0) {
mainForum.setCanNotRe(1);
}
if (isQuote) {
forum.setQuoteEditType(mainForum.getEditType());
if (this.getSysConfig().getQuoteMaxSize() > 0) {
forum.setQuoteText(BBSCSUtil.getSpeShortString(mainForum.getDetail(),
this.getSysConfig().getQuoteMaxSize(), "..."));
}
else {
forum.setQuoteText(mainForum.getDetail());
}
}
}
}
//else {
//}
mainForum = this.getForumDAO().saveForum(mainForum);
if (mainForum.getReNum() == this.getSysConfig().getForumHotRes()) { //回复次数达到热贴标准,增加发帖人人缘系数
UserInfo mui = this.getUserInfoDAO().findUserInfoById(mainForum.getUserID());
if (mui != null) {
mui.setUserKnow(mui.getUserKnow() + 1);
this.getUserInfoDAO().saveUserInfo(mui);
this.getUserInfoFileIO().writeUserFile(mui);
}
}
Forum reForum = mainForum;
if (!forum.getParentID().equals(forum.getMainID())) { //回复的不是主帖
reForum = this.getForumDAO().findForumByID(forum.getParentID(), forum.getBoardID());
if (reForum != null) {
if (reForum.getCanNotRe() == 0) {
reForum.setCanNotRe(1);
reForum = this.getForumDAO().saveForum(reForum);
}
if (isQuote) {
forum.setQuoteEditType(reForum.getEditType());
if (this.getSysConfig().getQuoteMaxSize() > 0) {
forum.setQuoteText(BBSCSUtil.getSpeShortString(reForum.getDetail(),
this.getSysConfig().getQuoteMaxSize(), "..."));
}
else {
forum.setQuoteText(reForum.getDetail());
}
}
}
}
//处理文章标题
if (forum.getTitle().equalsIgnoreCase(Constant.RE)) {
if (reForum != null) {
if (reForum.getTitle().startsWith(Constant.RE)) {
forum.setTitle(reForum.getTitle());
}
else {
if (BBSCSUtil.getSysCharsetStrLength(Constant.RE + reForum.getTitle()) > 90) {
forum.setTitle(reForum.getTitle());
}
else {
forum.setTitle(Constant.RE + reForum.getTitle());
}
}
}
}
forum = this.getForumDAO().saveForum(forum);
if (uploadFile != null) {
String fileName = "File_" + forum.getId() + "_" + System.currentTimeMillis() + "." +
FilenameUtils.getExtension(uploadFile.getFileName());
String toFilePath = BBSCSUtil.getUpFilePath(forum.getBoardID(), forum.getPostTime());
this.getForumUploadFile().saveUploadFile(toFilePath + fileName, uploadFile,
this.getSysConfig());
forum.setHaveAttachFile(1);
forum.getAttachFileName().add(fileName);
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) {
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());
subs.setUserLocale(ui.getUserLocale());
this.getSubscibeDAO().saveSubscibe(subs);
}
this.getSubscibeQueue().add(forum);
return forum;
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
public Forum createForumUpFile(Forum forum, UploadFile uploadFile) throws BbscsException {
try {
if (uploadFile != null) {
String fileName = "File_" + forum.getId() + "_" + System.currentTimeMillis() + "." +
FilenameUtils.getExtension(uploadFile.getFileName());
String toFilePath = BBSCSUtil.getUpFilePath(forum.getBoardID(), forum.getPostTime());
this.getForumUploadFile().saveUploadFile(toFilePath + fileName, uploadFile,
this.getSysConfig());
//System.out.println("upfile");
List attachFiles = new ArrayList();
attachFiles.addAll(forum.getAttachFileName());
attachFiles.add(fileName);
//forum.getAttachFileName().add(fileName);
forum.setAttachFileName(attachFiles);
if (forum.getHaveAttachFile() == 0) {
forum.setHaveAttachFile(1);
}
forum = this.getForumDAO().saveForum(forum);
}
return forum;
}
catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
/**
* 帖子修改
*
* @param forum Forum
* @return Forum
* @throws BbscsException
* @todo Implement this com.laoer.bbscs.service.ForumService method
*/
public Forum editForum(Forum forum) throws BbscsException {
return null;
}
/**
*
* @param bids List
* @param reNum int
* @return int
*/
public int getForumNumReNum(List bids, int reNum) {
return this.getForumDAO().getForumNumRcc(bids, reNum, -1, -1);
}
/**
*
* @param bid long
* @param reNum int
* @return int
*/
public int getForumNumReNum(long bid, int reNum) {
return this.getForumDAO().getForumNumRcc(bid, reNum, -1, -1);
}
/**
*
* @param bids List
* @param reNum int
* @param pages Pages
* @return PageList
*/
public PageList findForumsReNum(List bids, int reNum, Pages pages) {
PageList pl = new PageList();
if (pages.getTotalNum() == -1) {
pages.setTotalNum(this.getForumNumReNum(bids, reNum));
}
pages.executeCount();
List l = this.getForumDAO().findForumsRcc(bids, reNum, -1, -1, "postTime", Constant.ORDER_DESC,
pages.getSpage(), pages.getPerPageNum());
pl.setObjectList(l);
pl.setPages(pages);
return pl;
}
/**
*
* @param bid long
* @param reNum int
* @param pages Pages
* @return PageList
*/
public PageList findForumsReNum(long bid, int reNum, Pages pages) {
PageList pl = new PageList();
if (pages.getTotalNum() == -1) {
pages.setTotalNum(this.getForumNumReNum(bid, reNum));
}
pages.executeCount();
List l = this.getForumDAO().findForumsRcc(bid, reNum, -1, -1, "postTime", Constant.ORDER_DESC,
pages.getSpage(), pages.getPerPageNum());
pl.setObjectList(l);
pl.setPages(pages);
return pl;
}
/**
*
* @param bids List
* @param click int
* @return int
*/
public int getForumNumClick(List bids, int click) {
return this.getForumDAO().getForumNumRcc(bids, -1, click, -1);
}
/**
*
* @param bid long
* @param click int
* @return int
*/
public int getForumNumClick(long bid, int click) {
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));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -