⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 noteaction.java

📁 java论坛
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.laoer.bbscs.web.action;

import java.util.*;
import javax.servlet.http.*;

import org.apache.commons.lang.*;
import org.apache.commons.logging.*;
import org.apache.struts.action.*;
import org.apache.struts.util.*;
import com.laoer.bbscs.bean.*;
import com.laoer.bbscs.comm.*;
import com.laoer.bbscs.exception.*;
import com.laoer.bbscs.service.*;
import com.laoer.bbscs.service.config.*;
import com.laoer.bbscs.service.web.*;
import com.laoer.bbscs.web.form.*;
import com.laoer.bbscs.web.servlet.*;

public class NoteAction
    extends BaseAction {

  private static final Log logger = LogFactory.getLog(NoteAction.class);

  private NoteService noteService;

  private AjaxMessagesXML ajaxMessagesXML;

  private NoteFactory noteFactory;

  private UserService userService;

  private SysConfig sysConfig;

  private FriendService friendService;

  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
                               HttpServletResponse response) {
    NoteForm noteForm = (NoteForm) form;

    UserSession us = this.getUserSession(request);
    UserCookie uc = this.getUserCookie(request, response, this.getSysConfig());

    if (noteForm.getAction().equalsIgnoreCase("index")) {
      //int inBoxNum = this.getNoteService().getNoteAllNumInBox(us.getId());
      //int outBoxNum = this.getNoteService().getNoteAllNumOutBox(us.getId());

      //request.setAttribute("inBoxNum", new Integer(inBoxNum));
      //request.setAttribute("outBoxNum", new Integer(outBoxNum));

      request.setAttribute("inBoxNum", new Integer(0));
      request.setAttribute("outBoxNum", new Integer(0));

      return mapping.findForward("note");
    }

    if (noteForm.getAction().equalsIgnoreCase("innum")) {
      int inBoxNum = this.getNoteService().getNoteAllNumInBox(us.getId());
      this.getAjaxMessagesXML().setMessage(Constant.CODEID_OK, "", String.valueOf(inBoxNum));
      this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
      return mapping.findForward(this.FORWARD_AJAX);
    }

    if (noteForm.getAction().equalsIgnoreCase("outnum")) {
      int outBoxNum = this.getNoteService().getNoteAllNumOutBox(us.getId());
      this.getAjaxMessagesXML().setMessage(Constant.CODEID_OK, "", String.valueOf(outBoxNum));
      this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
      return mapping.findForward(this.FORWARD_AJAX);
    }

    if (noteForm.getAction().equalsIgnoreCase("new")) {
      noteForm.setAction("add");
      return mapping.findForward("noteSend");
    }

    if (noteForm.getAction().equalsIgnoreCase("add")) { //发送悄悄话
      MessageResources mr = this.getResources(request);
      Locale locale = this.getLocale(request);

      if (this.getSysConfig().isInPmFloodTime(uc.getLastSendNoteTime())) { //发送间隔时间
        this.getAjaxMessagesXML().setMessage(Constant.CODEID_NOTE_INFLOODTIME,
                                             mr.getMessage(locale, "error.note.isinfloodtime",
            String.valueOf(this.getSysConfig().getPmFloodTime())));
        this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
        return mapping.findForward("ajaxjsp");
      }

      if (StringUtils.isBlank(noteForm.getToUserName()) ||
          StringUtils.isBlank(noteForm.getNoteTitle()) ||
          StringUtils.isBlank(noteForm.getNoteContext())) { //各项不能为空
        this.getAjaxMessagesXML().setMessage(Constant.CODEID_NULL,
                                             mr.getMessage(locale, "error.nullerror"));
        this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
        return mapping.findForward("ajaxjsp");
      }

      if (BBSCSUtil.getSysCharsetStrLength(noteForm.getNoteContext()) >
          this.getSysConfig().getPmMaxLength()) { //内容超过规定字数
        this.getAjaxMessagesXML().setMessage(Constant.CODEID_NOTE_TOOLONG,
                                             mr.getMessage(locale, "error.note.context.toolong",
            String.valueOf(this.getSysConfig().getPmMaxLength())));
        this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
        return mapping.findForward("ajaxjsp");
      }

      if (noteForm.getToUserName().equalsIgnoreCase(us.getUserName())) { //不能给自己发送
        this.getAjaxMessagesXML().setMessage(Constant.CODEID_NOTE_USERSAME,
                                             mr.getMessage(locale, "error.note.usersame",
            String.valueOf(this.getSysConfig().getPmMaxLength())));
        this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
        return mapping.findForward("ajaxjsp");
      }

      UserInfo ui = this.getUserService().findUserInfoByUserName(noteForm.getToUserName());
      if (ui == null) { //对方用户不存在
        this.getAjaxMessagesXML().setMessage(Constant.CODEID_USER_NOEXIST,
                                             mr.getMessage(locale, "error.note.touser.noexist"));
        this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
        return mapping.findForward("ajaxjsp");
      }

      //todo 不接收悄悄话
      if (ui.getReceiveNote() != 1) {
        this.getAjaxMessagesXML().setMessage(Constant.CODEID_NOTE_USER_NOT_RECEIVE,
                                             mr.getMessage(locale, "error.note.usernotreceive"));
        this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
        return mapping.findForward("ajaxjsp");
      }

      //todo 黑名单
      Friend f = this.getFriendService().findFriendByName(us.getUserName(), ui.getId());
      if (f != null && f.getIsBlack() == 1) {
        this.getAjaxMessagesXML().setMessage(Constant.CODEID_NOTE_USER_IS_BLACK,
                                             mr.getMessage(locale, "error.note.userisinblack"));
        this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
        return mapping.findForward("ajaxjsp");
      }

      Note inboxNote = this.getNoteFactory().getInstance(ui.getId()); //对方收件箱对象
      Note outboxNote = this.getNoteFactory().getInstance(us.getId()); //自己发件箱对象

      Date sdate = new Date();
      inboxNote.setCreateTime(sdate);
      inboxNote.setFromID(us.getId());
      inboxNote.setFromNickName(us.getNickName());
      inboxNote.setFromUserName(us.getUserName());
      inboxNote.setIsNew(1);
      inboxNote.setIsRe(0);
      inboxNote.setNeedRe(noteForm.getNeedRe());
      inboxNote.setNoteContext(noteForm.getNoteContext());
      inboxNote.setNoteTitle(noteForm.getNoteTitle());
      inboxNote.setNoteType(1);
      inboxNote.setToID(ui.getId());
      inboxNote.setToNickName(ui.getNickName());
      inboxNote.setToUserName(ui.getUserName());
      inboxNote.setSysMsg(0);

      outboxNote.setCreateTime(sdate);
      outboxNote.setFromID(us.getId());
      outboxNote.setFromNickName(us.getNickName());
      outboxNote.setFromUserName(us.getUserName());
      outboxNote.setIsNew(0);
      outboxNote.setIsRe(0);
      outboxNote.setNeedRe(0);
      outboxNote.setNoteContext(noteForm.getNoteContext());
      outboxNote.setNoteTitle(noteForm.getNoteTitle());
      outboxNote.setNoteType(0);
      outboxNote.setToID(ui.getId());
      outboxNote.setToNickName(ui.getNickName());
      outboxNote.setToUserName(ui.getUserName());
      outboxNote.setSysMsg(0);

      try {
        Note[] notes = this.getNoteService().createNote(inboxNote, outboxNote); //保存悄悄话
        this.getAjaxMessagesXML().setMessage(Constant.CODEID_OK,
                                             mr.getMessage(locale, "note.add.ok"));
      }
      catch (BbscsException ex) {
        logger.error(ex);
        this.getAjaxMessagesXML().setMessage(Constant.CODEID_NOTE_ADDFAILED,
                                             mr.getMessage(locale, "error.note.add.error"));
      }
      this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
      return mapping.findForward("ajaxjsp");
    }

    if (noteForm.getAction().equalsIgnoreCase("inbox")) { //收件箱列表
      Pages pages = new Pages();
      pages.setPage(noteForm.getPage());
      pages.setPerPageNum(this.getSysConfig().getPmPerPage());
      //pages.setPerPageNum(2);
      pages.setFileName(BBSCSUtil.getActionMappingURL("/note?action=inbox&ajax=shtml", request));
      PageList pl = this.getNoteService().findNotesInBox(us.getId(), pages);
      request.setAttribute("pl", pl);
      return mapping.findForward("noteInbox");
    }

    if (noteForm.getAction().equalsIgnoreCase("outbox")) { //发件箱列表
      Pages pages = new Pages();
      pages.setPage(noteForm.getPage());
      pages.setPerPageNum(this.getSysConfig().getPmPerPage());
      //pages.setPerPageNum(1);
      pages.setFileName(BBSCSUtil.getActionMappingURL("/note?action=outbox&ajax=shtml", request));
      PageList pl = this.getNoteService().findNotesOutBox(us.getId(), pages);
      request.setAttribute("pl", pl);
      return mapping.findForward("noteOutbox");
    }

    if (noteForm.getAction().equalsIgnoreCase("readinbox")) { //读取收件箱悄悄话
      ActionMessages messages = new ActionMessages();
      Note note = this.getNoteService().findNoteByIDToID(noteForm.getId(), us.getId());
      if (note == null) {

        messages.add("error.note.notexist", new ActionMessage("error.note.notexist"));
        this.saveErrors(request, messages);
        return mapping.findForward("htmlError");
      }
      if (note.getIsNew() == 1) {
        note.setIsNew(0);
        try {
          note = this.getNoteService().saveNote(note);
        }
        catch (BbscsException ex2) {
          logger.error(ex2);
          messages.add("error.note.read.error", new ActionMessage("error.note.read.error"));
          this.saveErrors(request, messages);
          return mapping.findForward("htmlError");
        }
      }
      if (note.getSysMsg() == 0) {
        note.setNoteContext(BBSCSUtil.filterText(note.getNoteContext(),
                                                 this.getSysConfig().isPmAllowHTML(),
                                                 this.getSysConfig().isPmAllowUBB(),
                                                 this.getSysConfig().isPmAllowSmilies()));
      }
      request.setAttribute("note", note);
      request.setAttribute("pageNum", new Integer(noteForm.getPage()));
      return mapping.findForward("noteReadInbox");
    }

    if (noteForm.getAction().equalsIgnoreCase("readoutbox")) { //读取发件箱悄悄话
      ActionMessages messages = new ActionMessages();
      Note note = this.getNoteService().findNoteByIDFromID(noteForm.getId(), us.getId());
      if (note == null) {

        messages.add("error.note.notexist", new ActionMessage("error.note.notexist"));
        this.saveErrors(request, messages);
        return mapping.findForward("htmlError");
      }
      /*
             if (note.getIsNew() == 1) {
        note.setIsNew(0);
        try {
          note = this.getNoteService().saveNote(note);
        }
        catch (BbscsException ex2) {
          logger.error(ex2);
          messages.add("error.note.read.error", new ActionMessage("error.note.read.error"));
          this.saveErrors(request, messages);
          return mapping.findForward("htmlError");
        }
             }*/
      note.setNoteContext(BBSCSUtil.filterText(note.getNoteContext(),
                                               this.getSysConfig().isPmAllowHTML(),
                                               this.getSysConfig().isPmAllowUBB(),
                                               this.getSysConfig().isPmAllowSmilies()));
      request.setAttribute("note", note);
      request.setAttribute("pageNum", new Integer(noteForm.getPage()));
      return mapping.findForward("noteReadInbox");
    }

    if (noteForm.getAction().equalsIgnoreCase("delinbox")) { //删除收件箱悄悄话
      MessageResources mr = this.getResources(request);
      Locale locale = this.getLocale(request);
      try {
        this.getNoteService().removeByIDToID(noteForm.getId(), us.getId());
        this.getAjaxMessagesXML().setMessage(Constant.CODEID_OK,
                                             mr.getMessage(locale, "note.del.ok"));
      }
      catch (BbscsException ex1) {
        logger.error(ex1);
        this.getAjaxMessagesXML().setMessage(Constant.CODEID_NOTE_DEL,
                                             mr.getMessage(locale, "error.note.del.error"));
      }
      this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
      return mapping.findForward("ajaxjsp");
    }

    if (noteForm.getAction().equalsIgnoreCase("deloutbox")) { //删除发件箱悄悄话
      MessageResources mr = this.getResources(request);
      Locale locale = this.getLocale(request);
      try {
        this.getNoteService().removeByIDFromID(noteForm.getId(), us.getId());
        this.getAjaxMessagesXML().setMessage(Constant.CODEID_OK,
                                             mr.getMessage(locale, "note.del.ok"));
      }
      catch (BbscsException ex1) {
        logger.error(ex1);
        this.getAjaxMessagesXML().setMessage(Constant.CODEID_NOTE_DEL,
                                             mr.getMessage(locale, "error.note.del.error"));
      }
      this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
      return mapping.findForward("ajaxjsp");
    }

    if (noteForm.getAction().equalsIgnoreCase("autore")) { //自动发送回执
      ActionMessages messages = new ActionMessages();
      Note note = this.getNoteService().findNoteByIDToID(noteForm.getId(), us.getId());
      if (note == null) {
        messages.add("error.note.notexist", new ActionMessage("error.note.notexist"));
        this.saveErrors(request, messages);
        return mapping.findForward("htmlError");
      }
      note.setNeedRe(0);
      note.setIsRe(1);
      try {
        note = this.getNoteService().saveNote(note);
      }
      catch (BbscsException ex3) {
        logger.error(ex3);
      }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -