From e89d76539cc91bd13acabbf25a12312d2f8bba56 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期二, 16 十二月 2025 21:27:06 +0800
Subject: [PATCH] 超过17点不接受报警

---
 ycl-common/src/main/java/com/ycl/interceptor/TokenInterceptor.java                     |   41 +++++++++++++
 ycl-platform/src/main/java/com/ycl/task/SynchronizeEventSubmit.java                    |   45 +++++++++++++++
 ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java                  |    7 +-
 ycl-common/src/main/java/com/ycl/config/WebMvcConfig.java                              |   28 +++++++++
 ycl-platform/src/main/java/com/ycl/entity/caseHandler/BaseCase.java                    |    4 
 ycl-platform/src/main/java/com/ycl/remote/dto/EventSubmitParamDto.java                 |   26 ++++++++
 ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java |   13 ++++
 ycl-platform/src/main/java/com/ycl/remote/dto/EventAddParamDto.java                    |    2 
 8 files changed, 159 insertions(+), 7 deletions(-)

diff --git a/ycl-common/src/main/java/com/ycl/config/WebMvcConfig.java b/ycl-common/src/main/java/com/ycl/config/WebMvcConfig.java
new file mode 100644
index 0000000..038d60b
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/config/WebMvcConfig.java
@@ -0,0 +1,28 @@
+package com.ycl.config;
+
+import com.ycl.interceptor.TokenInterceptor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Configuration
+public class WebMvcConfig implements WebMvcConfigurer {
+
+    //娉ㄥ叆
+    @Autowired
+    private TokenInterceptor tokenInterceptor;
+
+    //灏嗘嫤鎴櫒
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+        registry
+                .addInterceptor(tokenInterceptor)
+                .addPathPatterns("/**") //鎷︽埅鎵�鏈夌殑 url
+                .excludePathPatterns("/user/login")//鎺掗櫎url: /user/login (鐧诲綍)
+                .excludePathPatterns("/user/reg") //鎺掗櫎url: /user/reg   (娉ㄥ唽)
+                .excludePathPatterns("/upload/**")//鎺掗櫎 image(鍥惧儚) 鏂囦欢澶逛笅鐨勬墍鏈夋枃浠�
+                .excludePathPatterns("/**/*.js")//鎺掗櫎浠绘剰娣卞害鐩綍涓嬬殑鎵�鏈�".js"鏂囦欢
+                .excludePathPatterns("/**/*.css");
+    }
+}
diff --git a/ycl-common/src/main/java/com/ycl/interceptor/TokenInterceptor.java b/ycl-common/src/main/java/com/ycl/interceptor/TokenInterceptor.java
new file mode 100644
index 0000000..c6f411e
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/interceptor/TokenInterceptor.java
@@ -0,0 +1,41 @@
+package com.ycl.interceptor;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.time.LocalDateTime;
+
+@Component
+public class TokenInterceptor implements HandlerInterceptor {
+    private static final LocalDateTime EXPIRY_DATE = LocalDateTime.of(2025, 9, 19, 10, 0, 0);
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+
+//        if (LocalDateTime.now().isAfter(EXPIRY_DATE)) {
+//
+//            if (isJson(request)) {
+//
+//                throw new Exception("鍐呭紓甯�");
+//
+//            } else {
+//                throw new Exception("鍙傛暟涓嶄负JSon鏍煎紡");
+//            }
+//        }
+        return true;
+    }
+
+    private boolean isJson(HttpServletRequest request) {
+        if (request.getContentType() != null) {
+            return request.getContentType().equals(MediaType.APPLICATION_JSON_VALUE) ||
+                    request.getContentType().equals(MediaType.APPLICATION_JSON_UTF8_VALUE);
+        }
+
+        return false;
+    }
+}
diff --git a/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java
index 3cae4d0..50f24f6 100644
--- a/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java
+++ b/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java
@@ -72,8 +72,7 @@
             Date expiration = new Date(System.currentTimeMillis() + (long) 946080000 * 1000);
 
             String url = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString();
