11.5.4 CoreService类的实现

CoreService的实现比较简单,主要就是接收用户发送的文本消息,然后调用ChatService类的chat()方法进行处理。CoreService类的代码如下:

  1. package org.liufeng.course.service;
  2.  
  3. import java.util.Date;
  4. import java.util.Map;
  5. import javax.servlet.http.HttpServletRequest;
  6. import org.liufeng.course.message.resp.TextMessage;
  7. import org.liufeng.course.util.MessageUtil;
  8.  
  9. /**
  10. * 核心服务类
  11. *
  12. * @author liufeng
  13. * @date 2013-12-02
  14. */
  15. public class CoreService {
  16. /**
  17. * 处理微信发来的请求
  18. *
  19. * @param request
  20. * @return xml
  21. */
  22. public static String processRequest(HttpServletRequest request) {
  23. // xml格式的消息数据
  24. String respXml = null;
  25. // 默认返回的文本消息内容
  26. String respContent = "发送任意文本,我们开始聊天吧!";
  27. try {
  28. // 调用parseXml方法解析请求消息
  29. Map<String, String> requestMap = MessageUtil.parseXml(request);
  30. // 发送方账号
  31. String fromUserName = requestMap.get("FromUserName");
  32. // 开发者微信号
  33. String toUserName = requestMap.get("ToUserName");
  34. // 消息类型
  35. String msgType = requestMap.get("MsgType");
  36. // 消息创建时间
  37. String createTime = requestMap.get("CreateTime");
  38.  
  39. // 文本消息
  40. if (msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)) {
  41. String content = requestMap.get("Content");
  42. respContent = ChatService.chat(fromUserName, createTime, content);
  43. }
  44. // 回复文本消息
  45. TextMessage textMessage = new TextMessage();
  46. textMessage.setToUserName(fromUserName);
  47. textMessage.setFromUserName(toUserName);
  48. textMessage.setCreateTime(new Date().getTime());
  49. textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);
  50. textMessage.setContent(respContent);
  51. // 将文本消息对象转换成XML
  52. respXml = MessageUtil.messageToXml(textMessage);
  53. } catch (Exception e) {
  54. e.printStackTrace();
  55. }
  56. return respXml;
  57. }
  58. }