topicaction.java
来自「社区文章采用的是平板、树形自由选择的两种展示方式」· Java 代码 · 共 434 行 · 第 1/2 页
JAVA
434 行
log.setByUserName(UserLogin.getUserName(request));
log.setByUserIp(request.getRemoteAddr());
log.setCreateDateTime(FormatDateTime.now());
log.setForumId(topic.getForumId());
log.setUserName(topic.getUserName());
log.setUserId(topic.getUserId());
log.setIsList(true);
log.setListByUserName(true);
log.setMemo("文章被下载");
log.setContent(log.getUserName()+"的文章被"+log.getByUserName()+"下载了");
this.getUserService().ruleUtils(log,topic.getForumId(),35);
try {
this.getManageLogService().create(log);
} catch (ClubException e) {
logger.error(e.toString());
}
}
}
public void createOrUpdate(HttpServletRequest request,HttpServletResponse response){
TopicPostForm topicPostForm = new TopicPostBuild(request).building();
if(Validator.isEmpty(topicPostForm.getTitle())||Validator.isEmpty(topicPostForm.getContent()))
{
request.setAttribute("message",MessageUtils.getMessage("error_empty"));
this.errorForward(request,response,topicPostForm);
return;
}
else if(topicPostForm.getTitle().length()>100||topicPostForm.getContentLength()>50000){
request.setAttribute("message",MessageUtils.getMessage("error_toolong"));
this.errorForward(request,response,topicPostForm);
return;
}
Topic topic = null;
TContent tContent = null;
if(topicPostForm.getTopicId()>0){ //如果是更新文章
topic = this.getTopicService().findTopicAndContentById(topicPostForm.getTopicId());
tContent = topic.getTContent();
/*
* 如果是编辑帖,则取出原作者信息设置回去!
*/
topicPostForm.setUserId(topic.getUserId());
topicPostForm.setUserName(topic.getUserName());
topicPostForm.setUserIp(topic.getUserIp());
topicPostForm.setCreateDateTime(topic.getCreateDateTime());
}else{ //如果是新建文章
topic = new Topic();
tContent = new TContent();
String temp = ParamUtils.getCookieValue(request, "title", "");
if(!Validator.isEmpty(temp)&&temp.equalsIgnoreCase(topic.getTitle())){
request.setAttribute("message","系统怀疑您在灌水...锁定您15秒!!!");
this.errorForward(request,response,topicPostForm);
return;
}
}
BeanUtils.copyProperties(topic,topicPostForm);
BeanUtils.copyProperties(tContent,topicPostForm);
topic.setTContent(tContent);
topic.setReplyId(topicPostForm.getLastReplyId());
/* 在线用户信息 from session */
topic.setUser(UserLogin.getUser(request));
topic.setSessionUser(UserLogin.getUser(request));
try {
this.getTopicService().createOrUpdate(topic);
ParamUtils.setCookieValue(response, "title", topic.getTitle(), 30);
StringBuffer sb = new StringBuffer();
User user = topic.getUser();
if(!Validator.isEmpty(user)){
UserLogin.setCookies(request,response,user,0);
}
topicPostForm.setTopicId(topic.getTopicId());
topicPostForm.setReplyId(topic.getReplyId());
request.setAttribute("returnUrl",UrlUtils.getUrl(UrlUtils.TOPIC,topicPostForm.getTopicId(),topic.getForumId(),request));
byte postForward = this.getUserSettingscService().getUserSettings(user).getPostForward();
switch(postForward){
case 1://返回版面
sb.append(UrlUtils.getUrl(UrlUtils.FORUM,topic.getForumId(),0,request));
logger.debug("发表文章成功后跳转至:"+sb.toString());
HttpServletUtils.redirect(response,sb.toString());
break;
case 2://返回发表的主题
sb.append(UrlUtils.getUrl(UrlUtils.TOPIC,topic.getTopicId(),topic.getForumId(),request));
logger.debug("发表文章成功后跳转至:"+sb.toString());
HttpServletUtils.redirect(response,sb.toString());
break;
default: //返回界面让用户选择
sb.append("/club/posted.jsp?forumId=");
sb.append(topic.getForumId());
sb.append("&topicId=");
sb.append(topic.getTopicId());
sb.append("&act=");
sb.append(ParamUtils.getStringParameter(request,"act"));
request.setAttribute("msg","success");
HttpServletUtils.forward(request,response,sb.toString());
}
} catch (ClubException e) {
request.setAttribute("message",e.getMessage());
this.errorForward(request,response,topicPostForm);
}
}
private void errorForward(HttpServletRequest request,HttpServletResponse response, TopicPostForm topicPostForm){
request.setAttribute("TopicPostForm",topicPostForm);
HttpServletUtils.forward(request,response,"/club/post.jsp");
}
private String forwardUrl(String act, int topicId, int forumId){
StringBuffer sb = new StringBuffer("/club/topicAdmin.jsp?forumId=");
sb.append(forumId);
sb.append("&topicId=");
sb.append(topicId);
sb.append("&act=");
sb.append(act);
return sb.toString();
}
public void move(HttpServletRequest request,HttpServletResponse response){
TopicMoveForm topicMoveForm = new TopicMoveBuild(request).building();
request.setAttribute("TopicMoveForm",topicMoveForm);
try {
this.getTopicService().move(topicMoveForm);
request.setAttribute("message",MessageUtils.getMessage("success"));
} catch (ClubException e) {
request.setAttribute("message",e.getMessage());
}
HttpServletUtils.forward(request,response,forwardUrl("movetopic",topicMoveForm.getTopicId(),topicMoveForm.getForumId()));
}
/**
* 加为精品
* @param request
* @param response
*/
public void better(HttpServletRequest request,HttpServletResponse response){
TopicBetterForm topicBetterForm = new TopicBetterBuild(request).building();
try {
this.getTopicService().updateBetter(topicBetterForm);
request.setAttribute("message",MessageUtils.getMessage("success"));
} catch (ClubException e) {
request.setAttribute("message",e.getMessage());
}
HttpServletUtils.forward(request,response,forwardUrl("better",topicBetterForm.getTopicId(),topicBetterForm.getForumId()));
}
public void trash(HttpServletRequest request,HttpServletResponse response){
TopicTrashForm topicTrashForm = new TopicTrashBuild(request).building();
try {
this.getTopicService().trash(topicTrashForm);
request.setAttribute("message",MessageUtils.getMessage("success"));
} catch (ClubException e) {
request.setAttribute("message",e.getMessage());
}
HttpServletUtils.forward(request,response,forwardUrl("trashtopic",topicTrashForm.getTopicId(),topicTrashForm.getForumId()));
}
public void findNextOrPrevious(HttpServletRequest request,HttpServletResponse response){
int topicId = ParamUtils.getIntParameter(request,"topicId",0);
int forumId = ParamUtils.getIntParameter(request,"forumId",0);
String go = ParamUtils.getStringParameter(request,"go","next");
boolean isnext = true;
if(!go.equalsIgnoreCase("next")){
isnext = false;
}
if(topicId==0){
request.setAttribute("message",MessageUtils.getMessage("error_notfind"));
HttpServletUtils.forward(request,response,"/club/msg.jsp");
}else{
Topic topic = this.getTopicService().findNextOrPrevious(topicId,forumId,isnext);
if(Validator.isEmpty(topic)){
if(isnext){
request.setAttribute("message","已到达本版最新一篇主题!");
}else{
request.setAttribute("message","前面没有内容了!");
}
String url = UrlUtils.getUrl(UrlUtils.TOPIC,topicId,forumId,request);
logger.debug("referer: "+request.getHeader("referer"));
logger.debug("url: "+url);
HttpServletUtils.forward(request,response,"thread.jsp?forumId="+forumId+"&topicId="+topicId);
}else{
topicId = topic.getTopicId();
forumId = topic.getForumId();
String url = UrlUtils.getUrl(UrlUtils.TOPIC,topicId,forumId,request);
logger.debug("findNextOrPrevious: "+url);
HttpServletUtils.redirect(response,url);
}
}
}
private BasicInfoService getBasicInfoService() {
return ServiceWrapper.<BasicInfoService>getSingletonInstance(ServiceLocator.BASICINFO);
}
private ReplyService getReplyService() {
return ServiceWrapper.<ReplyService>getSingletonInstance(ServiceLocator.REPLY);
}
private TopicService getTopicService() {
return ServiceWrapper.<TopicService>getSingletonInstance(ServiceLocator.TOPIC);
}
private UserSettingsService getUserSettingscService() {
return ServiceWrapper.<UserSettingsService>getSingletonInstance(ServiceLocator.USERSETTINGS);
}
private RuleService getRuleService() {
return ServiceWrapper.<RuleService>getSingletonInstance(ServiceLocator.RULE);
}
private UserService getUserService() {
return ServiceWrapper.<UserService>getSingletonInstance(ServiceLocator.USER);
}
private ManageLogService getManageLogService() {
return ServiceWrapper.<ManageLogService>getSingletonInstance(ServiceLocator.MANAGELOG);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?