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