Esempio n. 1
0
  public void checkAlipay(Date start, Date end) {
    try {
      Map<Date, AlipayBizPo> alipayMap = getAlipayBizPoByTime(start, end);
      if (alipayMap == null) {
        return;
      }

      Map<Date, AlipayBizPo> taobaoMap = new HashMap<Date, AlipayBizPo>();
      String appName = "tradeplatform";
      String key = "tp交易相关总量`P1-trade_create";
      // 获取csp监控的数据
      Map<String, Map<String, Object>> cspQuerymap = QueryUtil.querySingleRealTime(appName, key);

      for (Map.Entry<String, Map<String, Object>> entry : cspQuerymap.entrySet()) {
        if (entry.getValue() == null) {
          continue;
        }
        AlipayBizPo po = new AlipayBizPo();
        Map<String, Object> tMap = entry.getValue();
        po.setCreateSuccess((Integer) tMap.get("success"));
        po.setCreateTotal((Integer) tMap.get("total"));
        taobaoMap.put(new Date(Long.parseLong(entry.getKey())), po);
      }

      List<CspTimeKeyAlarmRecordPo> list = new ArrayList<CspTimeKeyAlarmRecordPo>();
      for (Map.Entry<Date, AlipayBizPo> entry : alipayMap.entrySet()) {
        Date alipayTime = entry.getKey();
        Date theMostNearTaobaoTime = TimeUtil.getTheMostNearTime(alipayTime, taobaoMap.keySet());
        AlipayBizPo taobaoData = taobaoMap.get(theMostNearTaobaoTime);
        if (taobaoData == null) continue;
        if (!compareIfNear(taobaoData, entry.getValue())) {
          // /插入一条TP的告警记录
          CspTimeKeyAlarmRecordPo po = new CspTimeKeyAlarmRecordPo();
          po.setMode_name("阀值");
          po.setKey_scope("APP");
          po.setApp_name("tradeplatform");
          po.setKey_name("到支付宝的请求量对比");
          po.setProperty_name("count");
          po.setAlarm_cause("到支付宝的请求量与接收量不匹配");
          po.setAlarm_time(new Timestamp(alipayTime.getTime()));
          po.setAlarm_value(
              "t=" + taobaoData.getCreateTotal() + ",a=" + entry.getValue().getCreateTotal());
          po.setIp("172.24.168.111"); // 随意写的一台tp机器的ip
          list.add(po);
        }
      }
      if (CollectionUtil.isNotEmpty(list)) {
        CspTimeKeyAlarmRecordAo.get().insert(list);
      }

    } catch (Exception e) {
      logger.warn("checkAlipay exception,start=" + start + ",end=" + end, e);
    }
  }
Esempio n. 2
0
  /**
   * 支付宝返回的数据顺序与格式确定,因此直接写成固定的
   *
   * @param jsonArray
   * @return
   */
  private AlipayBizPo getAlipayBizPoFromJsonArray(JSONArray jsonArray) {
    for (int i = 0; i < jsonArray.size(); i++) {
      if (Float.parseFloat(jsonArray.get(i).toString()) == 0) {
        return null;
      }
    }
    AlipayBizPo alipayBizDo = new AlipayBizPo();
    alipayBizDo.setCreateSuccess(Integer.parseInt(jsonArray.get(0).toString()));
    alipayBizDo.setCreateTotal(Integer.parseInt(jsonArray.get(1).toString()));
    alipayBizDo.setCreateTime(Float.parseFloat(jsonArray.get(2).toString()));

    alipayBizDo.setPaySuccess(Integer.parseInt(jsonArray.get(3).toString()));
    alipayBizDo.setPayTotal(Integer.parseInt(jsonArray.get(4).toString()));
    alipayBizDo.setPayTime(Float.parseFloat(jsonArray.get(5).toString()));

    alipayBizDo.setSendSuccess(Integer.parseInt(jsonArray.get(6).toString()));
    alipayBizDo.setSendTotal(Integer.parseInt(jsonArray.get(7).toString()));
    alipayBizDo.setSendTime(Float.parseFloat(jsonArray.get(8).toString()));

    alipayBizDo.setConfirmSuccess(Integer.parseInt(jsonArray.get(9).toString()));
    alipayBizDo.setConfirmTotal(Integer.parseInt(jsonArray.get(10).toString()));
    alipayBizDo.setConfirmTime(Float.parseFloat(jsonArray.get(11).toString()));
    return alipayBizDo;
  }