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