package cn.newgxu.bbs.web.action; import javax.servlet.http.HttpServletRequest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.util.Assert; import cn.newgxu.bbs.common.MessageList; import cn.newgxu.bbs.common.exception.BBSException; import cn.newgxu.bbs.common.util.Util; import cn.newgxu.bbs.domain.Topic; import cn.newgxu.bbs.domain.activity.Christmas; import cn.newgxu.bbs.domain.activity.Doomsday; import cn.newgxu.bbs.service.ForumService; import cn.newgxu.bbs.web.cache.BBSCache; import cn.newgxu.bbs.web.model.CreateTopicModel; import cn.newgxu.bbs.web.webservice.util.Twitter; /** * * @author polly * @since 4.0.0 * @version $Revision 1.1$ */ public class CreateTopicAction extends AbstractBaseAction { private static final long serialVersionUID = -8204797530439905156L; private static final Log log = LogFactory.getLog(CreateTopicAction.class); private CreateTopicModel model = new CreateTopicModel(); private ForumService forumService; public String execute() throws Exception { signOnlineUser("发表新主题"); model.setUser(getUser()); try { forumService.createTopic(model); super.setOnlineStatusForumId(model.getForumId()); } catch (BBSException e) { MessageList m = new MessageList(); log.debug(e); m.addMessage(e.getMessage()); Util.putMessageList(m, getSession()); return ERROR; } activity(); return SUCCESS; } public String submit() throws Exception { signOnlineUser("新主题提交中..."); model.setUser(getUser()); MessageList m = new MessageList(); log.debug(model.getActivity()); try { Topic topic = forumService.createTopicDo(model); m.setUrl("/topic.yws?forumId=${forumId}&topicId=${topicId}", MessageList.P("${forumId}", model.getForumId()), MessageList.P("${topicId}", topic.getId())); m.addMessage("<b>新主题发表成功!</b>"); m.addMessage("<a href='/forum.yws?forumId=${forumId}'>返回主题列表</a>", MessageList.P("${forumId}", model.getForumId())); m .addMessage( "<a href='/topic.yws?forumId=${forumId}&topicId=${topicId}'>查看我刚才发表的主题</a>", MessageList.P("${forumId}", model.getForumId()), MessageList.P("${topicId}", topic.getId())); Util.putMessageList(m, getSession()); log.debug("新主题发表成功!"); BBSCache.topicCount2++; if (model.getSynchronousTwitter() == 1) { synchronousTwitter(topic); } return SUCCESS; } catch (Exception e) { addValidateMsg(e.getMessage()); String result = execute(); return SUCCESS.equals(result) ? INPUT : result; } } public Object getModel() { return model; } public void setForumService(ForumService forumService) { this.forumService = forumService; } private void synchronousTwitter(Topic topic) { Twitter twitter = new Twitter(); twitter.setUrl("http://bbs.newgxu.cn/topic.yws?forumId=" + topic.getForum().getId() + "&topicId=" + topic.getId()); twitter.setTitle(topic.getTitle()); System.out.println(model.getUser().getUsername()); twitter.synchronousTwitter(model.getUser().getUsername(), model.getUser().getPassword(), 1); twitter = null; } }