📄 forumserviceimp.java
字号:
subs.setUserLocale(ui.getUserLocale());
this.getSubscibeDAO().saveSubscibe(subs);
}
}
this.getSysListObjCache().remove(Constant.FORUM_NEW_CACHE_NAME);
return forum;
} catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
@SuppressWarnings("unchecked")
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());
List attachFiles = new ArrayList();
attachFiles.addAll(forum.getAttachFileName());
attachFiles.add(fileName);
forum.setAttachFileName(attachFiles);
if (forum.getHaveAttachFile() == 0) {
forum.setHaveAttachFile(1);
}
forum = this.getForumDAO().saveOrUpdateForum(forum);
}
return forum;
} catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
@SuppressWarnings("unchecked")
public Forum createReForum(Forum forum, Forum mainForum, Board board, UserInfo ui, UploadFile uploadFile,
boolean isQuote) throws BbscsException {
try {
String detail = forum.getDetail();
//if (board.getAuditPost() == 0) { // 不需要审核
if (forum.getAuditing() == 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(this.getForumDetail(mainForum, false), this
.getSysConfig().getQuoteMaxSize(), "..."));
} else {
forum.setQuoteText(this.getForumDetail(mainForum, false));
}
}
}
} else {
//mainForum.setLastPostTitle(forum.getTitle()); change at 2007.9.7
//mainForum.setLastTime(forum.getPostTime()); change at 2007.9.7
if (forum.getParentID().equals(forum.getMainID())) { // 回复的是主帖
if (isQuote) {
forum.setQuoteEditType(mainForum.getEditType());
if (this.getSysConfig().getQuoteMaxSize() > 0) {
forum.setQuoteText(BBSCSUtil.getSpeShortString(this.getForumDetail(mainForum, false), this
.getSysConfig().getQuoteMaxSize(), "..."));
} else {
forum.setQuoteText(this.getForumDetail(mainForum, false));
}
}
}
}
mainForum = this.getForumDAO().saveOrUpdateForum(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().saveOrUpdateForum(reForum);
}
if (isQuote) {
forum.setQuoteEditType(reForum.getEditType());
String reDetail = this.getForumDetail(reForum, false);
if (this.getSysConfig().getQuoteMaxSize() > 0) {
forum.setQuoteText(BBSCSUtil.getSpeShortString(reDetail, this.getSysConfig()
.getQuoteMaxSize(), "..."));
} else {
forum.setQuoteText(reDetail);
}
}
}
}
// 处理文章标题
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().saveOrUpdateForum(forum);
if (Constant.POST_STORAGE_MODE == 0) {
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().saveOrUpdateForum(forum);
}
} else {
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);
}
String postFileName = "P_" + forum.getBoardID() + "_" + forum.getId() + ".txt";
File postFile = new File(this.getForumConfig().getForumPath(forum.getBoardID(), forum.getPostTime())
+ postFileName);
FileUtils.writeStringToFile(postFile, detail, Constant.CHARSET);
forum.setDetail(postFileName);
forum = this.getForumDAO().saveOrUpdateForum(forum);
}
//if (board.getAuditPost() == 0 && board.getAddUserPostNum() == 1) { // 不需要审核,并且版区为增加用户发帖数量
if (forum.getAuditing() == 0 && board.getAddUserPostNum() == 1) { // 不需要审核,并且版区为增加用户发帖数量
ui.setArticleNum(ui.getArticleNum() + 1);
ui.setExperience(ui.getExperience() + 1); // 回帖增加经验值1点。add at
// 2007.2.23
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.setForum(forum);
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 createVoteForum(Forum forum, Board board, Vote vote, UserInfo ui, String voteItem)
throws BbscsException {
try {
// String detail = forum.getDetail();
// forum.setDetail("");
String[] details = voteItem.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().saveOrUpdateForum(forum);
forum.setMainID(forum.getId());
forum = this.getForumDAO().saveOrUpdateForum(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.setForum(forum);
subs.setUserEmail(ui.getEmail());
subs.setUserID(ui.getId());
subs.setUserName(ui.getUserName());
this.getSubscibeDAO().saveSubscibe(subs);
}
}
this.getSysListObjCache().remove(Constant.FORUM_NEW_CACHE_NAME);
return forum;
} catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
public void delForumsNotAuditingAttachFile(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 (forum.getHaveAttachFile() == 1) {
List fl = forum.getAttachFileName();
String filePath = BBSCSUtil.getUpFilePath(forum.getBoardID(), forum.getPostTime());
try {
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);
}
}
fl.clear();
forum.setAttachFileName(fl);
forum.setAuditingAttachFile(0);
forum.setHaveAttachFile(0);
this.getForumDAO().saveOrUpdateForum(forum);
} catch (Exception ex) {
logger.error(ex);
throw new BbscsException(ex);
}
}
}
}
public void delPostReal(Forum forum) throws BbscsException {
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 i = 0; i < fl.size(); i++) { File attachFile = new
* File(filePath + (String) fl.get(i)); if (attachFile.exists()) {
* FileUtils.forceDelete(attachFile); } File attachFileSmall = new
* File(filePath + (String) fl.get(i) +
* 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);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -