package net.tooan.ynpay.wechat.webapp.process; import net.tooan.ynpay.commons.YnpayJndiConstants; import net.tooan.ynpay.third.jfinal.ext.interceptor.ejb.EJBManager; import net.tooan.ynpay.third.jfinal.ext.interceptor.ejb.RemoteEJB; import net.tooan.ynpay.third.jfinal.log.Logger; import net.tooan.ynpay.wechat.agent.facade.WechatFacade; import net.tooan.ynpay.wechat.agent.helper.MsgTools; import net.tooan.ynpay.wechat.agent.helper.MsgType; import net.tooan.ynpay.wechat.agent.model.Msg; import javax.servlet.ServletInputStream; /** * Created with IntelliJ IDEA. * User: Jing * Date: 13-10-19 * Time: 下午10:30 */ public class BaseProcess { private static final Logger logger = Logger.getLogger(BaseProcess.class); @RemoteEJB(mappedName = YnpayJndiConstants.Mongo_Wechat_Facade_Remote) private WechatFacade facade; private static BaseProcess process = new BaseProcess(); public BaseProcess() { EJBManager.manager.setEJB(this); } public static Msg exec(ServletInputStream is) throws Exception { Msg msg = MsgTools.parse(is); // 将收到的信息保存到数据库 msg = process.facade.saveMsg(msg); Msg replyMsg; switch (MsgType._(msg.getType())) { case EVENT: replyMsg = EventProcess.exec(msg); break; case IMAGE: replyMsg = ImageProcess.exec(msg); break; case LINK: replyMsg = LinkProcess.exec(msg); break; case LOCATION: replyMsg = LocationProcess.exec(msg); break; default: replyMsg = TextProcess.exec(msg); break; } replyMsg.setToUserName(msg.getFromUserName()); replyMsg.setFromUserName(msg.getToUserName()); replyMsg.setCreateTime(MsgTools.getCurrentTime()); replyMsg.setSource(msg); // 将回复的信息保存到数据库 process.facade.saveMsg(replyMsg); return replyMsg; } }