📄 forumserviceimp.java
字号:
package com.laoer.bbscs.service.imp;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.laoer.bbscs.bean.Board;
import com.laoer.bbscs.bean.Commend;
import com.laoer.bbscs.bean.Forum;
import com.laoer.bbscs.bean.ForumBuy;
import com.laoer.bbscs.bean.ForumHistory;
import com.laoer.bbscs.bean.Subscibe;
import com.laoer.bbscs.bean.UserInfo;
import com.laoer.bbscs.bean.Vote;
import com.laoer.bbscs.bean.VoteItem;
import com.laoer.bbscs.comm.BBSCSUtil;
import com.laoer.bbscs.comm.Constant;
import com.laoer.bbscs.comm.OrderObj;
import com.laoer.bbscs.comm.SysQueue;
//import com.laoer.bbscs.comm.Util;
import com.laoer.bbscs.dao.BoardDAO;
import com.laoer.bbscs.dao.CommendDAO;
import com.laoer.bbscs.dao.ForumBuyDAO;
import com.laoer.bbscs.dao.ForumDAO;
import com.laoer.bbscs.dao.SubscibeDAO;
import com.laoer.bbscs.dao.UserInfoDAO;
import com.laoer.bbscs.dao.VoteDAO;
import com.laoer.bbscs.dao.VoteItemDAO;
import com.laoer.bbscs.exception.BbscsException;
import com.laoer.bbscs.fio.CommendFileIO;
import com.laoer.bbscs.fio.ForumUploadFile;
import com.laoer.bbscs.fio.UploadFile;
import com.laoer.bbscs.fio.UserInfoFileIO;
import com.laoer.bbscs.service.Cache;
import com.laoer.bbscs.service.ForumService;
import com.laoer.bbscs.service.SubscibeFactory;
import com.laoer.bbscs.service.config.ForumConfig;
import com.laoer.bbscs.service.config.SysConfig;
import com.laoer.bbscs.service.web.PageList;
import com.laoer.bbscs.service.web.Pages;
public class ForumServiceImp implements ForumService {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(ForumServiceImp.class);
private ForumDAO forumDAO;
private UserInfoDAO userInfoDAO;
private ForumUploadFile forumUploadFile;
private Cache sysListObjCache;
private SysConfig sysConfig;
private UserInfoFileIO userInfoFileIO;
private SubscibeFactory subscibeFactory;
private SubscibeDAO subscibeDAO;
private BoardDAO boardDAO;
private SysQueue subscibeQueue;
private ForumBuyDAO forumBuyDAO;
private VoteDAO voteDAO;
private VoteItemDAO voteItemDAO;
private CommendDAO commendDAO;
private CommendFileIO commendFileIO;
private ForumDAO forumHistoryDAO;
private ForumConfig forumConfig;
private Cache postCache;
public ForumDAO getForumDAO() {
return forumDAO;
}
public void setForumDAO(ForumDAO forumDAO) {
this.forumDAO = forumDAO;
}
public UserInfoDAO getUserInfoDAO() {
return userInfoDAO;
}
public void setUserInfoDAO(UserInfoDAO userInfoDAO) {
this.userInfoDAO = userInfoDAO;
}
public ForumUploadFile getForumUploadFile() {
return forumUploadFile;
}
public void setForumUploadFile(ForumUploadFile forumUploadFile) {
this.forumUploadFile = forumUploadFile;
}
public Cache getSysListObjCache() {
return sysListObjCache;
}
public void setSysListObjCache(Cache sysListObjCache) {
this.sysListObjCache = sysListObjCache;
}
public SysConfig getSysConfig() {
return sysConfig;
}
public void setSysConfig(SysConfig sysConfig) {
this.sysConfig = sysConfig;
}
public SubscibeDAO getSubscibeDAO() {
return subscibeDAO;
}
public void setSubscibeDAO(SubscibeDAO subscibeDAO) {
this.subscibeDAO = subscibeDAO;
}
public SubscibeFactory getSubscibeFactory() {
return subscibeFactory;
}
public void setSubscibeFactory(SubscibeFactory subscibeFactory) {
this.subscibeFactory = subscibeFactory;
}
public UserInfoFileIO getUserInfoFileIO() {
return userInfoFileIO;
}
public void setUserInfoFileIO(UserInfoFileIO userInfoFileIO) {
this.userInfoFileIO = userInfoFileIO;
}
public BoardDAO getBoardDAO() {
return boardDAO;
}
public void setBoardDAO(BoardDAO boardDAO) {
this.boardDAO = boardDAO;
}
public SysQueue getSubscibeQueue() {
return subscibeQueue;
}
public void setSubscibeQueue(SysQueue subscibeQueue) {
this.subscibeQueue = subscibeQueue;
}
public ForumBuyDAO getForumBuyDAO() {
return forumBuyDAO;
}
public void setForumBuyDAO(ForumBuyDAO forumBuyDAO) {
this.forumBuyDAO = forumBuyDAO;
}
public VoteDAO getVoteDAO() {
return voteDAO;
}
public void setVoteDAO(VoteDAO voteDAO) {
this.voteDAO = voteDAO;
}
public VoteItemDAO getVoteItemDAO() {
return voteItemDAO;
}
public void setVoteItemDAO(VoteItemDAO voteItemDAO) {
this.voteItemDAO = voteItemDAO;
}
public CommendDAO getCommendDAO() {
return commendDAO;
}
public void setCommendDAO(CommendDAO commendDAO) {
this.commendDAO = commendDAO;
}
public CommendFileIO getCommendFileIO() {
return commendFileIO;
}
public void setCommendFileIO(CommendFileIO commendFileIO) {
this.commendFileIO = commendFileIO;
}
public ForumDAO getForumHistoryDAO() {
return forumHistoryDAO;
}
public void setForumHistoryDAO(ForumDAO forumHistoryDAO) {
this.forumHistoryDAO = forumHistoryDAO;
}
public ForumConfig getForumConfig() {
return forumConfig;
}
public void setForumConfig(ForumConfig forumConfig) {
this.forumConfig = forumConfig;
}
public Cache getPostCache() {
return postCache;
}
public void setPostCache(Cache postCache) {
this.postCache = postCache;
}
public void createCommendPage(long commend) throws BbscsException {
// TODO 自动生成方法存根
}
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);
}
@SuppressWarnings("unchecked")
public Forum createForum(Forum forum, Board board, UserInfo ui, UploadFile uploadFile) throws BbscsException {
try {
if (Constant.POST_STORAGE_MODE == 0) { //采用数据库方式存贮帖子
forum = this.getForumDAO().saveOrUpdateForum(forum);
} else { //采用文件方式存贮帖子
String detail = forum.getDetail();
forum = this.getForumDAO().saveOrUpdateForum(forum);
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);
}
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().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() + 2); // 发帖增加经验值2点。add at
// 2007.2.23
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());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -