📄 noteaction.java
字号:
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 + -