From 123cf89ee4b76d1355b5bb9eaf70538c5264f18c Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期二, 03 九月 2024 09:26:15 +0800
Subject: [PATCH] fix:修复图形资源空指针异常

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/ImageResourceSecurityServiceImpl.java |   17 +++++++----------
 ycl-server/src/main/java/com/ycl/platform/mapper/CheckIndexVideoMapper.java                  |    9 +++++++++
 ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml                          |   12 ++++++++++++
 3 files changed, 28 insertions(+), 10 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckIndexVideoMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckIndexVideoMapper.java
index 2743448..407dcb1 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/CheckIndexVideoMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/CheckIndexVideoMapper.java
@@ -3,8 +3,10 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ycl.platform.domain.entity.CheckIndexVideo;
 import com.ycl.platform.domain.query.DashboardQuery;
+import org.apache.ibatis.annotations.MapKey;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 瑙嗛鎸囨爣姒傜巼鏁版嵁Mapper鎺ュ彛
@@ -76,4 +78,11 @@
      * @return 瑙嗛鎸囨爣姒傜巼鏁版嵁闆嗗悎
      */
     List<CheckIndexVideo> selectAndDeptName();
+
+    /**
+     * 鏌ヨ姣忎釜閮ㄩ棬鏈�鏂版暟鎹�
+     * @return 鏁版嵁Map
+     */
+    @MapKey(value = "deptId")
+    Map<Long, CheckIndexVideo> selectLastOneByDept();
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/ImageResourceSecurityServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/ImageResourceSecurityServiceImpl.java
index e1bc171..562a993 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/ImageResourceSecurityServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/ImageResourceSecurityServiceImpl.java
@@ -2,7 +2,6 @@
 
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.read.listener.PageReadListener;
-import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.ycl.handler.ImageResourceHandler;
 import com.ycl.platform.domain.entity.CheckIndexVideo;
 import com.ycl.platform.domain.entity.ImageResourceSecurity;
@@ -20,9 +19,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
+import java.math.BigDecimal;
+import java.util.*;
 
 /**
  * platformService涓氬姟灞傚鐞�
@@ -47,12 +45,11 @@
     @Override
     public List<ImageResourceSecurity> selectImageResourceSecurityList(ImageResourceSecurity imageResourceSecurity) {
         List<ImageResourceSecurity> list = imageResourceSecurityMapper.selectImageResourceSecurityList(imageResourceSecurity);
-        list.forEach(item -> item.setImageResourceSecurity(new LambdaQueryChainWrapper<>(checkIndexVideoMapper)
-                .eq(CheckIndexVideo::getDeptId, item.getDeptId())
-                .orderByDesc(CheckIndexVideo::getCreateTime, CheckIndexVideo::getImageResourceSecurity)
-                .last("limit 1")
-                .one()
-                .getImageResourceSecurity()));
+        Map<Long, CheckIndexVideo> map = checkIndexVideoMapper.selectLastOneByDept();
+        list.forEach(item -> item.setImageResourceSecurity(
+                Optional.ofNullable(map.get(item.getDeptId()))
+                        .map(CheckIndexVideo::getImageResourceSecurity)
+                        .orElse(BigDecimal.ZERO)));
         return list;
     }
 
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
index 23921f4..9f137f1 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
@@ -207,4 +207,16 @@
         WHERE
             rn = 1;
     </select>
+
+    <select id="selectLastOneByDept" resultType="java.util.Map">
+        WITH temp AS (
+            SELECT
+                image_resource_security AS imageResourceSecurity,
+                dept_id AS deptId,
+                ROW_NUMBER() OVER(PARTITION BY dept_id ORDER BY create_time DESC, image_resource_security DESC) AS num
+            FROM
+                t_check_index_video
+        )
+        SELECT deptId, imageResourceSecurity FROM temp WHERE num = 1;
+    </select>
 </mapper>

--
Gitblit v1.8.0