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); } }
/** * 支付宝返回的数据顺序与格式确定,因此直接写成固定的 * * @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; }