diff options
| author | tanghao <[email protected]> | 2024-11-11 10:59:27 +0800 |
|---|---|---|
| committer | tanghao <[email protected]> | 2024-11-11 10:59:27 +0800 |
| commit | 083efa13a2946a72dd0987f5aa2125e951f63148 (patch) | |
| tree | 296d0d74c5ba4bbb13289edb0ac6f0af147e9402 | |
| parent | f62603a98fc9cac60be69a5d9e96b4ce20fcd9ca (diff) | |
fix: location相关接口内容
| -rw-r--r-- | cn-admin/src/main/resources/db/R__AZ_magic_api_file.sql | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/cn-admin/src/main/resources/db/R__AZ_magic_api_file.sql b/cn-admin/src/main/resources/db/R__AZ_magic_api_file.sql index 22f38c2..f18dbf8 100644 --- a/cn-admin/src/main/resources/db/R__AZ_magic_api_file.sql +++ b/cn-admin/src/main/resources/db/R__AZ_magic_api_file.sql @@ -396,12 +396,12 @@ INSERT INTO `magic_api_file` VALUES ('/api/v1/locationIntelligence/', 'this is d INSERT INTO `magic_api_file` VALUES ('/api/v1/locationIntelligence/group.json', '{\r\n \"properties\" : { },\r\n \"id\" : \"1b2392073eee441f9c7a12a815bf3eae\",\r\n \"name\" : \"locationIntelligence\",\r\n \"type\" : \"api\",\r\n \"parentId\" : \"67d55368d07840ca80c04d7ade154d76\",\r\n \"path\" : \"/locationIntelligence\",\r\n \"createTime\" : 1708672055580,\r\n \"updateTime\" : null,\r\n \"createBy\" : \"admin\",\r\n \"updateBy\" : null,\r\n \"paths\" : [ ],\r\n \"options\" : [ ]\r\n}'); INSERT INTO `magic_api_file` VALUES ('/api/v1/locationIntelligence/Location人口统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"1ff8fd7aac0544a49bdc219af1e9b957\",\r\n \"script\" : null,\r\n \"groupId\" : \"1b2392073eee441f9c7a12a815bf3eae\",\r\n \"name\" : \"Location人口统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1709695175988,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/population/density\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"level\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : null,\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : null\r\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport \'@/pre/timeHandleNone\' as timeHandle;\r\nimport \'@/post/object\' as postHandle;\r\nimport \'@/public/postGalaxyResult\' as postGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"level\":level\r\n}\r\ntimeHandle(parameter);\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT <#if level?default(\'\')?trim? length gt 0 && level == 2> second_location <#elseif level?default(\'\')?trim? length gt 0 && level == 3> third_location <#else> first_location </#if> AS hexId,COUNT(DISTINCT(subscriber_id)) AS number,COUNT(*) AS hitCount FROM location_subscriber WHERE stat_time >= ${startTime} AND stat_time < ${endTime} GROUP BY <#if level?default(\'\')?trim? length gt 0 && level == 2> second_location <#elseif level?default(\'\')?trim? length gt 0 && level == 3> third_location <#else> first_location </#if>\\\",\\r\\n \\\"option\\\": \\\"real_time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1LocationIntelligencePopulationDensity\",q,parameter);\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(result,HashMap.class);\r\nvar galaxyRes = postGalaxyResult(res);\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\ngalaxyRes.msg=\'success\';\r\nreturn galaxyRes;'); INSERT INTO `magic_api_file` VALUES ('/api/v1/locationIntelligence/Location关注用户状态.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"f534d0e0a5994502a515210df19cda89\",\r\n \"script\" : null,\r\n \"groupId\" : \"1b2392073eee441f9c7a12a815bf3eae\",\r\n \"name\" : \"Location关注用户状态\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1709694935085,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/followed/status\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"2024-01-01 00:00:00\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"2025-01-01 00:00:00\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"subscriberIds\",\r\n \"value\" : \"gray6411\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"level\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ {\r\n \"name\" : \"cn-Authorization\",\r\n \"value\" : \"1a653ea0-d39b-4246-94b0-1ba95db4b6a7\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"code\\\": 999,\\n \\\"time\\\": \\\"2024-02-27 09:10:56\\\",\\n \\\"message\\\": \\\"400 null at Row:13~13,Col:32~37\\\\n\\\\nvar galaxyResult = httpRequest.post().getBody();\\\\r\\\\n ^^^^^^ \\\"\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : null\r\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport \'@/pre/timeHandleNone\' as timeHandle;\r\nimport \'@/post/object\' as postHandle;\r\nimport \'@/public/postGalaxyResult\' as postGalaxyResult;\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"subscriberIds\":subscriberIds,\r\n \"level\":level\r\n}\r\ntimeHandle(parameter);\r\nprintln(parameter);\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"SELECT subscriber_id AS subscriber_id,anyLast(<#if level?default(\'\')?trim? length gt 0 && level == 2> second_location <#elseif level?default(\'\')?trim? length gt 0 && level == 3> third_location <#else> first_location </#if>) AS hexId,anyLast(subscriber_longitude) AS subscriberLongitude, anyLast(subscriber_latitude) AS subscriberLatitude,anyLast(imei) AS imei,anyLast(imsi) AS imsi,anyLast(phone_number) AS phone_number,anyLast(apn) AS apn FROM location_subscriber WHERE stat_time >= ${startTime} AND stat_time < ${endTime} AND subscriber_id IN (<#if subscriberIds?default(\'\')?trim? length gt 0> ${subscriberIds} </#if>) GROUP BY subscriber_id\\\",\\\"option\\\":\\\"real_time\\\",\\\"format\\\":\\\"json\\\"}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1LocationIntelligenceFollowedStatus\",q,parameter);\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(result,HashMap.class);\r\nvar galaxyRes = postGalaxyResult(res);\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\n\r\nreturn galaxyRes;'); -INSERT INTO `magic_api_file` VALUES ('/api/v1/locationIntelligence/Location列表.ms', '{\n \"properties\" : { },\n \"id\" : \"e2721e2841104ff885693d31fbc4abd1\",\n \"script\" : null,\n \"groupId\" : \"1b2392073eee441f9c7a12a815bf3eae\",\n \"name\" : \"Location列表\",\n \"createTime\" : null,\n \"updateTime\" : 1716369232406,\n \"lock\" : null,\n \"createBy\" : \"admin\",\n \"updateBy\" : null,\n \"path\" : \"/list\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"0\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"111809020488\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"params\",\n \"value\" : \"\",\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"pageSize\",\n \"value\" : \"10\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"pageNo\",\n \"value\" : \"1\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"isFollowed\",\n \"value\" : \"0\",\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ {\n \"name\" : \"cn-Authorization\",\n \"value\" : \"1a653ea0-d39b-4246-94b0-1ba95db4b6a7\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"message\\\": \\\"OK\\\",\\n \\\"request_id\\\": \\\"bbc2a2ed-9464-43e9-a469-745b480937df\\\",\\n \\\"success\\\": true,\\n \\\"code\\\": \\\"20000666\\\",\\n \\\"job\\\": null,\\n \\\"output_mode\\\": \\\"json\\\",\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 162,\\n \\\"rows_read\\\": 173656,\\n \\\"bytes_read\\\": 22696313,\\n \\\"result_bytes\\\": 1795,\\n \\\"result_rows\\\": 10\\n },\\n \\\"meta\\\": null,\\n \\\"data\\\": [\\n {\\n \\\"subscriberId\\\": \\\"subscriberTest888\\\",\\n \\\"imei\\\": \\\"\\\",\\n \\\"imsi\\\": \\\"\\\",\\n \\\"phoneNumber\\\": \\\"\\\",\\n \\\"apn\\\": \\\"\\\",\\n \\\"hitCount\\\": 32194,\\n \\\"longitude\\\": 116.375427,\\n \\\"latitude\\\": 39.920883,\\n \\\"active\\\": 1,\\n \\\"isFollowed\\\": 0,\\n \\\"country\\\": \\\"China\\\",\\n \\\"superAdministrativeArea\\\": \\\"Beijing\\\",\\n \\\"administrativeArea\\\": \\\"Beijing\\\"\\n },\\n {\\n \\\"subscriberId\\\": \\\"test6440\\\",\\n \\\"imei\\\": \\\"8626070583028756\\\",\\n \\\"imsi\\\": \\\"460045157000616\\\",\\n \\\"phoneNumber\\\": \\\"923335888178\\\",\\n \\\"apn\\\": \\\"www.lytest.com\\\",\\n \\\"hitCount\\\": 23058,\\n \\\"longitude\\\": 116.37787,\\n \\\"latitude\\\": 39.942691,\\n \\\"active\\\": 1,\\n \\\"isFollowed\\\": 0,\\n \\\"country\\\": \\\"China\\\",\\n \\\"superAdministrativeArea\\\": \\\"Beijing\\\",\\n \\\"administrativeArea\\\": \\\"Beijing\\\"\\n },\\n {\\n \\\"subscriberId\\\": \\\"gwz666\\\",\\n \\\"imei\\\": \\\"3782220192386544\\\",\\n \\\"imsi\\\": \\\"347939889320011\\\",\\n \\\"phoneNumber\\\": \\\"234999090909\\\",\\n \\\"apn\\\": \\\"ufsgwz.sfa\\\",\\n \\\"hitCount\\\": 21235,\\n \\\"longitude\\\": 116.384354,\\n \\\"latitude\\\": 39.935303,\\n \\\"active\\\": 1,\\n \\\"isFollowed\\\": 0,\\n \\\"country\\\": \\\"China\\\",\\n \\\"superAdministrativeArea\\\": \\\"Beijing\\\",\\n \\\"administrativeArea\\\": \\\"Beijing\\\"\\n },\\n {\\n \\\"subscriberId\\\": \\\"gary6411\\\",\\n \\\"imei\\\": \\\"357629170016411\\\",\\n \\\"imsi\\\": \\\"410035141482611\\\",\\n \\\"phoneNumber\\\": \\\"923335838242\\\",\\n \\\"apn\\\": \\\"gary.gary\\\",\\n \\\"hitCount\\\": 16708,\\n \\\"longitude\\\": 116.384354,\\n \\\"latitude\\\": 39.935303,\\n \\\"active\\\": 1,\\n \\\"isFollowed\\\": 0,\\n \\\"country\\\": \\\"China\\\",\\n \\\"superAdministrativeArea\\\": \\\"Beijing\\\",\\n \\\"administrativeArea\\\": \\\"Beijing\\\"\\n },\\n {\\n \\\"subscriberId\\\": \\\"subscriberTest444\\\",\\n \\\"imei\\\": \\\"\\\",\\n \\\"imsi\\\": \\\"\\\",\\n \\\"phoneNumber\\\": \\\"\\\",\\n \\\"apn\\\": \\\"\\\",\\n \\\"hitCount\\\": 14247,\\n \\\"longitude\\\": 116.38298,\\n \\\"latitude\\\": 39.934273,\\n \\\"active\\\": 1,\\n \\\"isFollowed\\\": 0,\\n \\\"country\\\": \\\"China\\\",\\n \\\"superAdministrativeArea\\\": \\\"Beijing\\\",\\n \\\"administrativeArea\\\": \\\"Beijing\\\"\\n },\\n {\\n \\\"subscriberId\\\": \\\"test6433\\\",\\n \\\"imei\\\": \\\"357629170016433\\\",\\n \\\"imsi\\\": \\\"41003514146433\\\",\\n \\\"phoneNumber\\\": \\\"923335886434\\\",\\n \\\"apn\\\": \\\"www.6433test.com\\\",\\n \\\"hitCount\\\": 13195,\\n \\\"longitude\\\": 116.39328,\\n \\\"latitude\\\": 39.898911,\\n \\\"active\\\": 1,\\n \\\"isFollowed\\\": 0,\\n \\\"country\\\": \\\"China\\\",\\n \\\"superAdministrativeArea\\\": \\\"Beijing\\\",\\n \\\"administrativeArea\\\": \\\"Beijing\\\"\\n },\\n {\\n \\\"subscriberId\\\": \\\"test6431\\\",\\n \\\"imei\\\": \\\"357629170016431\\\",\\n \\\"imsi\\\": \\\"41003514146431\\\",\\n \\\"phoneNumber\\\": \\\"923335886431\\\",\\n \\\"apn\\\": \\\"www.6431test.com\\\",\\n \\\"hitCount\\\": 8428,\\n \\\"longitude\\\": 116.387807,\\n \\\"latitude\\\": 39.900607,\\n \\\"active\\\": 1,\\n \\\"isFollowed\\\": 0,\\n \\\"country\\\": \\\"China\\\",\\n \\\"superAdministrativeArea\\\": \\\"Beijing\\\",\\n \\\"administrativeArea\\\": \\\"Beijing\\\"\\n },\\n {\\n \\\"subscriberId\\\": \\\"Mobilink\\\",\\n \\\"imei\\\": \\\"356352086021040\\\",\\n \\\"imsi\\\": \\\"410072872466046\\\",\\n \\\"phoneNumber\\\": \\\"923212016648\\\",\\n \\\"apn\\\": \\\"warid\\\",\\n \\\"hitCount\\\": 8223,\\n \\\"longitude\\\": 116.372452,\\n \\\"latitude\\\": 39.913832,\\n \\\"active\\\": 1,\\n \\\"isFollowed\\\": 0,\\n \\\"country\\\": \\\"China\\\",\\n \\\"superAdministrativeArea\\\": \\\"Beijing\\\",\\n \\\"administrativeArea\\\": \\\"Beijing\\\"\\n },\\n {\\n \\\"subscriberId\\\": \\\"test6434\\\",\\n \\\"imei\\\": \\\"357629170016434\\\",\\n \\\"imsi\\\": \\\"41003514146434\\\",\\n \\\"phoneNumber\\\": \\\"923335886434\\\",\\n \\\"apn\\\": \\\"www.6434test.com\\\",\\n \\\"hitCount\\\": 7448,\\n \\\"longitude\\\": 116.370041,\\n \\\"latitude\\\": 39.944283,\\n \\\"active\\\": 1,\\n \\\"isFollowed\\\": 0,\\n \\\"country\\\": \\\"China\\\",\\n \\\"superAdministrativeArea\\\": \\\"Beijing\\\",\\n \\\"administrativeArea\\\": \\\"Beijing\\\"\\n },\\n {\\n \\\"subscriberId\\\": \\\"test6438\\\",\\n \\\"imei\\\": \\\"357629192166438\\\",\\n \\\"imsi\\\": \\\"410031921686438\\\",\\n \\\"phoneNumber\\\": \\\"921921686438\\\",\\n \\\"apn\\\": \\\"statistics.sfa\\\",\\n \\\"hitCount\\\": 5850,\\n \\\"longitude\\\": 116.374113,\\n \\\"latitude\\\": 39.943599,\\n \\\"active\\\": 1,\\n \\\"isFollowed\\\": 0,\\n \\\"country\\\": \\\"China\\\",\\n \\\"superAdministrativeArea\\\": \\\"Beijing\\\",\\n \\\"administrativeArea\\\": \\\"Beijing\\\"\\n }\\n ],\\n \\\"originalUrl\\\": \\\"SELECT subscriber_id AS subscriberId, anyLast(imei) AS imei, anyLast(imsi) AS imsi, anyLast(phone_number) AS phoneNumber, anyLast(apn) AS apn, COUNT(*) AS hitCount,anyLast(subscriber_longitude) as longitude,anyLast(subscriber_latitude) as latitude FROM location_subscriber where stat_time >= 0 and stat_time < 111809020488 GROUP BY subscriber_id ORDER BY hitCount DESC LIMIT 0,10\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : null\n}\r\n================================\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport cn.hutool.core.util.StrUtil;\r\nimport net.geedge.common.utils.GeoUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.sys.shiro.ShiroUtils;\r\nimport java.util.stream.Collectors;\r\nimport \'@/pre/timeHandleNone\' as timeHandle;\r\nimport \'@/post/object\' as postHandle;\r\nimport \'@/public/postGalaxyResult\' as postGalaxyResult;\r\nimport \'@/pre/pageFieldsHandle\' as pageHandle;\r\nimport \'@get:/v1/locationIntelligence/followed/status\' as getStatus;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"pageSize\":pageSize,\r\n \"pageNo\":pageNo,\r\n \"params\":params,\r\n \"isFollowed\":isFollowed\r\n}\r\ntimeHandle(parameter);\r\npageHandle(parameter);\r\n\r\n/**\r\n * 查询所有关注的用户信息\r\n */\r\nvar userId = ShiroUtils.getUserId();\r\nvar followSubs = new ArrayList();\r\nvar sql = \"\"\"\r\n select subscriber_id from user_subscriber where user_id = #{userId}\r\n\"\"\"\r\nfollowSubs = db.select(sql);\r\nvar isFollow = new ArrayList();\r\nif(followSubs !=null && followSubs.size()>0){\r\n for(i,j in followSubs){\r\n isFollow.add(followSubs[i].subscriber_id);\r\n }\r\n}\r\nvar queryIds = isFollow.stream().map(s -> \"\'\" + s + \"\'\").collect(Collectors.joining(\", \"));\r\nif(ObjectUtil.isNotEmpty(isFollowed) && isFollowed == 1){\r\n if(ObjectUtil.isEmpty(queryIds)){\r\n queryIds=\"\'\'\";\r\n }\r\n if(ObjectUtil.isNotEmpty(params)){\r\n parameter.params=parameter.params+\" and subscriber_id in (\"+queryIds+\")\";\r\n }else{\r\n parameter.params=\"subscriber_id in (\"+queryIds+\")\";\r\n }\r\n}\r\n\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"SELECT subscriber_id AS subscriberId, anyLast(imei) AS imei, anyLast(imsi) AS imsi, anyLast(phone_number) AS phoneNumber, anyLast(apn) AS apn, COUNT(*) AS hitCount,anyLast(subscriber_longitude) as longitude,anyLast(subscriber_latitude) as latitude FROM location_subscriber where stat_time >= ${startTime} and stat_time < ${endTime} <#if params?default(\\\'\\\')?trim? length gt 0> and ${params} </#if> GROUP BY subscriber_id ORDER BY hitCount DESC,subscriber_id <#if pageSize?default(\\\'\\\')?trim? length gt 0&&pageNo?default(\\\'\\\')?trim? length gt 0> LIMIT ${pageNo},${pageSize}</#if>\\\",\\\"option\\\":\\\"real_time\\\",\\\"format\\\":\\\"json\\\"}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1LocationIntelligenceList\",q,parameter);\r\n\r\n\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(result,HashMap.class);\r\nvar galaxyRes = postGalaxyResult(res);\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nif(galaxyRes.data.length > 0 ){\r\n var sIds = [];\r\n for(i,j in galaxyRes.data){\r\n sIds.push(galaxyRes.data[i].subscriberId);\r\n }\r\n var subscriberIds = sIds.stream().map(s -> \"\'\" + s + \"\'\").collect(Collectors.joining(\", \"));\r\n var status = getStatus();\r\n var idSub = {};\r\n if(status.data.length > 0 ){\r\n for(i,j in status.data){\r\n idSub.put(status.data[i].subscriber_id,1);\r\n }\r\n }\r\n \r\n for(i,j in galaxyRes.data){\r\n if(idSub.get(galaxyRes.data[i].subscriberId)==1){\r\n galaxyRes.data[i].active=1;\r\n }else{\r\n galaxyRes.data[i].active=0;\r\n }\r\n if(isFollow.contains(galaxyRes.data[i].subscriberId)){\r\n galaxyRes.data[i].isFollowed=1;\r\n }else{\r\n galaxyRes.data[i].isFollowed=0;\r\n }\r\n galaxyRes.data[i].putAll(GeoUtil.reverseGeocode(galaxyRes.data[i].longitude,galaxyRes.data[i].latitude));\r\n }\r\n}\r\n\r\nreturn galaxyRes;'); +INSERT INTO `magic_api_file` VALUES ('/api/v1/locationIntelligence/Location列表.ms', '{\n \"properties\" : { },\n \"id\" : \"e2721e2841104ff885693d31fbc4abd1\",\n \"script\" : null,\n \"groupId\" : \"1b2392073eee441f9c7a12a815bf3eae\",\n \"name\" : \"Location列表\",\n \"createTime\" : null,\n \"updateTime\" : 1731291566271,\n \"lock\" : null,\n \"createBy\" : \"admin\",\n \"updateBy\" : null,\n \"path\" : \"/list\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1731287105\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1731290705\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"params\",\n \"value\" : \"data_source=\'SD\'\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"pageSize\",\n \"value\" : \"10\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"pageNo\",\n \"value\" : \"1\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"isFollowed\",\n \"value\" : \"0\",\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ {\n \"name\" : \"cn-Authorization\",\n \"value\" : \"1a653ea0-d39b-4246-94b0-1ba95db4b6a7\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"code\\\": 999,\\n \\\"time\\\": \\\"2024-11-11 02:10:43\\\",\\n \\\"message\\\": \\\"500 null at Row:13~13,Col:32~37\\\\n\\\\nvar galaxyResult = httpRequest.post().getBody();\\\\r\\\\n ^^^^^^ \\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : null\n}\r\n================================\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport cn.hutool.core.util.StrUtil;\r\nimport net.geedge.common.utils.GeoUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.sys.shiro.ShiroUtils;\r\nimport java.util.stream.Collectors;\r\nimport \'@/pre/timeHandleNone\' as timeHandle;\r\nimport \'@/post/object\' as postHandle;\r\nimport \'@/public/postGalaxyResult\' as postGalaxyResult;\r\nimport \'@/pre/pageFieldsHandle\' as pageHandle;\r\nimport \'@get:/v1/locationIntelligence/followed/status\' as getStatus;\r\nimport log;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"pageSize\":pageSize,\r\n \"pageNo\":pageNo,\r\n \"params\":params,\r\n \"isFollowed\":isFollowed\r\n}\r\ntimeHandle(parameter);\r\npageHandle(parameter);\r\n\r\n/**\r\n * 查询所有关注的用户信息\r\n */\r\nvar userId = ShiroUtils.getUserId();\r\nvar followSubs = new ArrayList();\r\nvar sql = \"\"\"\r\n select subscriber_id from user_subscriber where user_id = #{userId}\r\n\"\"\"\r\nfollowSubs = db.select(sql);\r\nvar isFollow = new ArrayList();\r\nif(followSubs !=null && followSubs.size()>0){\r\n for(i,j in followSubs){\r\n isFollow.add(followSubs[i].subscriber_id);\r\n }\r\n}\r\nvar queryIds = isFollow.stream().map(s -> \"\'\" + s + \"\'\").collect(Collectors.joining(\", \"));\r\nif(ObjectUtil.isNotEmpty(isFollowed) && isFollowed == 1){\r\n if(ObjectUtil.isEmpty(queryIds)){\r\n queryIds=\"\'\'\";\r\n }\r\n if(ObjectUtil.isNotEmpty(params)){\r\n parameter.params=parameter.params+\" and subscriber_id in (\"+queryIds+\")\";\r\n }else{\r\n parameter.params=\"subscriber_id in (\"+queryIds+\")\";\r\n }\r\n}\r\n\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"SELECT subscriber_id AS subscriberId, anyLast(imei) AS imei, anyLast(imsi) AS imsi, anyLast(phone_number) AS phoneNumber, anyLast(apn) AS apn,anyLast(cell_id) AS cellId,anyLast(cell_type) AS cellType, groupUniqArray(data_source) AS dataSource, COUNT(*) AS hitCount,anyLast(subscriber_longitude) as longitude,anyLast(subscriber_latitude) as latitude FROM location_subscriber where stat_time >= ${startTime} and stat_time < ${endTime} <#if params?default(\\\'\\\')?trim? length gt 0> and ${params} </#if> GROUP BY subscriber_id ORDER BY hitCount DESC,subscriber_id <#if pageSize?default(\\\'\\\')?trim? length gt 0&&pageNo?default(\\\'\\\')?trim? length gt 0> LIMIT ${pageNo},${pageSize}</#if>\\\",\\\"option\\\":\\\"real_time\\\",\\\"format\\\":\\\"json\\\"}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1LocationIntelligenceList\",q,parameter);\r\n\r\n\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(result,HashMap.class);\r\nlog.info(result);\r\nvar galaxyRes = postGalaxyResult(res);\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nif(galaxyRes.data.length > 0 ){\r\n var sIds = [];\r\n for(i,j in galaxyRes.data){\r\n sIds.push(galaxyRes.data[i].subscriberId);\r\n }\r\n var subscriberIds = sIds.stream().map(s -> \"\'\" + s + \"\'\").collect(Collectors.joining(\", \"));\r\n var status = getStatus();\r\n var idSub = {};\r\n if(status.data.length > 0 ){\r\n for(i,j in status.data){\r\n idSub.put(status.data[i].subscriber_id,1);\r\n }\r\n }\r\n \r\n for(i,j in galaxyRes.data){\r\n if(idSub.get(galaxyRes.data[i].subscriberId)==1){\r\n galaxyRes.data[i].active=1;\r\n }else{\r\n galaxyRes.data[i].active=0;\r\n }\r\n if(isFollow.contains(galaxyRes.data[i].subscriberId)){\r\n galaxyRes.data[i].isFollowed=1;\r\n }else{\r\n galaxyRes.data[i].isFollowed=0;\r\n }\r\n galaxyRes.data[i].putAll(GeoUtil.reverseGeocode(galaxyRes.data[i].longitude,galaxyRes.data[i].latitude));\r\n }\r\n}\r\n\r\nreturn galaxyRes;'); INSERT INTO `magic_api_file` VALUES ('/api/v1/locationIntelligence/Location列表用户总数.ms', '{\n \"properties\" : { },\n \"id\" : \"copy1728972275935d91089\",\n \"script\" : null,\n \"groupId\" : \"1b2392073eee441f9c7a12a815bf3eae\",\n \"name\" : \"Location列表用户总数\",\n \"createTime\" : null,\n \"updateTime\" : 1728973114633,\n \"lock\" : null,\n \"createBy\" : \"admin\",\n \"updateBy\" : null,\n \"path\" : \"/list/count\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"99999999999\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"params\",\n \"value\" : \"\",\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"isFollowed\",\n \"value\" : \"0\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ {\n \"name\" : \"cn-Authorization\",\n \"value\" : \"1a653ea0-d39b-4246-94b0-1ba95db4b6a7\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"message\\\": \\\"OK\\\",\\n \\\"request_id\\\": \\\"9f4e1c49-8764-4ea2-9d2d-2c3521a3aa98\\\",\\n \\\"success\\\": true,\\n \\\"code\\\": \\\"20000666\\\",\\n \\\"job\\\": null,\\n \\\"output_mode\\\": \\\"json\\\",\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 89,\\n \\\"rows_read\\\": 30687480,\\n \\\"bytes_read\\\": 981999360,\\n \\\"result_bytes\\\": 16040,\\n \\\"result_rows\\\": 1003\\n },\\n \\\"meta\\\": null,\\n \\\"data\\\": [\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30686\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 53\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30686\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 96\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30686\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30686\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 21\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30686\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30686\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30686\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30687\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n },\\n {\\n \\\"count\\\": 30688\\n }\\n ],\\n \\\"originalUrl\\\": \\\"SELECT count(*) as count FROM location_subscriber where stat_time >= 1 and stat_time < 99999999999 GROUP BY subscriber_id\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : null\n}\r\n================================\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport cn.hutool.core.util.StrUtil;\r\nimport net.geedge.common.utils.GeoUtil;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport net.geedge.modules.sys.shiro.ShiroUtils;\r\nimport java.util.stream.Collectors;\r\nimport \'@/pre/timeHandleNone\' as timeHandle;\r\nimport \'@/post/object\' as postHandle;\r\nimport \'@/public/postGalaxyResult\' as postGalaxyResult;\r\nimport \'@/pre/pageFieldsHandle\' as pageHandle;\r\nimport \'@get:/v1/locationIntelligence/followed/status\' as getStatus;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"params\":params,\r\n \"isFollowed\":isFollowed\r\n}\r\ntimeHandle(parameter);\r\npageHandle(parameter);\r\n\r\n/**\r\n * 查询所有关注的用户信息\r\n */\r\nvar userId = ShiroUtils.getUserId();\r\nvar followSubs = new ArrayList();\r\nvar sql = \"\"\"\r\n select subscriber_id from user_subscriber where user_id = #{userId}\r\n\"\"\"\r\nfollowSubs = db.select(sql);\r\nvar isFollow = new ArrayList();\r\nif(followSubs !=null && followSubs.size()>0){\r\n for(i,j in followSubs){\r\n isFollow.add(followSubs[i].subscriber_id);\r\n }\r\n}\r\nvar queryIds = isFollow.stream().map(s -> \"\'\" + s + \"\'\").collect(Collectors.joining(\", \"));\r\nif(ObjectUtil.isNotEmpty(isFollowed) && isFollowed == 1){\r\n if(ObjectUtil.isEmpty(queryIds)){\r\n queryIds=\"\'\'\";\r\n }\r\n if(ObjectUtil.isNotEmpty(params)){\r\n parameter.params=parameter.params+\" and subscriber_id in (\"+queryIds+\")\";\r\n }else{\r\n parameter.params=\"subscriber_id in (\"+queryIds+\")\";\r\n }\r\n}\r\n\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"SELECT COUNT(DISTINCT(subscriber_id)) AS count FROM location_subscriber where stat_time >= ${startTime} and stat_time < ${endTime} <#if params?default(\\\'\\\')?trim? length gt 0> and ${params} </#if> \\\",\\\"option\\\":\\\"real_time\\\",\\\"format\\\":\\\"json\\\"}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1LocationIntelligenceListCount\",q,parameter);\r\n\r\n\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(result,HashMap.class);\r\nvar galaxyRes = postGalaxyResult(res);\r\n\r\nreturn galaxyRes;'); INSERT INTO `magic_api_file` VALUES ('/api/v1/locationIntelligence/Location地图.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"29fd42404bd741b2ad6b479f0ae7672c\",\r\n \"script\" : null,\r\n \"groupId\" : \"1b2392073eee441f9c7a12a815bf3eae\",\r\n \"name\" : \"Location地图\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1709695144718,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/map\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"minLongitude\",\r\n \"value\" : \"115.8478497314444\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"maxLongitude\",\r\n \"value\" : \"116.91215026855423\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"minLatitude\",\r\n \"value\" : \"39.702440597447605\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"maxLatitude\",\r\n \"value\" : \"40.09699147131096\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"1708940500\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"1709113300\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"level\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ {\r\n \"name\" : \"cn-Authorization\",\r\n \"value\" : \"1a653ea0-d39b-4246-94b0-1ba95db4b6a7\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"String\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"message\\\": \\\"OK\\\",\\n \\\"request_id\\\": \\\"65df06ca4ac1746faa7d8673a6c978f3\\\",\\n \\\"success\\\": true,\\n \\\"code\\\": \\\"20000666\\\",\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 2,\\n \\\"rows_read\\\": 15201,\\n \\\"bytes_read\\\": 1016218,\\n \\\"result_bytes\\\": 1351,\\n \\\"result_rows\\\": 23\\n },\\n \\\"meta\\\": [\\n {\\n \\\"name\\\": \\\"hexId\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Dimension\\\"\\n },\\n {\\n \\\"name\\\": \\\"number\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"hitCount\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }\\n ],\\n \\\"data\\\": [\\n {\\n \\\"hexId\\\": \\\"8931aa42cb7ffff\\\",\\n \\\"number\\\": \\\"10\\\",\\n \\\"hitCount\\\": \\\"89\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa42ccfffff\\\",\\n \\\"number\\\": \\\"11\\\",\\n \\\"hitCount\\\": \\\"97\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa4284bffff\\\",\\n \\\"number\\\": \\\"13\\\",\\n \\\"hitCount\\\": \\\"2648\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa55267ffff\\\",\\n \\\"number\\\": \\\"13\\\",\\n \\\"hitCount\\\": \\\"317\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa552cfffff\\\",\\n \\\"number\\\": \\\"13\\\",\\n \\\"hitCount\\\": \\\"100\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa5534bffff\\\",\\n \\\"number\\\": \\\"9\\\",\\n \\\"hitCount\\\": \\\"85\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa5521bffff\\\",\\n \\\"number\\\": \\\"12\\\",\\n \\\"hitCount\\\": \\\"104\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa42e2fffff\\\",\\n \\\"number\\\": \\\"12\\\",\\n \\\"hitCount\\\": \\\"2658\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa42e33ffff\\\",\\n \\\"number\\\": \\\"10\\\",\\n \\\"hitCount\\\": \\\"90\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa42ab7ffff\\\",\\n \\\"number\\\": \\\"12\\\",\\n \\\"hitCount\\\": \\\"2570\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa42857ffff\\\",\\n \\\"number\\\": \\\"12\\\",\\n \\\"hitCount\\\": \\\"2577\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa55263ffff\\\",\\n \\\"number\\\": \\\"11\\\",\\n \\\"hitCount\\\": \\\"99\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa42e8bffff\\\",\\n \\\"number\\\": \\\"10\\\",\\n \\\"hitCount\\\": \\\"107\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa425a3ffff\\\",\\n \\\"number\\\": \\\"11\\\",\\n \\\"hitCount\\\": \\\"96\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa42e0fffff\\\",\\n \\\"number\\\": \\\"12\\\",\\n \\\"hitCount\\\": \\\"92\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa42c93ffff\\\",\\n \\\"number\\\": \\\"10\\\",\\n \\\"hitCount\\\": \\\"109\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa42e17ffff\\\",\\n \\\"number\\\": \\\"11\\\",\\n \\\"hitCount\\\": \\\"102\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa55273ffff\\\",\\n \\\"number\\\": \\\"10\\\",\\n \\\"hitCount\\\": \\\"99\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa4212fffff\\\",\\n \\\"number\\\": \\\"11\\\",\\n \\\"hitCount\\\": \\\"81\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa552dbffff\\\",\\n \\\"number\\\": \\\"10\\\",\\n \\\"hitCount\\\": \\\"79\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa42c13ffff\\\",\\n \\\"number\\\": \\\"12\\\",\\n \\\"hitCount\\\": \\\"82\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa42ddbffff\\\",\\n \\\"number\\\": \\\"12\\\",\\n \\\"hitCount\\\": \\\"100\\\"\\n },\\n {\\n \\\"hexId\\\": \\\"8931aa42e27ffff\\\",\\n \\\"number\\\": \\\"13\\\",\\n \\\"hitCount\\\": \\\"2633\\\"\\n }\\n ],\\n \\\"originalUrl\\\": \\\"SELECT first_location AS hexId,COUNT(DISTINCT(subscriber_id)) AS number,COUNT(*) AS hitCount FROM location_subscriber WHERE stat_time >= 1708940500 AND stat_time < 1709113300 AND subscriber_longitude >= 115.8478497314444 AND subscriber_longitude <= 116.91215026855423 AND subscriber_latitude >= 39.702440597447605 AND subscriber_latitude <= 40.09699147131096 GROUP BY first_location\\\"\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : null\r\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport \'@/pre/timeHandleNone\' as timeHandle;\r\nimport \'@/post/object\' as postHandle;\r\nimport \'@/public/postGalaxyResult\' as postGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"minLongitude\":minLongitude,\r\n \"maxLongitude\":maxLongitude,\r\n \"minLatitude\":minLatitude,\r\n \"maxLatitude\":maxLatitude,\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"level\":level\r\n}\r\ntimeHandle(parameter);\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT <#if level?default(\'\')?trim? length gt 0 && level == 2> second_location <#elseif level?default(\'\')?trim? length gt 0 && level == 3> third_location <#else> first_location </#if> AS hexId,COUNT(DISTINCT(subscriber_id)) AS number,COUNT(*) AS hitCount FROM location_subscriber WHERE stat_time >= ${startTime} AND stat_time < ${endTime} AND subscriber_longitude >= ${minLongitude} AND subscriber_longitude <= ${maxLongitude} AND subscriber_latitude >= ${minLatitude} AND subscriber_latitude <= ${maxLatitude} GROUP BY <#if level?default(\'\')?trim? length gt 0 && level == 2> second_location <#elseif level?default(\'\')?trim? length gt 0 && level == 3> third_location <#else> first_location </#if>\\\",\\r\\n \\\"option\\\": \\\"real_time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1LocationIntelligenceMap\",q,parameter);\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(result,HashMap.class);\r\nvar galaxyRes = postGalaxyResult(res);\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\ngalaxyRes.msg=\'success\';\r\nreturn galaxyRes;'); INSERT INTO `magic_api_file` VALUES ('/api/v1/locationIntelligence/Location活跃用户总数.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"4ae2ab16e9f742ab974113664612ca81\",\r\n \"script\" : null,\r\n \"groupId\" : \"1b2392073eee441f9c7a12a815bf3eae\",\r\n \"name\" : \"Location活跃用户总数\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1709171378841,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/active/count\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"cycle\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : false,\r\n \"dataType\" : \"Integer\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : null,\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : null\r\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport \'@/pre/timeHandleNone\' as timeHandle;\r\nimport \'@/post/object\' as postHandle;\r\nimport \'@/public/postGalaxyResult\' as postGalaxyResult;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"cycle\":cycle\r\n}\r\ntimeHandle(parameter);\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT COUNT(DISTINCT(subscriber_id)) AS total FROM location_subscriber WHERE <#if cycle?default(\'\')?trim? length gt 0 && cycle == 1> stat_time >= ${startTime} - ${timeDiff} and stat_time < ${endTime} - ${timeDiff} <#else> stat_time >= ${startTime} AND stat_time < ${endTime} </#if>\\\",\\r\\n \\\"option\\\": \\\"real_time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1LocationIntelligenceActiveCount\",q,parameter);\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(result,HashMap.class);\r\nvar galaxyRes = postGalaxyResult(res);\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nif(galaxyRes.success){\r\n if(galaxyRes.data.length > 0){\r\n data = galaxyRes.data[0];\r\n }\r\n}\r\n\r\nreturn R.ok(data).put(\"originalUrl\",galaxyRes.originalUrl).put(\"status\",200);'); INSERT INTO `magic_api_file` VALUES ('/api/v1/locationIntelligence/Location活跃用户趋势.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"26d1ea0029664809a46ec2bb31ba994e\",\r\n \"script\" : null,\r\n \"groupId\" : \"1b2392073eee441f9c7a12a815bf3eae\",\r\n \"name\" : \"Location活跃用户趋势\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1709257715724,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/active/trend\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"startTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : null,\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : null,\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : null\r\n}\r\n================================\r\nimport http;\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandleNone\' as preHandle;\r\nimport \'@/public/postGalaxyResult\' as postGalaxyResult\r\nimport \'@/public/toHump\' as toHump\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime\r\n}\r\n\r\npreHandle(parameter);\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\":\\\"SELECT TIME_FLOOR_WITH_FILL(stat_time,\'PT${step}S\',\'zero\') AS stat_time, COUNT(DISTINCT(subscriber_id)) AS active_subscriber_count FROM location_subscriber WHERE stat_time >= ${startTime} AND stat_time < ${endTime} GROUP BY stat_time ORDER BY stat_time ASC\\\",\\\"option\\\":\\\"real_time\\\",\\\"format\\\":\\\"json\\\"}\"\r\n\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1LocationIntelligenceActiveTrend\",q,parameter);\r\nvar param = jsonUtil.toBean(result,HashMap.class);\r\nvar result = postGalaxyResult(param);\r\nif(result.success){\r\n var list = result.data;\r\n var values = new ArrayList();\r\n if(list.length > 0){\r\n for(i,j in list){\r\n var pojo = list[i];\r\n var tempArray = new ArrayList();\r\n tempArray.add(pojo[\'stat_time\']);\r\n tempArray.add(pojo[\'active_subscriber_count\']);\r\n values.add(tempArray);\r\n }\r\n }\r\n var o = {};\r\n o.resultType=\"matrix\";\r\n o.result=values;\r\n result.code=200;\r\n result.data=o;\r\n result.msg = result.message;\r\n result.message=null;\r\n}\r\nreturn result;'); -INSERT INTO `magic_api_file` VALUES ('/api/v1/locationIntelligence/Location用户轨迹.ms', '{\n \"properties\" : { },\n \"id\" : \"c6417fa306d143888cbdbd08a4c765f3\",\n \"script\" : null,\n \"groupId\" : \"1b2392073eee441f9c7a12a815bf3eae\",\n \"name\" : \"Location用户轨迹\",\n \"createTime\" : null,\n \"updateTime\" : 1716434172874,\n \"lock\" : null,\n \"createBy\" : \"admin\",\n \"updateBy\" : null,\n \"path\" : \"/trace/tracking\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1706319667\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1709020488\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"subscriberIds\",\n \"value\" : \"\'gary6411\'\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"level\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ {\n \"name\" : \"cn-Authorization\",\n \"value\" : \"1a653ea0-d39b-4246-94b0-1ba95db4b6a7\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"message\\\": null,\\n \\\"request_id\\\": \\\"65ded22e249ce57053dc044a5bc41f50\\\",\\n \\\"success\\\": true,\\n \\\"code\\\": 200,\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 3,\\n \\\"rows_read\\\": 8194,\\n \\\"bytes_read\\\": 1200993,\\n \\\"result_bytes\\\": 138882,\\n \\\"result_rows\\\": 589\\n },\\n \\\"meta\\\": [\\n {\\n \\\"name\\\": \\\"subscriberId\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"imei\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"imsi\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"phoneNumber\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"apn\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"subscriberLongitude\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"subscriberLatitude\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"hexId\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"time\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }\\n ],\\n \\\"data\\\": {\\n \\\"resultType\\\": \\\"table\\\",\\n \\\"result\\\": [\\n {\\n \\\"subscriberId\\\": \\\"gary6411\\\",\\n \\\"trackRecords\\\": [\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null\\n ]\\n }\\n ]\\n },\\n \\\"originalUrl\\\": \\\"SELECT subscriber_id AS subscriberId, imei AS imei, imsi AS imsi, phone_number AS phoneNumber, apn AS apn, subscriber_longitude AS subscriberLongitude, subscriber_latitude AS subscriberLatitude, first_location AS hexId,stat_time as time FROM location_subscriber WHERE stat_time >= 1706319667 AND stat_time < 1709020488 AND subscriber_id IN (\'gary6411\') ORDER BY stat_time DESC\\\",\\n \\\"msg\\\": \\\"OK\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : null\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.GeoUtil;\r\nimport \'@/pre/timeHandleNone\' as timeHandle;\r\nimport \'@/post/object\' as postHandle;\r\nimport \'@/public/postGalaxyResult\' as postGalaxyResult;\r\nimport \'@/public/toHump\' as toHump;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"subscriberIds\":subscriberIds,\r\n \"level\":level\r\n}\r\ntimeHandle(parameter);\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT subscriber_id AS subscriberId, imei AS imei, imsi AS imsi, phone_number AS phoneNumber, apn AS apn, subscriber_longitude AS subscriberLongitude, subscriber_latitude AS subscriberLatitude, <#if level?default(\'\')?trim? length gt 0 && level == 2> second_location <#elseif level?default(\'\')?trim? length gt 0 && level == 3> third_location <#else> first_location </#if> AS hexId,stat_time as time FROM location_subscriber WHERE stat_time >= ${startTime} AND stat_time < ${endTime} AND subscriber_id IN (${subscriberIds}) ORDER BY stat_time DESC\\\",\\r\\n \\\"option\\\": \\\"real_time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1LocationIntelligenceTraceTracking\",q,parameter);\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(result,HashMap.class);\r\nvar result = postGalaxyResult(res);\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nif(result.success){\r\n var o={};\r\n o.resultType=\"table\"\r\n o.result=[];\r\n if(result.data.length > 0){\r\n var idObj = {};\r\n for(i,j in result.data){\r\n var pojo = result.data[i];\r\n pojo.putAll(GeoUtil.reverseGeocode(pojo.subscriberLongitude,pojo.subscriberLatitude));\r\n var list = idObj[pojo[\'subscriberId\']];\r\n if(ObjectUtil.isNotEmpty(list)){\r\n list.add(pojo);\r\n }else{\r\n list = new ArrayList();\r\n list.add(pojo);\r\n idObj[pojo[\'subscriberId\']]=list;\r\n }\r\n }\r\n var handlerResult = new ArrayList();\r\n for(i,j in idObj){\r\n var obj = idObj[i];\r\n var hr = {};\r\n hr.subscriberId = i;\r\n hr.trackRecords = obj;\r\n handlerResult.add(hr);\r\n }\r\n o.result = handlerResult;\r\n }\r\n result.code=200;\r\n result.data=o;\r\n result.msg = result.message;\r\n result.message=null;\r\n}\r\n\r\nreturn result;'); +INSERT INTO `magic_api_file` VALUES ('/api/v1/locationIntelligence/Location用户轨迹.ms', '{\n \"properties\" : { },\n \"id\" : \"c6417fa306d143888cbdbd08a4c765f3\",\n \"script\" : null,\n \"groupId\" : \"1b2392073eee441f9c7a12a815bf3eae\",\n \"name\" : \"Location用户轨迹\",\n \"createTime\" : null,\n \"updateTime\" : 1731291753326,\n \"lock\" : null,\n \"createBy\" : \"admin\",\n \"updateBy\" : null,\n \"path\" : \"/trace/tracking\",\n \"method\" : \"GET\",\n \"parameters\" : [ {\n \"name\" : \"startTime\",\n \"value\" : \"1706319667\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"endTime\",\n \"value\" : \"1709020488\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Long\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"subscriberIds\",\n \"value\" : \"\'gary6411\'\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"level\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"Integer\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n }, {\n \"name\" : \"params\",\n \"value\" : null,\n \"description\" : null,\n \"required\" : false,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"options\" : [ ],\n \"requestBody\" : \"\",\n \"headers\" : [ {\n \"name\" : \"cn-Authorization\",\n \"value\" : \"1a653ea0-d39b-4246-94b0-1ba95db4b6a7\",\n \"description\" : null,\n \"required\" : true,\n \"dataType\" : \"String\",\n \"type\" : null,\n \"defaultValue\" : null,\n \"validateType\" : null,\n \"error\" : null,\n \"expression\" : null,\n \"children\" : null\n } ],\n \"paths\" : [ ],\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"message\\\": null,\\n \\\"request_id\\\": \\\"65ded22e249ce57053dc044a5bc41f50\\\",\\n \\\"success\\\": true,\\n \\\"code\\\": 200,\\n \\\"job\\\": null,\\n \\\"formatType\\\": \\\"json\\\",\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 3,\\n \\\"rows_read\\\": 8194,\\n \\\"bytes_read\\\": 1200993,\\n \\\"result_bytes\\\": 138882,\\n \\\"result_rows\\\": 589\\n },\\n \\\"meta\\\": [\\n {\\n \\\"name\\\": \\\"subscriberId\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"imei\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"imsi\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"phoneNumber\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"apn\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"subscriberLongitude\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"subscriberLatitude\\\",\\n \\\"type\\\": \\\"double\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"hexId\\\",\\n \\\"type\\\": \\\"string\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n },\\n {\\n \\\"name\\\": \\\"time\\\",\\n \\\"type\\\": \\\"long\\\",\\n \\\"category\\\": \\\"Metric\\\"\\n }\\n ],\\n \\\"data\\\": {\\n \\\"resultType\\\": \\\"table\\\",\\n \\\"result\\\": [\\n {\\n \\\"subscriberId\\\": \\\"gary6411\\\",\\n \\\"trackRecords\\\": [\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null,\\n null\\n ]\\n }\\n ]\\n },\\n \\\"originalUrl\\\": \\\"SELECT subscriber_id AS subscriberId, imei AS imei, imsi AS imsi, phone_number AS phoneNumber, apn AS apn, subscriber_longitude AS subscriberLongitude, subscriber_latitude AS subscriberLatitude, first_location AS hexId,stat_time as time FROM location_subscriber WHERE stat_time >= 1706319667 AND stat_time < 1709020488 AND subscriber_id IN (\'gary6411\') ORDER BY stat_time DESC\\\",\\n \\\"msg\\\": \\\"OK\\\"\\n}\",\n \"description\" : null,\n \"requestBodyDefinition\" : null,\n \"responseBodyDefinition\" : null\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport net.geedge.common.utils.R as R;\r\nimport cn.hutool.core.util.ObjectUtil;\r\nimport net.geedge.common.utils.GeoUtil;\r\nimport \'@/pre/timeHandleNone\' as timeHandle;\r\nimport \'@/post/object\' as postHandle;\r\nimport \'@/public/postGalaxyResult\' as postGalaxyResult;\r\nimport \'@/public/toHump\' as toHump;\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime,\r\n \"subscriberIds\":subscriberIds,\r\n \"level\":level,\r\n \"params\":params\r\n}\r\ntimeHandle(parameter);\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\r\\n \\\"query\\\": \\\"SELECT subscriber_id AS subscriberId, imei AS imei, imsi AS imsi, phone_number AS phoneNumber, apn AS apn,cell_id AS cellId,cell_type AS cellType,data_source AS dataSource, subscriber_longitude AS subscriberLongitude, subscriber_latitude AS subscriberLatitude, <#if level?default(\'\')?trim? length gt 0 && level == 2> second_location <#elseif level?default(\'\')?trim? length gt 0 && level == 3> third_location <#else> first_location </#if> AS hexId,stat_time as time FROM location_subscriber WHERE stat_time >= ${startTime} AND stat_time < ${endTime} AND subscriber_id IN (${subscriberIds}) <#if params?default(\\\'\\\')?trim? length gt 0> and ${params} </#if> ORDER BY stat_time DESC\\\",\\r\\n \\\"option\\\": \\\"real_time\\\",\\r\\n \\\"format\\\": \\\"json\\\"\\r\\n}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1LocationIntelligenceTraceTracking\",q,parameter);\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(result,HashMap.class);\r\nvar result = postGalaxyResult(res);\r\n/**\r\n * 处理galaxy返回的数据结果 将新结果返回前端界面\r\n */\r\nif(result.success){\r\n var o={};\r\n o.resultType=\"table\"\r\n o.result=[];\r\n if(result.data.length > 0){\r\n var idObj = {};\r\n for(i,j in result.data){\r\n var pojo = result.data[i];\r\n pojo.putAll(GeoUtil.reverseGeocode(pojo.subscriberLongitude,pojo.subscriberLatitude));\r\n var list = idObj[pojo[\'subscriberId\']];\r\n if(ObjectUtil.isNotEmpty(list)){\r\n list.add(pojo);\r\n }else{\r\n list = new ArrayList();\r\n list.add(pojo);\r\n idObj[pojo[\'subscriberId\']]=list;\r\n }\r\n }\r\n var handlerResult = new ArrayList();\r\n for(i,j in idObj){\r\n var obj = idObj[i];\r\n var hr = {};\r\n hr.subscriberId = i;\r\n hr.trackRecords = obj;\r\n handlerResult.add(hr);\r\n }\r\n o.result = handlerResult;\r\n }\r\n result.code=200;\r\n result.data=o;\r\n result.msg = result.message;\r\n result.message=null;\r\n}\r\n\r\nreturn result;'); INSERT INTO `magic_api_file` VALUES ('/api/v1/network/', 'this is directory'); INSERT INTO `magic_api_file` VALUES ('/api/v1/network/group.json', '{\r\n \"properties\" : { },\r\n \"id\" : \"019d8c550b6145cc9af0935414c1a95c\",\r\n \"name\" : \"network\",\r\n \"type\" : \"api\",\r\n \"parentId\" : \"67d55368d07840ca80c04d7ade154d76\",\r\n \"path\" : \"/network\",\r\n \"createTime\" : 1714444658914,\r\n \"updateTime\" : null,\r\n \"createBy\" : \"admin\",\r\n \"updateBy\" : null,\r\n \"paths\" : [ ],\r\n \"options\" : [ ]\r\n}'); INSERT INTO `magic_api_file` VALUES ('/api/v1/network/网络性能统计.ms', '{\r\n \"properties\" : { },\r\n \"id\" : \"f9843a9c9ca04cd28ebede18b55b5841\",\r\n \"script\" : null,\r\n \"groupId\" : \"019d8c550b6145cc9af0935414c1a95c\",\r\n \"name\" : \"网络性能统计\",\r\n \"createTime\" : null,\r\n \"updateTime\" : 1714445550991,\r\n \"lock\" : null,\r\n \"createBy\" : null,\r\n \"updateBy\" : \"admin\",\r\n \"path\" : \"/performance/overview\",\r\n \"method\" : \"GET\",\r\n \"parameters\" : [ {\r\n \"name\" : \"startTime\",\r\n \"value\" : \"1714432965\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n }, {\r\n \"name\" : \"endTime\",\r\n \"value\" : \"1714442965\",\r\n \"description\" : null,\r\n \"required\" : true,\r\n \"dataType\" : \"Long\",\r\n \"type\" : null,\r\n \"defaultValue\" : null,\r\n \"validateType\" : null,\r\n \"error\" : null,\r\n \"expression\" : null,\r\n \"children\" : null\r\n } ],\r\n \"options\" : [ ],\r\n \"requestBody\" : \"\",\r\n \"headers\" : [ ],\r\n \"paths\" : [ ],\r\n \"responseBody\" : \"{\\n \\\"status\\\": 200,\\n \\\"message\\\": \\\"OK\\\",\\n \\\"request_id\\\": \\\"b2066b24-9cca-469c-8174-74568162e60b\\\",\\n \\\"success\\\": true,\\n \\\"code\\\": \\\"20000666\\\",\\n \\\"job\\\": null,\\n \\\"output_mode\\\": \\\"json\\\",\\n \\\"statistics\\\": {\\n \\\"elapsed\\\": 1,\\n \\\"rows_read\\\": 1725,\\n \\\"bytes_read\\\": 44850,\\n \\\"result_bytes\\\": 4,\\n \\\"result_rows\\\": 1\\n },\\n \\\"meta\\\": null,\\n \\\"data\\\": {\\n \\\"tcpLostBytesRatioAvg\\\": null,\\n \\\"avgTcpRttMsAvg\\\": null,\\n \\\"avgTcpRttMsP50\\\": null,\\n \\\"avgTcpRttMsP95\\\": null,\\n \\\"avgTcpRttMsP99\\\": null\\n },\\n \\\"originalUrl\\\": \\\"SELECT ROUND(AVG(tcp_lost_bytes_ratio), 4) AS tcpLostBytesRatioAvg, ROUND(AVG(avg_tcp_rtt_ms)) AS avgTcpRttMsAvg, ROUND(QUANTILE(avg_tcp_rtt_ms,0.5)) AS avgTcpRttMsP50, ROUND(QUANTILE(avg_tcp_rtt_ms,0.95)) AS avgTcpRttMsP95, ROUND(QUANTILE(avg_tcp_rtt_ms,0.99)) AS avgTcpRttMsP99 FROM metric_link WHERE stat_time >= 1714442965 AND stat_time < 1714442965\\\"\\n}\",\r\n \"description\" : null,\r\n \"requestBodyDefinition\" : null,\r\n \"responseBodyDefinition\" : null\r\n}\r\n================================\r\nimport net.geedge.common.utils.FreeMarkerUtil as freeMarkerUtil;\r\nimport net.geedge.common.utils.JSONUtil as jsonUtil;\r\nimport \'@/pre/timeHandleNone\' as preHandle;\r\nimport \'@/public/postGalaxyResult\' as postGalaxyResult;\r\nimport \'@/pre/pageFieldsHandle\' as pageFieldsHandle;\r\n\r\n\r\n/**\r\n * 入参整理 包括调用公共函数\r\n */\r\nvar parameter={\r\n \"startTime\":startTime,\r\n \"endTime\":endTime\r\n}\r\npageFieldsHandle(parameter);\r\npreHandle(parameter);\r\n/**\r\n * 接口sql相关内容整理 通过freemarker模板生成最后执行语句\r\n */\r\nvar q = \"{\\\"query\\\": \\\"SELECT ROUND(AVG(tcp_lost_bytes_ratio), 4) AS tcpLostBytesRatioAvg, ROUND(AVG(avg_tcp_rtt_ms)) AS avgTcpRttMsAvg, ROUND(QUANTILE(avg_tcp_rtt_ms,0.5)) AS avgTcpRttMsP50, ROUND(QUANTILE(avg_tcp_rtt_ms,0.95)) AS avgTcpRttMsP95, ROUND(QUANTILE(avg_tcp_rtt_ms,0.99)) AS avgTcpRttMsP99 FROM metric_link WHERE stat_time >= ${startTime} AND stat_time < ${endTime}\\\",\\\"option\\\": \\\"real_time\\\",\\\"format\\\": \\\"json\\\"}\"\r\nvar result = freeMarkerUtil.processTemplateIntoString(\"v1NetworkPerformanceOverview\",q,parameter);\r\n\r\n/**\r\n * 调用galaxy接口获取结果信息\r\n */\r\nvar res = jsonUtil.toBean(result,HashMap.class);\r\nvar galaxyRes = postGalaxyResult(res);\r\nif(galaxyRes.success){\r\n if(galaxyRes.data.length > 0){\r\n galaxyRes.data = galaxyRes.data[0];\r\n }\r\n}\r\n\r\nreturn galaxyRes;'); |