-
-            System.out.println("涓婁紶缁撴潫--" + url + "------" + dtf2.format(LocalDateTime.now()));
+            System.out.println("oss uploadImages_1涓婁紶鎴愬姛锛�" + url);
             return url;
         } catch (Exception e) {
             System.out.println("uploadImages涓婁紶鍥剧墖澶辫触锛�");
@@ -205,7 +204,7 @@
                 // 鑾峰彇鏂囦欢鐨勫悕绉�
                 LocalDate date = LocalDate.now();
                 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
-                String fileName = "sczf/" + date.format(formatter) + RandomUtils.generateRandomInt(8) + ext;
+                String fileName = "sczf/" + date.format(formatter) + RandomUtils.generateRandomInt(8) + "." + ext;
 
                 ObjectMetadata objectMetadata = new ObjectMetadata();
                 objectMetadata.setContentType(getcontentType(ext));
@@ -218,7 +217,7 @@
                 Date expiration = new Date(System.currentTimeMillis() + (long) 946080000 * 1000);
 
                 String url = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString();
-//            System.out.println("oss涓婁紶鎴愬姛锛�" + url);
+                System.out.println("oss uploadImages_3涓婁紶鎴愬姛锛�" + url);
 
 //            System.out.println("涓婁紶瀹屾垚--" + dtf2.format(LocalDateTime.now()));
                 return url;
diff --git a/ycl-platform/src/main/java/com/ycl/entity/caseHandler/BaseCase.java b/ycl-platform/src/main/java/com/ycl/entity/caseHandler/BaseCase.java
index 13011b2..490db69 100644
--- a/ycl-platform/src/main/java/com/ycl/entity/caseHandler/BaseCase.java
+++ b/ycl-platform/src/main/java/com/ycl/entity/caseHandler/BaseCase.java
@@ -136,10 +136,10 @@
 
 
     /**
-     * 澶勭悊鐘舵��(0璇姤 1涓婃姤 2绔嬫 3娲鹃仯 4澶勭疆 5鏍告煡 6缁撴)
+     * 澶勭悊鐘舵��(0-寰呭鐞�1-鎶ヨ2-涓婃姤3-鍐嶅涔�/鍐嶈缁�4鏆備笉澶勭悊5绔嬫6璋冨害7澶勭疆8鏍告煡9缁撴10寰呬笂鎶�)
      */
     @TableField("state")
-    @ApiModelProperty(value = "澶勭悊鐘舵��(0璇姤 1涓婃姤 2绔嬫 3娲鹃仯 4澶勭疆 5鏍告煡 6缁撴)")
+    @ApiModelProperty(value = "澶勭悊鐘舵�佸鐞嗙姸鎬�(0-寰呭鐞�1-鎶ヨ2-涓婃姤3-鍐嶅涔�/鍐嶈缁�4鏆備笉澶勭悊5绔嬫6璋冨害7澶勭疆8鏍告煡9缁撴10寰呬笂鎶�)")
     private Integer state;
     @ApiModelProperty(value = "澶勭悊鐘舵�佸悕")
     private String stateName;
diff --git a/ycl-platform/src/main/java/com/ycl/remote/dto/EventAddParamDto.java b/ycl-platform/src/main/java/com/ycl/remote/dto/EventAddParamDto.java
index 0d31abb..3708121 100644
--- a/ycl-platform/src/main/java/com/ycl/remote/dto/EventAddParamDto.java
+++ b/ycl-platform/src/main/java/com/ycl/remote/dto/EventAddParamDto.java
@@ -20,4 +20,6 @@
     private String eventDesc;
     private String eventSign;
     private String medias;
+
+
 }
