@Override
  public String execute(HttpServletRequest request, JSONObject requestJson)
      throws JMSException, WeChatException, ConnectionFailedException, AccessTokenException,
          UnsupportedEncodingException, GasSafeException {
    super.execute(request, requestJson);

    String respXml = null;
    // 发送方帐号
    String fromUserName = requestJson.getString(Event.FROM_USER_NAME);
    // 开发者微信号
    String toUserName = requestJson.getString(Event.TO_USER_NAME);

    String content = requestJson.getString("Content").trim().toUpperCase();

    String queryCmd = null;
    String queryType = null;

    String regQueryCmd =
        "^\\" + Query.SEPARATOR + "([^" + Query.SEPARATOR + "]+)\\" + Query.SEPARATOR;

    Pattern p = Pattern.compile(regQueryCmd);
    Matcher m = p.matcher(content);
    while (m.find()) {
      queryCmd = m.group(1);
      queryType = QUERY_CMD_TYPE.get(queryCmd);
    }

    TextMessage message = new TextMessage();

    message.setToUserName(fromUserName);
    message.setFromUserName(toUserName);
    message.setCreateTime(new Date().getTime());
    message.setMsgType(MessageService.RESP_MESSAGE_TYPE_TEXT);

    if (null != queryType) {
      StringBuffer buffer = new StringBuffer();
      // 将搜索字符及后面的+、空格、-等特殊符号去掉
      String keyWord =
          content.replaceAll(
              "^"
                  + Query.SEPARATOR
                  + queryCmd
                  + Query.SEPARATOR
                  + Query.QUERY_LIST
                  + Query.SEPARATOR
                  + "[\\+ ~!@#%^-_=]?",
              "");

      Map<String, String> params = new HashMap<String, String>();
      params.put("uName", keyWord);
      params.put("qyType", queryType);

      String response =
          GasHttpClientUtil.gasPost(
              "ccstWeChatGetDWList.htm", params, CharEncoding.UTF_8, fromUserName);
      if (SocketFailCode.ERR_CODE_LENGTH == response.length()) {
        buffer.append("系统请求socket出现异常:").append(response);
      } else {
        CompanyListResMsg retMsg = new CompanyListResMsg();
        JSONObject object = JSONObject.fromObject(response);

        if (0 != (int) object.get(WebSocketResFiled.ERROR_CODE)) {
          buffer.append("系统请求socket出现异常:").append(object.get(WebSocketResFiled.ERROR_CODE));
        } else {
          JsonConfig jsonConfig = new JsonConfig();
          jsonConfig.setRootClass(CompanyListResMsg.class);
          Map<String, Class> classMap = new HashMap<String, Class>();
          classMap.put("result", CompanyListResult.class);
          jsonConfig.setClassMap(classMap);
          retMsg = (CompanyListResMsg) JSONObject.toBean(object, jsonConfig);

          buffer.append("单位列表:").append(Const.LINE_SEPARATOR);
          buffer.append(Const.LINE_SEPARATOR);
          for (int i = 0; i < retMsg.getResult().size(); i++) {
            buffer
                .append(i + 1 + "." + retMsg.getResult().get(i).getUnitName())
                .append(Const.LINE_SEPARATOR);
          }
        }
      }
      message.setContent(buffer.toString());
    } else {
      message.setContent("输入有误! ");
    }

    // 将消息对象转换成xml
    respXml = MessageService.messageToXml(message);

    return respXml;
  }