From 95a6e4392acc0f559b78c7300fdb3e5155e89795 Mon Sep 17 00:00:00 2001 From: chen_xi <276999030@qq.com> Date: Wed, 28 Jun 2023 17:34:14 +0800 Subject: [PATCH] 部分提交 --- screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java | 3 + screen-api/src/main/java/com/moral/api/controller/CruiserController.java | 23 ++++++++++- screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java | 44 +++++++++++++++++++--- screen-api/src/main/resources/application-local.yml | 22 +++++++++- 4 files changed, 79 insertions(+), 13 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/controller/CruiserController.java b/screen-api/src/main/java/com/moral/api/controller/CruiserController.java index 421fd08..2001f2b 100644 --- a/screen-api/src/main/java/com/moral/api/controller/CruiserController.java +++ b/screen-api/src/main/java/com/moral/api/controller/CruiserController.java @@ -77,17 +77,34 @@ @ApiImplicitParams(value = { @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"), @ApiImplicitParam(name = "mac", value = "������mac", required = true, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "time", value = "���������2021-08-18", required = true, paramType = "query", dataType = "String") + @ApiImplicitParam(name = "time1", value = "���������2021-08-18", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "time2", value = "���������2021-08-18", required = true, paramType = "query", dataType = "String") }) public ResultMessage carTrajectory(HttpServletRequest request) { Map<String, Object> params = WebUtils.getParametersStartingWith(request, null); if (!params.containsKey("mac") || !params.containsKey("time1")|| !params.containsKey("time2")) { return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); } - List<Map<String, Object>> response = specialDeviceService.carTrajectory(params); + List<Map<String, Object>> response = specialDeviceService.carTrajectory(params,true); return ObjectUtils.isEmpty(response) ? ResultMessage.ok() : ResultMessage.ok(response); } - + @GetMapping("carTrajectoryNewAvg") + @ApiOperation(value = "���������������������", notes = "���������������������") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"), + @ApiImplicitParam(name = "mac", value = "������mac", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "time1", value = "���������2021-08-18", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "time2", value = "���������2021-08-18", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "type", value = "type", required = true, paramType = "query", dataType = "String") + }) + public ResultMessage carTrajectoryNewAvg(HttpServletRequest request) { + Map<String, Object> params = WebUtils.getParametersStartingWith(request, null); + if (!params.containsKey("mac") || !params.containsKey("time1")|| !params.containsKey("time2")|| !params.containsKey("type")) { + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + } + List<Map<String, Object>> response = specialDeviceService.carTrajectory(params,false); + return ObjectUtils.isEmpty(response) ? ResultMessage.ok() : ResultMessage.ok(response); + } /** * ��������������� diff --git a/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java b/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java index 2b5f723..acdebfa 100644 --- a/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java +++ b/screen-api/src/main/java/com/moral/api/service/SpecialDeviceService.java @@ -25,7 +25,8 @@ List<Map<String, Object>> selectCruisers(); //��������������� - List<Map<String, Object>> carTrajectory(Map<String, Object> params); + List<Map<String, Object>> carTrajectory(Map<String, Object> params,boolean type); + /** * @Description: ������mac������������������������ diff --git a/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java index 8e3e681..7172787 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/SpecialDeviceServiceImpl.java @@ -32,6 +32,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; import java.io.File; @@ -103,7 +104,7 @@ } @Override - public List<Map<String, Object>> carTrajectory(Map<String, Object> params) { + public List<Map<String, Object>> carTrajectory(Map<String, Object> params,boolean type) { params.put("dateFormat", "%Y-%m-%d %H:%i:%s"); Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization"); @@ -126,7 +127,12 @@ if (lon < 70 || lon > 150 || lat < 20 || lat > 60) { return true; } - o.putAll(value); + if(type){ + o.putAll(value); + }else { + + } + return false; }); /*for (Map<String, Object> map:data) { @@ -142,7 +148,6 @@ }*/ return filterData(data); } - @Override public SpecialDevice getSpecialDeviceMapByMac(String mac) { QueryWrapper<SpecialDevice> queryWrapper = new QueryWrapper(); @@ -182,7 +187,7 @@ String time2 = params.get("time2").toString(); String rsTime = getTime(time1, time2); list.add(rsTime); - List<Map<String, Object>> maps = specialDeviceService.carTrajectory(params); + List<Map<String, Object>> maps = specialDeviceService.carTrajectory(params,false); if (ObjectUtils.isEmpty(maps)){ return null; } @@ -194,7 +199,7 @@ map.put("time1",time3); map.put("time2",time4); map.put("mac",mac); - List<Map<String, Object>> maps1 = specialDeviceService.carTrajectory(map); + List<Map<String, Object>> maps1 = specialDeviceService.carTrajectory(map,false); if (ObjectUtils.isEmpty(maps1)){ return null; } @@ -210,7 +215,7 @@ map.put("time1",time5); map.put("time2",time6); map.put("mac",mac); - List<Map<String, Object>> maps1 = specialDeviceService.carTrajectory(map); + List<Map<String, Object>> maps1 = specialDeviceService.carTrajectory(map,false); if (ObjectUtils.isEmpty(maps1)){ return null; } @@ -495,6 +500,33 @@ result.add(map); } } + + return result; } + //��������������� + private List<Map<String, Object>> filterData(List<Map<String, Object>> data, List<Map<String, Object>> result) { + List<Map<String, Object>> list = new ArrayList<>(); + + Map<String,List<Object>> map = new HashMap<>(); + result.forEach(it->map.put(it.get(Constants.SENSOR_CODE_LON).toString()+ "_"+Constants.SENSOR_CODE_LAT.toString(),Arrays.asList(it))); + // ���������50 ������������ + for (Map<String, Object> mapData : data) { + for (Map.Entry<String, List<Object>> entry : map.entrySet()) { + double lng1 = Double.parseDouble(mapData.get(Constants.SENSOR_CODE_LON).toString()); + double lat1 = Double.parseDouble(mapData.get(Constants.SENSOR_CODE_LAT).toString()); + String[] mapKey = entry.getKey().split("_"); + List<Object> mapValue = entry.getValue(); + double lng2 = Double.parseDouble(mapKey[0]); + double lat2 = Double.parseDouble(mapKey[1]); + double distance = GeodesyUtils.getDistance(lat1, lng1, lat2, lng2); + if (distance < dis) { + mapValue.add(mapData); + } + } + } + + return list; + } + } diff --git a/screen-api/src/main/resources/application-local.yml b/screen-api/src/main/resources/application-local.yml index ce84e43..a60ee98 100644 --- a/screen-api/src/main/resources/application-local.yml +++ b/screen-api/src/main/resources/application-local.yml @@ -13,8 +13,9 @@ spring: profiles: active: dev + include: bulletin, specialCity, announcement application: - name: screen-manage + name: screen-api redis: host: r-bp1xdlb9wfc6zt0msppd.redis.rds.aliyuncs.com port: 6379 @@ -43,7 +44,6 @@ max-wait: 30000 max-idle: 64 min-idle: 32 - datasource: minIdle: 1 time-between-eviction-runs-millis: 60000 @@ -53,7 +53,7 @@ filters: stat type: com.alibaba.druid.pool.DruidDataSource max-wait: 60000 - url: jdbc:mysql://rm-bp1pr3rx9m3fnkwsk8o.mysql.rds.aliyuncs.com:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai + url: jdbc:mysql://rm-bp1pr3rx9m3fnkwsk8o2.mysql.rds.aliyuncs.com:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: moral_123456 test-on-borrow: false @@ -64,6 +64,12 @@ driver-class-name: com.mysql.cj.jdbc.Driver max-conn-lifetime-millis: 20 test-on-return: false + + servlet: + multipart: + enabled: true + max-file-size: 10MB + max-request-size: 10MB mybatis-plus: mapper-locations: classpath:mapper/*.xml @@ -79,12 +85,15 @@ kafka: listener: + # ��������������������������������������������������� ack-mode: manual_immediate consumer: auto: offset: reset: latest + # ��������������������������������������������������������� ���������*��������� concurrency: 3 + # ������������������������������������������true������������������������������������������������������������������������false������������������������������ enable: auto: commit: false @@ -99,8 +108,12 @@ buffer: memory: 40960 linger: 1 + # ������������������������������������������ retries: 0 servers: 47.99.145.48:9092,47.111.116.38:9092,47.111.124.159:9092 + groupId: + second-data: SecondsDataGroup1 + cruiser-data: cruiserDataGroup1 mvc: interceptor: exclude: @@ -110,6 +123,9 @@ - /swagger-ui.html/** - /webjars/** - /verificationCode/** + - /static/** + - /file/** + AES: KEY: -- Gitblit v1.8.0