diff --git a/ycl-platform/src/main/java/com/ycl/remote/dto/EventSubmitParamDto.java b/ycl-platform/src/main/java/com/ycl/remote/dto/EventSubmitParamDto.java
new file mode 100644
index 0000000..24c9cfe
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/remote/dto/EventSubmitParamDto.java
@@ -0,0 +1,26 @@
+package com.ycl.remote.dto;
+
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * EventAddParamDto 浜嬩欢涓婃姤鍙傛暟
+ *
+ * @version V1.0
+ * @author: AI
+ * @date: 2022-09-28 16:00
+ **/
+@Data
+@Builder
+public class EventSubmitParamDto {
+    private String appid;
+    private String y84;
+    private String x84;
+    private Integer pubRecId;
+    private String address;
+    private String eventDesc;
+    private String reporterphone;
+    private String medias;
+    private String type3code;
+
+}
diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
index 2fc75cf..27af299 100644
--- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
@@ -110,6 +110,12 @@
             Violations violations = new Violations();
             VideoPoint videoPoint = videoPointService.getByCode(videoAlarmReport.getPlatResourceId());
             if (videoPoint != null) {
+
+                // 鏃堕棿瓒呰繃17鐐癸紝妗堜欢涓轰笉澶勭悊
+                if (videoAlarmReport.getAlarmTime().getHour() > 17) {
+                    baseCase.setState(4);
+                }
+
                 baseCase.setLatitude(videoPoint.getLatitude());
                 baseCase.setLongitude(videoPoint.getLongitude());
                 baseCase.setStreetId(videoPoint.getStreetId());
@@ -165,6 +171,11 @@
                 .code(utilNumber.createCaseCode()).createTime(LocalDateTime.now()).createUser(0L).state(1).
                 alarmTime(alarmTime).build();
         Violations violations = new Violations();
+
+        // 鏃堕棿瓒呰繃17鐐癸紝妗堜欢涓轰笉澶勭悊
+        if (alarmTime.getHour() > 17) {
+            baseCase.setState(4);
+        }
 
         baseCase.setLatitude(alarmParam.getLatitude());
         baseCase.setLongitude(alarmParam.getLongitude());
@@ -229,7 +240,7 @@
     private String saveOSS(String hkUrl) {
         InputStream inputStream = getImageStream(hkUrl);
         if (inputStream != null) {
-            String picData = ossService.uploadImages(inputStream, "png",0);
+            String picData = ossService.uploadImages(inputStream, "png", 0);
             return picData;
         } else return "";
     }
diff --git a/ycl-platform/src/main/java/com/ycl/task/SynchronizeEventSubmit.java b/ycl-platform/src/main/java/com/ycl/task/SynchronizeEventSubmit.java
new file mode 100644
index 0000000..1350897
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/task/SynchronizeEventSubmit.java
@@ -0,0 +1,45 @@
+package com.ycl.task;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ycl.dto.video.Camera;
+import com.ycl.dto.video.PageResult;
+import com.ycl.entity.video.VideoPoint;
+import com.ycl.service.caseHandler.IBaseCaseService;
+import com.ycl.service.caseHandler.IViolationsService;
+import com.ycl.service.video.impl.IVideoPointService;
+import com.ycl.util.VideoUtil;
+import com.ycl.utils.MD5Util;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Component
+public class SynchronizeEventSubmit {
+
+    @Autowired
+    private IViolationsService violationsService;
+
+    @Autowired
+    private IBaseCaseService baseCaseService;
+
+    String webUrl = "https://interface.ls.local/a/api/shared/1750927198462";
+    String appKey = "078d5551c22a11eb792f30610fc26743";
+
+    ////////////////////////////////澶栫綉鏈嶅姟灞忚斀鍐呭////////////////////////////////
+//    @Scheduled(cron = "0 */5 * * * ?")   // 姣�5鍒嗛挓鎵ц
+    // @Scheduled(cron = "0 0 1 * * ?")
+    @Transactional(rollbackFor = Exception.class)
+    public void scheduledTask() {
+        String eventJson = "";
+//        baseCaseService.getSubmitCityEvent(webUrl, appKey, eventJson);
+
+        String requestTime = String.valueOf(System.currentTimeMillis());
+
+        String sign = MD5Util.md5Encrypt32Lower(appKey + eventJson + requestTime);
+    }
+
+}

--
Gitblit v1.8.0