示例#1
0
  public String xmlToTextClass(String xml) {
    TextMessage textMsg = null;
    try {
      JAXBContext context = JAXBContext.newInstance(TextMessage.class);
      Unmarshaller um = context.createUnmarshaller();
      ByteArrayInputStream is = new ByteArrayInputStream(xml.getBytes());
      textMsg = (TextMessage) um.unmarshal(is);
    } catch (JAXBException e) {
      e.printStackTrace();
    }
    String rspMsg = "";
    try {
      if (textMsg == null) {
        return null;
      } else {

        /*TradingTips tips = null;
        tradingTipsMessage.pushMsg1(tips);
        System.out.println("xmlToTextClass-OK-------------------->>");
        */

        WeixinMessageF weixinMessage = new WeixinMessageF(textMsg);

        weixinMessage.setContent(textMsg.getContent().trim());
        weiXinMessageFService.save(weixinMessage);
        if (WeiXinUtils.isNumeric(weixinMessage.getContent())) { // 判断用户输入信息是否是数字
          // 首先判断session是否过期
          weiXinSessionService.isSessionOver(
              weixinMessage.getFromUser(),
              StringUtils.parseDate2SecondStr(weixinMessage.getCreateDate()));
          ;
          WeiXinSessionPara wxsp =
              weiXinSessionParaService.findByMenuNo(
                  weixinMessage.getFromUser(), weixinMessage.getContent());
          if (wxsp != null) { // session_para中查询到相应的code
            SubscribeEvent subEvent = new SubscribeEvent();
            subEvent.setEventKey(wxsp.getKey());
            subEvent.setValue(wxsp.getValue());
            subEvent.setCreateTime(StringUtils.parseDate2SecondStr(weixinMessage.getCreateDate()));
            subEvent.setFromUserName(weixinMessage.getFromUser());
            subEvent.setToUserName(weixinMessage.getToUser());
            return webmsg0101.pushClickMessage(subEvent); // 推送信息给用户
          }
        }
        // 用户输入信息不是数字 匹配消息 显示给用户

        List<ArticleF> article = articleFService.findByDescription(weixinMessage.getContent());

        if (article == null || article.size() == 0) { // 未匹配到相关信息
          // error
          rspMsg = CF.error_val;
          return Reply.rspTextMsg(weixinMessage.getFromUser(), weixinMessage.getToUser(), rspMsg);
        } else if (article.size() > 0) { // 匹配到相关信息
          rspMsg += CF.common_val1; // "您要查找的全部消息如下:"
          rspMsg = queryKeywords(rspMsg, article, weixinMessage); // 生成带编号消息
          return Reply.rspTextMsg(weixinMessage.getFromUser(), weixinMessage.getToUser(), rspMsg);
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    return null;
  }