📄 postopt.java
字号:
package com.laoer.bbscs.web.action;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import com.laoer.bbscs.bean.AgreeAgainst;
import com.laoer.bbscs.bean.Forum;
import com.laoer.bbscs.bean.Subscibe;
import com.laoer.bbscs.bean.UserInfo;
import com.laoer.bbscs.comm.BBSCSUtil;
import com.laoer.bbscs.comm.Constant;
import com.laoer.bbscs.comm.OrderObj;
import com.laoer.bbscs.exception.BbscsException;
import com.laoer.bbscs.service.AgreeAgainstService;
import com.laoer.bbscs.service.BoardService;
import com.laoer.bbscs.service.ForumService;
import com.laoer.bbscs.service.SubscibeFactory;
import com.laoer.bbscs.service.SubscibeService;
import com.laoer.bbscs.service.UserService;
import com.laoer.bbscs.service.config.SysConfig;
import com.laoer.bbscs.service.mail.TemplateMail;
import com.laoer.bbscs.web.ajax.AjaxMessagesJson;
import com.laoer.bbscs.web.interceptor.RemoteAddrAware;
import com.laoer.bbscs.web.interceptor.RequestBasePathAware;
public class PostOpt extends BaseBoardAction implements RemoteAddrAware, RequestBasePathAware {
/**
*
*/
private static final long serialVersionUID = -3754920382947045652L;
private String remoteAddr;
private String basePath;
private String id;
private String mainid;
private ForumService forumService;
private BoardService boardService;
private SysConfig sysConfig;
private UserService userService;
private AjaxMessagesJson ajaxMessagesJson;
private AgreeAgainstService agreeAgainstService;
private SubscibeFactory subscibeFactory;
private SubscibeService subscibeService;
private TemplateMail templateMail;
public void setRemoteAddr(String remoteAddr) {
this.remoteAddr = remoteAddr;
}
public void setBasePath(String basePath) {
this.basePath = basePath;
}
public String getBasePath() {
return basePath;
}
public String getRemoteAddr() {
return remoteAddr;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public AgreeAgainstService getAgreeAgainstService() {
return agreeAgainstService;
}
public void setAgreeAgainstService(AgreeAgainstService agreeAgainstService) {
this.agreeAgainstService = agreeAgainstService;
}
public AjaxMessagesJson getAjaxMessagesJson() {
return ajaxMessagesJson;
}
public void setAjaxMessagesJson(AjaxMessagesJson ajaxMessagesJson) {
this.ajaxMessagesJson = ajaxMessagesJson;
}
public BoardService getBoardService() {
return boardService;
}
public void setBoardService(BoardService boardService) {
this.boardService = boardService;
}
public ForumService getForumService() {
return forumService;
}
public void setForumService(ForumService forumService) {
this.forumService = forumService;
}
public SubscibeFactory getSubscibeFactory() {
return subscibeFactory;
}
public void setSubscibeFactory(SubscibeFactory subscibeFactory) {
this.subscibeFactory = subscibeFactory;
}
public SubscibeService getSubscibeService() {
return subscibeService;
}
public void setSubscibeService(SubscibeService subscibeService) {
this.subscibeService = subscibeService;
}
public SysConfig getSysConfig() {
return sysConfig;
}
public void setSysConfig(SysConfig sysConfig) {
this.sysConfig = sysConfig;
}
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public TemplateMail getTemplateMail() {
return templateMail;
}
public void setTemplateMail(TemplateMail templateMail) {
this.templateMail = templateMail;
}
public String getMainid() {
return mainid;
}
public void setMainid(String mainid) {
this.mainid = mainid;
}
public String votyes() {
return this.vote(true);
}
public String votno() {
return this.vote(false);
}
private String vote(boolean yesno) {
Forum f = this.getForumService().findForumByID(this.getId(), this.getBid());
if (f == null) {
this.getAjaxMessagesJson().setMessage("E_POST_NOT_EXIST", this.getText("error.post.getpost"));
return RESULT_AJAXJSON;
}
if (this.getSysConfig().getPostVoteRec() == 0) { // 不记录投票结果
if (yesno) {
f.setAgree(f.getAgree() + 1);
} else {
f.setBeAgainst(f.getBeAgainst() + 1);
}
try {
f = this.getForumService().saveOrUpdateForum(f);
if (yesno) {
this.getAjaxMessagesJson().setMessage("0", this.getText("post.agreeagainst.ok"),
String.valueOf(f.getAgree()));
} else {
this.getAjaxMessagesJson().setMessage("0", this.getText("post.agreeagainst.ok"),
String.valueOf(f.getBeAgainst()));
}
} catch (BbscsException ex) {
this.getAjaxMessagesJson().setMessage("E_POST_AGREEAGAINST_ERROR",
this.getText("error.post.agreeagainst.error"));
}
} else {
AgreeAgainst agreeAgainst = this.getAgreeAgainstService().findAgreeAgainstByUidPidBid(
this.getUserSession().getId(), this.getId(), this.getBid());
if (agreeAgainst == null) {
if (yesno) {
f.setAgree(f.getAgree() + 1);
} else {
f.setBeAgainst(f.getBeAgainst() + 1);
}
try {
f = this.getForumService().saveOrUpdateForum(f);
agreeAgainst = new AgreeAgainst();
agreeAgainst.setBoardID(f.getBoardID());
agreeAgainst.setCreateTime(System.currentTimeMillis());
agreeAgainst.setPostID(f.getId());
agreeAgainst.setUserID(this.getUserSession().getId());
if (yesno) {
agreeAgainst.setVoteType(0);
} else {
agreeAgainst.setVoteType(1);
}
this.getAgreeAgainstService().saveAgreeAgainst(agreeAgainst);
if (yesno) {
this.getAjaxMessagesJson().setMessage("0", this.getText("post.agreeagainst.ok"),
String.valueOf(f.getAgree()));
} else {
this.getAjaxMessagesJson().setMessage("0", this.getText("post.agreeagainst.ok"),
String.valueOf(f.getBeAgainst()));
}
} catch (BbscsException ex) {
this.getAjaxMessagesJson().setMessage("E_POST_AGREEAGAINST_ERROR",
this.getText("error.post.agreeagainst.error"));
}
} else {
this.getAjaxMessagesJson().setMessage("E_POST_AGREEAGAINST_REPEAT",
this.getText("error.post.agreeagainst.repeat"));
}
}
return RESULT_AJAXJSON;
}
public String dela() {
Forum f = this.getForumService().findForumByID(this.getId(), this.getBid());
if (f == null) {
this.getAjaxMessagesJson().setMessage("E_POST_NOT_EXIST", this.getText("error.post.getpost"));
return RESULT_AJAXJSON;
}
if ((f.getCanNotRe() == 0 && f.getUserID().equals(this.getUserSession().getId()))
|| this.getUserSession().isHaveBoardSpecialPermission(Constant.SPERMISSION_CAN_DELPOST)) {
f.setDelIP(this.getRemoteAddr());
f.setDelSign(1);
f.setDelTime(System.currentTimeMillis());
f.setDelUserID(this.getUserSession().getId());
f.setDelUserName(this.getUserSession().getUserName());
if (f.getIndexStatus() == Constant.INDEX_STATUS_NO_INDEX) {
f.setIndexStatus(Constant.INDEX_STATUS_NO_INDEX_TO_DEL);
} else {
f.setIndexStatus(Constant.INDEX_STATUS_NEED_DEL);
}
UserInfo ui = this.getUserService().findUserInfoById(f.getUserID());
try {
this.getForumService().delaPost(f, this.getBoard(), ui);
this.getAjaxMessagesJson().setMessage("0", this.getText("post.del.ok"));
} catch (BbscsException ex1) {
this.getAjaxMessagesJson().setMessage("E_POST_DEL_ERROR", this.getText("error.post.del1"));
}
} else {
this.getAjaxMessagesJson().setMessage("E_NO_PERMISSION", this.getText("error.noPermission.ajax"));
}
return RESULT_AJAXJSON;
}
public String subs() {
Forum f = this.getForumService().findForumByID(this.getId(), this.getBid());
if (f == null) {
this.getAjaxMessagesJson().setMessage("E_POST_NOT_EXIST", this.getText("error.post.getpost"));
return RESULT_AJAXJSON;
}
if (this.getSubscibeService().findSubscibeByPostID(this.getId(), this.getUserSession().getId(), this.getBid()) == null) {
UserInfo ui = this.getUserService().findUserInfoById(this.getUserSession().getId());
if (ui != null) {
Subscibe subs = this.getSubscibeFactory().getInstance(this.getBid());
subs.setBoardID(this.getBid());
subs.setCreateTime(new Date());
subs.setEmailinform(1);
subs.setMsginform(1);
subs.setNickName(this.getUserSession().getNickName());
//subs.setPostID(this.getId());
//subs.setPostTitle(f.getTitle());
subs.setForum(f);
subs.setUserEmail(ui.getEmail());
subs.setUserID(this.getUserSession().getId());
subs.setUserName(this.getUserSession().getUserName());
subs.setUserLocale(ui.getUserLocale());
try {
this.getSubscibeService().saveSubscibe(subs);
this.getAjaxMessagesJson().setMessage("0", this.getText("post.subs.ok"));
} catch (BbscsException ex2) {
this.getAjaxMessagesJson().setMessage("E_POST_SUBS_ERROR", this.getText("error.post.subs.error"));
}
}
} else {
this.getAjaxMessagesJson().setMessage("E_POST_SUBS_EXIST", this.getText("error.post.subs.exist"));
}
return RESULT_AJAXJSON;
}
public String top() {
return this.settop(true);
}
public String untop() {
return this.settop(false);
}
private String settop(boolean yesno) {
Forum f = this.getForumService().findForumByID(this.getId(), this.getBid());
if (f == null) {
this.getAjaxMessagesJson().setMessage("E_POST_NOT_EXIST", this.getText("error.post.getpost"));
return RESULT_AJAXJSON;
}
if (yesno) {
if (f.getIsTop() == 0) {
f.setIsTop(1);
try {
this.getForumService().saveOrUpdateForum(f);
this.getAjaxMessagesJson().setMessage("0", this.getText("post.top.set.ok"));
} catch (BbscsException ex3) {
this.getAjaxMessagesJson().setMessage("E_POST_TOP_SET_ERROR",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -