Update MessageAction.java

This commit is contained in:
远方夕阳 2015-06-17 11:50:42 +08:00
parent 8218a21b03
commit b5ae2b4ac2

View File

@ -1,123 +1,122 @@
package com.farsunset.ichat.api.action;
package com.farsunset.ichat.api.action;
import java.util.HashMap;
import java.util.HashMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.struts2.ServletActionContext;
import org.apache.struts2.ServletActionContext; import org.springframework.web.bind.ServletRequestBindingException;
import org.springframework.web.bind.ServletRequestBindingException;
import com.farsunset.cim.nio.mutual.Message;
import com.farsunset.cim.nio.mutual.Message; import com.farsunset.ichat.cim.push.DefaultMessagePusher;
import com.farsunset.ichat.cim.push.DefaultMessagePusher; import com.farsunset.ichat.cim.push.SystemMessagePusher;
import com.farsunset.ichat.cim.push.SystemMessagePusher; import com.farsunset.ichat.common.util.Constants;
import com.farsunset.ichat.common.util.Constants; import com.farsunset.ichat.common.util.ContextHolder;
import com.farsunset.ichat.common.util.ContextHolder; import com.google.gson.Gson;
import com.google.gson.Gson; import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.ModelDriven;
/**
/** *
* * @author farsunset (3979434@qq.com)
* @author farsunset (3979434@qq.com) */
*/ public class MessageAction extends ActionSupport implements ModelDriven<Message>{
public class MessageAction extends ActionSupport implements ModelDriven<Message>{
/**
/** *
* */
*/ private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1L; Message message = new Message();
Message message = new Message();
/**
/** * 关于http参数获取 struts2 的模型驱动 比如 http 参数 sender=xiaomao&receiver=xiaogou
* 关于http参数获取 struts2 的模型驱动 比如 http 参数 sender=xiaomao&receiver=xiaogou * struts自动会将参数的值 存入getModel()返回的对象的对应属性中即xiaomao会存入message.sender属性,xiaogou会存入message.receiver属性
* struts自动会将参数的值 存入getModel()返回的对象的对应属性中即xiaomao会存入message.sender属性,xiaogou会存入message.receiver属性 * 省去了request.getParameter("sender")方式获取参数如果参数名在getModel()返回的对象中不存在则需要用request.getParameter()获取
* 省去了request.getParameter("sender")方式获取参数如果参数名在getModel()返回的对象中不存在则需要用request.getParameter()获取 * 其他相关*Action.java中 同理这里做统一说明!
* 其他相关*Action.java中 同理这里做统一说明! */
*/ public String send() throws Exception {
public String send() throws Exception {
HashMap<String,Object> datamap = new HashMap<String,Object>();
HashMap<String,Object> datamap = new HashMap<String,Object>(); HashMap<String,String> data = new HashMap<String,String>();
HashMap<String,String> data = new HashMap<String,String>(); ServletActionContext.getResponse().setContentType("text/json;charset=UTF-8");
ServletActionContext.getResponse().setContentType("text/json;charset=UTF-8"); datamap.put("code", 200);
datamap.put("code", 200);
try{
try{
checkParams();
checkParams();
if(Constants.MessageType.TYPE_2.equals(message.getType()))
if(Constants.MessageType.TYPE_2.equals(message.getType())) {
{ //向客户端 发送消息
//向客户端 发送消息 ContextHolder.getBean(SystemMessagePusher.class).pushMessageToUser(message);
ContextHolder.getBean(SystemMessagePusher.class).pushMessageToUser(message); }else
}else {
{ //向客户端 发送消息
//向客户端 发送消息 ContextHolder.getBean("messagePusher").pushMessageToUser(message);
ContextHolder.getBean(DefaultMessagePusher.class).pushMessageToUser(message); }
}
data.put("id", message.getMid());
data.put("id", message.getMid()); data.put("createTime", String.valueOf(message.getTimestamp()));
data.put("createTime", String.valueOf(message.getTimestamp())); datamap.put("data", data);
datamap.put("data", data); }catch(Exception e){
}catch(Exception e){
datamap.put("code", 500);
datamap.put("code", 500); e.printStackTrace();
e.printStackTrace(); }
}
ServletActionContext.getResponse().getWriter().print(new Gson().toJson(datamap));
ServletActionContext.getResponse().getWriter().print(new Gson().toJson(datamap)); return null;
return null; }
}
/**
/** * 文件由客户端发往阿里云 OSS 存储
* 文件由客户端发往阿里云 OSS 存储 * @param messageServiceImpl
* @param messageServiceImpl */
*/ /* private void fileHandler(Message mo, HttpServletRequest request) throws IOException
/* private void fileHandler(Message mo, HttpServletRequest request) throws IOException {
{ if(request instanceof MultiPartRequestWrapper){
if(request instanceof MultiPartRequestWrapper){ MultiPartRequestWrapper pr = (MultiPartRequestWrapper) request;
MultiPartRequestWrapper pr = (MultiPartRequestWrapper) request; if(pr.getFiles("file")!=null)
if(pr.getFiles("file")!=null) {
{ File file = pr.getFiles("file")[0];
File file = pr.getFiles("file")[0];
String fileType = request.getParameter("fileType");
String fileType = request.getParameter("fileType"); String dir = dirMap.get(fileType);
String dir = dirMap.get(fileType); if(StringUtils.isEmpty(dir))
if(StringUtils.isEmpty(dir)) {
{ throw new IllegalArgumentException("fileType:" +fileType+" 未定义" );
throw new IllegalArgumentException("fileType:" +fileType+" 未定义" );
}
} String path = request.getSession().getServletContext().getRealPath(dir);
String path = request.getSession().getServletContext().getRealPath(dir); String uuid=UUID.randomUUID().toString().replaceAll("-", "");
String uuid=UUID.randomUUID().toString().replaceAll("-", ""); File des = new File(path+"/"+uuid);
File des = new File(path+"/"+uuid); FileUtil.copyFile(file, des);
FileUtil.copyFile(file, des); mo.setFile(dir+"/"+uuid);
mo.setFile(dir+"/"+uuid); mo.setFileType(fileType);
mo.setFileType(fileType); }
} }
}
}*/
}*/
private void checkParams() throws ServletRequestBindingException
private void checkParams() throws ServletRequestBindingException {
{
if(StringUtils.isEmpty(message.getReceiver()))
if(StringUtils.isEmpty(message.getReceiver())) {
{ throw new IllegalArgumentException("receiver 不能为空!");
throw new IllegalArgumentException("receiver 不能为空!");
}
} }
}
@Override
@Override public Message getModel() {
public Message getModel() { // TODO Auto-generated method stub
// TODO Auto-generated method stub return message;
return message; }
}
}
}