friendset.java
来自「一个jsp写的bbs」· Java 代码 · 共 259 行
JAVA
259 行
package com.laoer.bbscs.web.action;
import java.util.*;
import javax.servlet.http.*;
import org.apache.commons.lang.*;
import org.apache.struts.action.*;
import org.apache.struts.util.*;
import com.laoer.bbscs.bean.*;
import com.laoer.bbscs.comm.*;
import com.laoer.bbscs.service.*;
import com.laoer.bbscs.service.FriendFactory;
import com.laoer.bbscs.web.form.*;
import com.laoer.bbscs.web.servlet.*;
import com.laoer.bbscs.exception.*;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;
public class FriendSet
extends BaseAction {
private static final Log logger = LogFactory.getLog(FriendSet.class);
private FriendService friendService;
private FriendFactory friendFactory;
private AjaxMessagesXML ajaxMessagesXML;
private UserService userService;
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) {
FriendForm friendForm = (FriendForm) form;
UserSession us = this.getUserSession(request);
if (friendForm.getAction().equalsIgnoreCase("f")) {
return mapping.findForward("friendSet");
}
if (friendForm.getAction().equalsIgnoreCase("flist")) {
List flist = this.getFriendService().findFriends(us.getId(), friendForm.getIsBlack());
request.setAttribute("flist", flist);
return mapping.findForward("friendList");
}
if (friendForm.getAction().equalsIgnoreCase("new")) {
friendForm.setAction("add");
return mapping.findForward("friendAdd");
}
if (friendForm.getAction().equalsIgnoreCase("add")) { //添加好友或黑名单
MessageResources mr = this.getResources(request);
Locale locale = this.getLocale(request);
if (StringUtils.isBlank(friendForm.getFriendName())) { //用户名不能为空
this.getAjaxMessagesXML().setMessage(Constant.CODEID_FRIEND_FNAME_NULL,
mr.getMessage(locale, "error.friend.fname.null"));
this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
return mapping.findForward("ajaxjsp");
}
if (friendForm.getFriendName().equalsIgnoreCase(us.getUserName())) { //要添加的用户和自己一致
if (friendForm.getIsBlack() == 0) {
this.getAjaxMessagesXML().setMessage(Constant.CODEID_FRIEND_FNAME_ISME,
mr.getMessage(locale, "error.friend.fnameisme0"));
}
else {
this.getAjaxMessagesXML().setMessage(Constant.CODEID_FRIEND_FNAME_ISME,
mr.getMessage(locale, "error.friend.fnameisme1"));
}
this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
return mapping.findForward("ajaxjsp");
}
String friendComment = StringUtils.trimToEmpty(friendForm.getFriendComment());
if (BBSCSUtil.getSysCharsetStrLength(friendComment) > 1500) {
this.getAjaxMessagesXML().setMessage(Constant.CODEID_FRIEND_COMMENT_TOOLONG,
mr.getMessage(locale, "error.friend.comment.toolong",
"500"));
this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
return mapping.findForward("ajaxjsp");
}
UserInfo ui = this.getUserService().findUserInfoByUserName(friendForm.getFriendName());
if (ui == null) { //检查要添加的用户是否存在
this.getAjaxMessagesXML().setMessage(Constant.CODEID_FRIEND_USER_NOEXIST,
mr.getMessage(locale, "error.friend.usernoexist"));
this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
return mapping.findForward("ajaxjsp");
}
Friend f = this.getFriendService().findFriendByName(friendForm.getFriendName(), us.getId());
if (f != null) { //该用户已经存在
if (friendForm.getIsBlack() == 0) { //添加好友情况下
if (f.getIsBlack() == 1) { //该用户已经在黑名单中,转到好友名单中
f.setIsBlack(0);
try {
f = this.getFriendService().saveFriend(f); //保存用户
this.getFriendService().friendIDsToFile(us.getId()); //将用户列表写入文件
ui.setUserKnow(ui.getUserKnow() + 1); //增加用户人缘系数
this.getUserService().saveUserInfo(ui);
this.getAjaxMessagesXML().setMessage(Constant.CODEID_OK,
mr.getMessage(locale, "friend.add.ok"));
}
catch (BbscsException ex) {
logger.error(ex);
this.getAjaxMessagesXML().setMessage(Constant.CODEID_FRIEND_ADDFAILED,
mr.getMessage(locale, "error.friend.add.error"));
}
}
else { //该用户已经是好友
this.getAjaxMessagesXML().setMessage(Constant.CODEID_FRIEND_EXIST,
mr.getMessage(locale, "error.friend.userexist0"));
}
}
else { //添加黑名单情况
if (f.getIsBlack() == 0) { //该用户在好友名单中,转到黑名单
f.setIsBlack(1);
try {
f = this.getFriendService().saveFriend(f); //保存用户
this.getFriendService().friendIDsToFile(us.getId()); //将用户列表写入文件
ui.setUserKnow(ui.getUserKnow() - 1); //减少用户人缘系数
this.getUserService().saveUserInfo(ui);
this.getAjaxMessagesXML().setMessage(Constant.CODEID_OK,
mr.getMessage(locale, "friend.add.ok"));
}
catch (BbscsException ex) {
logger.error(ex);
this.getAjaxMessagesXML().setMessage(Constant.CODEID_FRIEND_ADDFAILED,
mr.getMessage(locale, "error.friend.add.error"));
}
}
else { //该用户已经在黑名单中
this.getAjaxMessagesXML().setMessage(Constant.CODEID_FRIEND_EXIST,
mr.getMessage(locale, "error.friend.userexist1"));
}
}
this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
return mapping.findForward("ajaxjsp");
}
if (friendForm.getIsBlack() == 0) { //添加好友情况下
if (ui.getAcceptFriend() == 0) { //对方拒绝加入好友
this.getAjaxMessagesXML().setMessage(Constant.CODEID_FRIEND_NOTACCEPT,
mr.getMessage(locale, "error.friend.usernotaccept"));
this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
return mapping.findForward("ajaxjsp");
}
}
f = this.getFriendFactory().getInstance(us.getId());
f.setFriendComment(friendComment);
f.setFriendID(ui.getId());
f.setFriendName(friendForm.getFriendName());
f.setIsBlack(friendForm.getIsBlack());
f.setUserID(us.getId());
f.setUserName(us.getUserName());
try {
f = this.getFriendService().saveFriend(f); //保存用户
this.getFriendService().friendIDsToFile(us.getId()); //将用户列表写入文件
if (friendForm.getIsBlack() == 0) { //添加好友情况下
ui.setUserKnow(ui.getUserKnow() + 1); //增加用户人缘系数
this.getUserService().saveUserInfo(ui);
}
else {
ui.setUserKnow(ui.getUserKnow() - 1); //减少用户人缘系数
this.getUserService().saveUserInfo(ui);
}
this.getAjaxMessagesXML().setMessage(Constant.CODEID_OK,
mr.getMessage(locale, "friend.add.ok"));
}
catch (BbscsException ex) {
logger.error(ex);
this.getAjaxMessagesXML().setMessage(Constant.CODEID_FRIEND_ADDFAILED,
mr.getMessage(locale, "error.friend.add.error"));
}
this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
return mapping.findForward("ajaxjsp");
}
if (friendForm.getAction().equalsIgnoreCase("del")) {
MessageResources mr = this.getResources(request);
Locale locale = this.getLocale(request);
Friend f = this.getFriendService().findFriendByID(friendForm.getId(), us.getId());
if (f != null) {
UserInfo ui = this.getUserService().findUserInfoById(f.getFriendID());
int isBlack = f.getIsBlack();
try {
this.getFriendService().removeFriend(f);
if (ui != null) {
if (isBlack == 0) {
ui.setUserKnow(ui.getUserKnow() - 1); //减少用户人缘系数
this.getUserService().saveUserInfo(ui);
}
else {
ui.setUserKnow(ui.getUserKnow() + 1); //增加用户人缘系数
this.getUserService().saveUserInfo(ui);
}
}
this.getAjaxMessagesXML().setMessage(Constant.CODEID_OK,
mr.getMessage(locale, "friend.del.ok"));
}
catch (BbscsException ex1) {
logger.error(ex1);
this.getAjaxMessagesXML().setMessage(Constant.CODEID_FRIEND_DELFAILED,
mr.getMessage(locale, "error.friend.del.error"));
}
}
else {
this.getAjaxMessagesXML().setMessage(Constant.CODEID_FRIEND_DELFAILED,
mr.getMessage(locale, "error.friend.del.error"));
}
this.setAjaxMessagesXMLRepuest(request, this.getAjaxMessagesXML());
return mapping.findForward("ajaxjsp");
}
return mapping.getInputForward();
}
public FriendService getFriendService() {
return friendService;
}
public FriendFactory getFriendFactory() {
return friendFactory;
}
public AjaxMessagesXML getAjaxMessagesXML() {
return ajaxMessagesXML;
}
public UserService getUserService() {
return userService;
}
public void setFriendService(FriendService friendService) {
this.friendService = friendService;
}
public void setFriendFactory(FriendFactory friendFactory) {
this.friendFactory = friendFactory;
}
public void setAjaxMessagesXML(AjaxMessagesXML ajaxMessagesXML) {
this.ajaxMessagesXML = ajaxMessagesXML;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?