|  | @ -1,305 +0,0 @@
 | 
	
		
			
				|  |  | package com.yihu.hos.monitor.services;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import com.mongodb.*;
 | 
	
		
			
				|  |  | import com.yihu.hos.core.datatype.DateUtil;
 | 
	
		
			
				|  |  | import com.yihu.hos.core.datatype.NumberUtil;
 | 
	
		
			
				|  |  | import com.yihu.hos.core.datatype.StringUtil;
 | 
	
		
			
				|  |  | import com.yihu.hos.web.framework.model.ActionResult;
 | 
	
		
			
				|  |  | import com.yihu.hos.web.framework.model.Result;
 | 
	
		
			
				|  |  | import org.json.JSONArray;
 | 
	
		
			
				|  |  | import org.json.JSONObject;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.data.mongodb.core.MongoOperations;
 | 
	
		
			
				|  |  | import org.springframework.data.mongodb.core.MongoTemplate;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import java.math.BigDecimal;
 | 
	
		
			
				|  |  | import java.util.Date;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | /**
 | 
	
		
			
				|  |  |  * Created by chenweida on 2016/1/27.
 | 
	
		
			
				|  |  |  */
 | 
	
		
			
				|  |  | @Service("MonitorService")
 | 
	
		
			
				|  |  | public class MonitorService {
 | 
	
		
			
				|  |  |     public static final String BEAN_ID = "MonitorService";
 | 
	
		
			
				|  |  |     public static final String envHealth = "envHealth";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private MongoOperations mongoOperations;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private Mongo mongo;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | //    public Result mapReduce(String beginTime, String endTime) {
 | 
	
		
			
				|  |  | //        DBCollection businessLogDB = mongoOperations.getCollection(mongoOperations
 | 
	
		
			
				|  |  | //                .getCollectionName(BusinessLog.class));
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        String map = "function(){emit(this.breadcrumbId, this.fireTime);}";
 | 
	
		
			
				|  |  | //        String reduce = "function(key, values){ return values[0];}";
 | 
	
		
			
				|  |  | //        String out = reduceTableName;
 | 
	
		
			
				|  |  | //        BasicDBObject queryObject = new BasicDBObject().append(QueryOperators.AND,
 | 
	
		
			
				|  |  | //                new BasicDBObject[]{
 | 
	
		
			
				|  |  | //                        new BasicDBObject().append("fireTime",
 | 
	
		
			
				|  |  | //                            new BasicDBObject().append(QueryOperators.GTE, DateUtil.toTimestamp(beginTime))),
 | 
	
		
			
				|  |  | //                        new BasicDBObject().append("fireTime",
 | 
	
		
			
				|  |  | //                                new BasicDBObject().append(QueryOperators.LT, DateUtil.toTimestamp(endTime)))});
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        MapReduceOutput mapReduceOutput = businessLogDB.mapReduce(map,
 | 
	
		
			
				|  |  | //                reduce.toString(), out, queryObject);
 | 
	
		
			
				|  |  | //        DBCollection resultColl = mapReduceOutput.getOutputCollection();
 | 
	
		
			
				|  |  | //        DBCursor cursor = resultColl.find();
 | 
	
		
			
				|  |  | //        String result = "";
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        while (cursor.hasNext()) {
 | 
	
		
			
				|  |  | //            result += cursor.next();
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //        return Result.success(result);
 | 
	
		
			
				|  |  | //    }
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //    public JSONObject aggregate(String beginTime, String endTime) {
 | 
	
		
			
				|  |  | //        DBCollection reduceDB = mongoOperations.getCollection(mongoOperations
 | 
	
		
			
				|  |  | //                .getCollectionName(ReduceResult.class));
 | 
	
		
			
				|  |  | //        BasicDBObject queryObject = new BasicDBObject().append(QueryOperators.AND,
 | 
	
		
			
				|  |  | //                new BasicDBObject[]{
 | 
	
		
			
				|  |  | //                        new BasicDBObject().append("value",
 | 
	
		
			
				|  |  | //                                new BasicDBObject().append(QueryOperators.GTE, DateUtil.toTimestamp(beginTime))),
 | 
	
		
			
				|  |  | //                        new BasicDBObject().append("value",
 | 
	
		
			
				|  |  | //                                new BasicDBObject().append(QueryOperators.LT, DateUtil.toTimestamp(endTime)))});
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        DBObject match = new BasicDBObject("$match", queryObject);
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        // Now the $group operation
 | 
	
		
			
				|  |  | //        DBObject groupFields = new BasicDBObject( "_id", new BasicDBObject("$minute", "$value"));
 | 
	
		
			
				|  |  | //        groupFields.put("pv", new BasicDBObject( "$sum", 1));
 | 
	
		
			
				|  |  | //        DBObject group = new BasicDBObject("$group", groupFields);
 | 
	
		
			
				|  |  | //
 | 
	
		
			
				|  |  | //        // build the $sort operation
 | 
	
		
			
				|  |  | //        DBObject sortFields =  new BasicDBObject( "_id", 1);
 | 
	
		
			
				|  |  | //        DBObject sort = new BasicDBObject("$sort", sortFields );
 | 
	
		
			
				|  |  | //        // run aggregation
 | 
	
		
			
				|  |  | //        AggregationOutput output = reduceDB.aggregate(match, group, sort);
 | 
	
		
			
				|  |  | //        String result = "";
 | 
	
		
			
				|  |  | //        for (DBObject dbObject : output.results()) {
 | 
	
		
			
				|  |  | //            result += dbObject.toString();
 | 
	
		
			
				|  |  | //        }
 | 
	
		
			
				|  |  | //        JSONObject jsonObject = new JSONObject(result);
 | 
	
		
			
				|  |  | //        return jsonObject;
 | 
	
		
			
				|  |  | //    }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Result getMonitorInfo(String table,String beginTime, String endTime) {
 | 
	
		
			
				|  |  |         mongoOperations = new MongoTemplate(mongo, envHealth);
 | 
	
		
			
				|  |  |         DBCollection envCollection = mongoOperations.getCollection(table);
 | 
	
		
			
				|  |  |         BasicDBObject queryObject = new BasicDBObject().append(QueryOperators.AND,
 | 
	
		
			
				|  |  |                 new BasicDBObject[]{
 | 
	
		
			
				|  |  |                         new BasicDBObject().append("create_time",
 | 
	
		
			
				|  |  |                                 new BasicDBObject().append(QueryOperators.GTE, DateUtil.toTimestamp(beginTime))),
 | 
	
		
			
				|  |  |                         new BasicDBObject().append("create_time",
 | 
	
		
			
				|  |  |                                 new BasicDBObject().append(QueryOperators.LT, DateUtil.toTimestamp(endTime)))});
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         JSONArray result = new JSONArray();
 | 
	
		
			
				|  |  |         DBCursor cursor = envCollection.find(queryObject);
 | 
	
		
			
				|  |  |         while(cursor.hasNext()) {
 | 
	
		
			
				|  |  |             DBObject dbObject = cursor.next();
 | 
	
		
			
				|  |  |             dbObject.removeField("_id");
 | 
	
		
			
				|  |  |             result.put(dbObject);
 | 
	
		
			
				|  |  |             System.out.println(dbObject.toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         ActionResult actionResult = new ActionResult();
 | 
	
		
			
				|  |  |         actionResult.setData(result);
 | 
	
		
			
				|  |  |         return actionResult;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public JSONArray getMonitorInfoTest(String table,String beginTime, String endTime) {
 | 
	
		
			
				|  |  |         mongoOperations = new MongoTemplate(mongo, envHealth);
 | 
	
		
			
				|  |  |         DBCollection envCollection = mongoOperations.getCollection(table);
 | 
	
		
			
				|  |  |         BasicDBObject queryObject = new BasicDBObject().append(QueryOperators.AND,
 | 
	
		
			
				|  |  |                 new BasicDBObject[]{
 | 
	
		
			
				|  |  |                         new BasicDBObject().append("create_time",
 | 
	
		
			
				|  |  |                                 new BasicDBObject().append(QueryOperators.GTE, DateUtil.toTimestamp(beginTime))),
 | 
	
		
			
				|  |  |                         new BasicDBObject().append("create_time",
 | 
	
		
			
				|  |  |                                 new BasicDBObject().append(QueryOperators.LT, DateUtil.toTimestamp(endTime)))});
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         JSONArray result = new JSONArray();
 | 
	
		
			
				|  |  |         DBCursor cursor = envCollection.find(queryObject);
 | 
	
		
			
				|  |  |         while(cursor.hasNext()) {
 | 
	
		
			
				|  |  |             DBObject dbObject = cursor.next();
 | 
	
		
			
				|  |  |             dbObject.removeField("_id");
 | 
	
		
			
				|  |  |             result.put(dbObject);
 | 
	
		
			
				|  |  |             System.out.println(dbObject.toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return result;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Result bandwidth(String beginTime, String endTime) {
 | 
	
		
			
				|  |  |         DBCollection businessLog = mongoOperations.getCollection(mongoOperations
 | 
	
		
			
				|  |  |                 .getCollectionName(BusinessLog.class));
 | 
	
		
			
				|  |  |         BasicDBObject queryObject = new BasicDBObject().append(QueryOperators.AND,
 | 
	
		
			
				|  |  |                 new BasicDBObject[]{
 | 
	
		
			
				|  |  |                         new BasicDBObject().append("fireTime",
 | 
	
		
			
				|  |  |                                 new BasicDBObject().append(QueryOperators.GTE, DateUtil.toTimestamp(beginTime))),
 | 
	
		
			
				|  |  |                         new BasicDBObject().append("fireTime",
 | 
	
		
			
				|  |  |                                 new BasicDBObject().append(QueryOperators.LT, DateUtil.toTimestamp(endTime)))});
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         DBObject match = new BasicDBObject("$match", queryObject);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // Now the $group operation
 | 
	
		
			
				|  |  |         DBObject groupFields = new BasicDBObject( "_id", "$breadcrumbId");
 | 
	
		
			
				|  |  |         groupFields.put("count", new BasicDBObject( "$sum", 1));
 | 
	
		
			
				|  |  |         groupFields.put("beginTime", new BasicDBObject( "$first", "$fireTimeSource"));
 | 
	
		
			
				|  |  |         groupFields.put("endTime", new BasicDBObject( "$last", "$fireTimeSource"));
 | 
	
		
			
				|  |  |         DBObject group = new BasicDBObject("$group", groupFields);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // build the $sort operation
 | 
	
		
			
				|  |  |         DBObject sortFields =  new BasicDBObject( "_id", 1);
 | 
	
		
			
				|  |  |         DBObject sort = new BasicDBObject("$sort", sortFields );
 | 
	
		
			
				|  |  |         // run aggregation
 | 
	
		
			
				|  |  |         AggregationOutput output = businessLog.aggregate(match, group, sort);
 | 
	
		
			
				|  |  |         Integer calls = 0;
 | 
	
		
			
				|  |  |         long interval = 0;
 | 
	
		
			
				|  |  |         for (DBObject dbObject : output.results()) {
 | 
	
		
			
				|  |  |             Integer count = Integer.parseInt(StringUtil.toString(dbObject.get("count")));
 | 
	
		
			
				|  |  |             if (count >= 2) {
 | 
	
		
			
				|  |  |                 calls++;
 | 
	
		
			
				|  |  |                 String begin = StringUtil.toString(dbObject.get("beginTime"));
 | 
	
		
			
				|  |  |                 String end = StringUtil.toString(dbObject.get("endTime"));
 | 
	
		
			
				|  |  |                 Date from = DateUtil.toTimestamp(begin, DateUtil.DEFAULT_YMDHMSDATE_FORMAT);
 | 
	
		
			
				|  |  |                 Date to = DateUtil.toTimestamp(end, DateUtil.DEFAULT_YMDHMSDATE_FORMAT);
 | 
	
		
			
				|  |  |                 interval += (to.getTime() - from.getTime())/1000;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         JSONObject result = new JSONObject();
 | 
	
		
			
				|  |  |         result.put("bandwidth", NumberUtil.divideBigDecimal(BigDecimal.valueOf(calls), BigDecimal.valueOf(interval)));
 | 
	
		
			
				|  |  |         return Result.success(result.toString());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Result qps(String beginTime, String endTime) {
 | 
	
		
			
				|  |  |         DBCollection businessLog = mongoOperations.getCollection(mongoOperations
 | 
	
		
			
				|  |  |                 .getCollectionName(BusinessLog.class));
 | 
	
		
			
				|  |  |         BasicDBObject queryObject = new BasicDBObject().append(QueryOperators.AND,
 | 
	
		
			
				|  |  |                 new BasicDBObject[]{
 | 
	
		
			
				|  |  |                         new BasicDBObject().append("fireTime",
 | 
	
		
			
				|  |  |                                 new BasicDBObject().append(QueryOperators.GTE, DateUtil.toTimestamp(beginTime))),
 | 
	
		
			
				|  |  |                         new BasicDBObject().append("fireTime",
 | 
	
		
			
				|  |  |                                 new BasicDBObject().append(QueryOperators.LT, DateUtil.toTimestamp(endTime)))});
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         DBObject match = new BasicDBObject("$match", queryObject);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // Now the $group operation
 | 
	
		
			
				|  |  |         DBObject groupFields = new BasicDBObject( "_id", "$breadcrumbId");
 | 
	
		
			
				|  |  |         groupFields.put("count", new BasicDBObject( "$sum", 1));
 | 
	
		
			
				|  |  |         groupFields.put("total", new BasicDBObject( "$first", "$totalServers"));
 | 
	
		
			
				|  |  |         groupFields.put("beginTime", new BasicDBObject( "$first", "$fireTimeSource"));
 | 
	
		
			
				|  |  |         groupFields.put("endTime", new BasicDBObject( "$last", "$fireTimeSource"));
 | 
	
		
			
				|  |  |         DBObject group = new BasicDBObject("$group", groupFields);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // build the $sort operation
 | 
	
		
			
				|  |  |         DBObject sortFields =  new BasicDBObject( "_id", 1);
 | 
	
		
			
				|  |  |         DBObject sort = new BasicDBObject("$sort", sortFields );
 | 
	
		
			
				|  |  |         // run aggregation
 | 
	
		
			
				|  |  |         AggregationOutput output = businessLog.aggregate(match, group, sort);
 | 
	
		
			
				|  |  |         Integer calls = 0;
 | 
	
		
			
				|  |  |         long interval = 0;
 | 
	
		
			
				|  |  |         for (DBObject dbObject : output.results()) {
 | 
	
		
			
				|  |  |             Integer count = Integer.parseInt(StringUtil.toString(dbObject.get("count")));
 | 
	
		
			
				|  |  |             if (count >= 2) {
 | 
	
		
			
				|  |  |                 Integer total = Integer.parseInt(StringUtil.toString(dbObject.get("total")));
 | 
	
		
			
				|  |  |                 if (total == count) {
 | 
	
		
			
				|  |  |                     calls++;
 | 
	
		
			
				|  |  |                     String begin = StringUtil.toString(dbObject.get("beginTime"));
 | 
	
		
			
				|  |  |                     String end = StringUtil.toString(dbObject.get("endTime"));
 | 
	
		
			
				|  |  |                     Date from = DateUtil.toTimestamp(begin, DateUtil.DEFAULT_YMDHMSDATE_FORMAT);
 | 
	
		
			
				|  |  |                     Date to = DateUtil.toTimestamp(end, DateUtil.DEFAULT_YMDHMSDATE_FORMAT);
 | 
	
		
			
				|  |  |                     interval += (to.getTime() - from.getTime())/1000;
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         JSONObject result = new JSONObject();
 | 
	
		
			
				|  |  |         result.put("qps", NumberUtil.divideBigDecimal(BigDecimal.valueOf(calls), BigDecimal.valueOf(interval)));
 | 
	
		
			
				|  |  |         return Result.success(result.toString());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Result usage(String beginTime, String endTime) {
 | 
	
		
			
				|  |  |         DBCollection businessLog = mongoOperations.getCollection(mongoOperations
 | 
	
		
			
				|  |  |                 .getCollectionName(BusinessLog.class));
 | 
	
		
			
				|  |  |         BasicDBObject queryObject = new BasicDBObject().append(QueryOperators.AND,
 | 
	
		
			
				|  |  |                 new BasicDBObject[]{
 | 
	
		
			
				|  |  |                         new BasicDBObject().append("fireTime",
 | 
	
		
			
				|  |  |                                 new BasicDBObject().append(QueryOperators.GTE, DateUtil.toTimestamp(beginTime))),
 | 
	
		
			
				|  |  |                         new BasicDBObject().append("fireTime",
 | 
	
		
			
				|  |  |                                 new BasicDBObject().append(QueryOperators.LT, DateUtil.toTimestamp(endTime)))});
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         DBObject match = new BasicDBObject("$match", queryObject);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // Now the $group operation
 | 
	
		
			
				|  |  |         DBObject groupFields = new BasicDBObject( "_id", "$breadcrumbId");
 | 
	
		
			
				|  |  |         groupFields.put("count", new BasicDBObject( "$sum", 1));
 | 
	
		
			
				|  |  |         groupFields.put("total", new BasicDBObject( "$first", "$totalServers"));
 | 
	
		
			
				|  |  |         DBObject group = new BasicDBObject("$group", groupFields);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // build the $sort operation
 | 
	
		
			
				|  |  |         DBObject sortFields =  new BasicDBObject( "_id", 1);
 | 
	
		
			
				|  |  |         DBObject sort = new BasicDBObject("$sort", sortFields );
 | 
	
		
			
				|  |  |         // run aggregation
 | 
	
		
			
				|  |  |         AggregationOutput output = businessLog.aggregate(match, group, sort);
 | 
	
		
			
				|  |  |         Integer successCount = 0;
 | 
	
		
			
				|  |  |         Integer failureCount = 0;
 | 
	
		
			
				|  |  |         for (DBObject dbObject : output.results()) {
 | 
	
		
			
				|  |  |             Integer total = Integer.parseInt(StringUtil.toString(dbObject.get("total")));
 | 
	
		
			
				|  |  |             Integer count = Integer.parseInt(StringUtil.toString(dbObject.get("count")));
 | 
	
		
			
				|  |  |             if (total == count) {
 | 
	
		
			
				|  |  |                 successCount++;
 | 
	
		
			
				|  |  |             } else {
 | 
	
		
			
				|  |  |                 failureCount++;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         JSONObject result = new JSONObject();
 | 
	
		
			
				|  |  |         result.put("totalCount", successCount + failureCount);
 | 
	
		
			
				|  |  |         result.put("successCount", successCount);
 | 
	
		
			
				|  |  |         result.put("failureCount", failureCount);
 | 
	
		
			
				|  |  |         return Result.success(result.toString());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public Result delay(String beginTime, String endTime) {
 | 
	
		
			
				|  |  |         DBCollection businessLog = mongoOperations.getCollection(mongoOperations
 | 
	
		
			
				|  |  |                 .getCollectionName(BusinessLog.class));
 | 
	
		
			
				|  |  |         BasicDBObject queryObject = new BasicDBObject().append(QueryOperators.AND,
 | 
	
		
			
				|  |  |                 new BasicDBObject[]{
 | 
	
		
			
				|  |  |                         new BasicDBObject().append("fireTime",
 | 
	
		
			
				|  |  |                                 new BasicDBObject().append(QueryOperators.GTE, DateUtil.toTimestamp(beginTime))),
 | 
	
		
			
				|  |  |                         new BasicDBObject().append("fireTime",
 | 
	
		
			
				|  |  |                                 new BasicDBObject().append(QueryOperators.LT, DateUtil.toTimestamp(endTime)))});
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         DBObject match = new BasicDBObject("$match", queryObject);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // Now the $group operation
 | 
	
		
			
				|  |  |         DBObject groupFields = new BasicDBObject( "_id", "$breadcrumbId");
 | 
	
		
			
				|  |  |         groupFields.put("count", new BasicDBObject( "$sum", 1));
 | 
	
		
			
				|  |  |         groupFields.put("beginTime", new BasicDBObject( "$first", "$fireTimeSource"));
 | 
	
		
			
				|  |  |         groupFields.put("endTime", new BasicDBObject( "$last", "$fireTimeSource"));
 | 
	
		
			
				|  |  |         DBObject group = new BasicDBObject("$group", groupFields);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         // build the $sort operation
 | 
	
		
			
				|  |  |         DBObject sortFields =  new BasicDBObject( "_id", 1);
 | 
	
		
			
				|  |  |         DBObject sort = new BasicDBObject("$sort", sortFields );
 | 
	
		
			
				|  |  |         // run aggregation
 | 
	
		
			
				|  |  |         AggregationOutput output = businessLog.aggregate(match, group, sort);
 | 
	
		
			
				|  |  |         Integer calls = 0;
 | 
	
		
			
				|  |  |         long interval = 0;
 | 
	
		
			
				|  |  |         for (DBObject dbObject : output.results()) {
 | 
	
		
			
				|  |  |             Integer count = Integer.parseInt(StringUtil.toString(dbObject.get("count")));
 | 
	
		
			
				|  |  |             if (count >= 2) {
 | 
	
		
			
				|  |  |                 calls++;
 | 
	
		
			
				|  |  |                 String begin = StringUtil.toString(dbObject.get("beginTime"));
 | 
	
		
			
				|  |  |                 String end = StringUtil.toString(dbObject.get("endTime"));
 | 
	
		
			
				|  |  |                 Date from = DateUtil.toTimestamp(begin, DateUtil.DEFAULT_YMDHMSDATE_FORMAT);
 | 
	
		
			
				|  |  |                 Date to = DateUtil.toTimestamp(end, DateUtil.DEFAULT_YMDHMSDATE_FORMAT);
 | 
	
		
			
				|  |  |                 interval += (to.getTime() - from.getTime())/1000;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         JSONObject result = new JSONObject();
 | 
	
		
			
				|  |  |         result.put("delay", NumberUtil.divideBigDecimal(BigDecimal.valueOf(interval), BigDecimal.valueOf(calls)));
 | 
	
		
			
				|  |  |         return Result.success(result.toString());
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |