Bladeren bron

fix: 修复列表查询结果为空时 IN () 非法 SQL 报错

公告列表、站点列表、用户列表在分页结果为空时,用空集合拼接 .in() 会生成 notice_id IN () 非法 SQL,增加空集合提前返回保护。
skyline 3 dagen geleden
bovenliggende
commit
151c0bd0ab

+ 3 - 0
car-wash-service/src/main/java/com/kym/service/impl/SystemNoticeServiceImpl.java

@@ -71,6 +71,9 @@ public class SystemNoticeServiceImpl extends MyBaseServiceImpl<SystemNoticeMappe
                 .eq(CommUtil.isNotEmptyAndNull(params.getTarget()), SystemNotice::getTarget, params.getTarget())
                 .orderByDesc(SystemNotice::getUpdateTime);
         List<NoticeStationVo> res = this.selectJoinList(NoticeStationVo.class, wrapper);
+        if (res.isEmpty()) {
+            return new PageBean<>(res);
+        }
         var notice2stations = stationNoticeService.lambdaQuery().in(StationNotice::getNoticeId, res.stream().map(NoticeStationVo::getId).toList()).list().stream().collect(Collectors.groupingBy(StationNotice::getNoticeId, Collectors.mapping(StationNotice::getStationId, Collectors.toList())));
         res.forEach(item -> item.setStationIdList(notice2stations.get(item.getId())));
         return new PageBean<>(res);

+ 3 - 0
car-wash-service/src/main/java/com/kym/service/impl/UserServiceImpl.java

@@ -310,6 +310,9 @@ public class UserServiceImpl extends MPJBaseServiceImpl<UserMapper, User> implem
         }
         PageHelper.startPage(params.getPageNum(), params.getPageSize());
         var result = baseMapper.listUser(userIds);
+        if (result.isEmpty()) {
+            return new PageBean<>(result);
+        }
         var page = new PageBean<>(result);
         // 用户余额,退款次数,退款金额
         var account = accountService.lambdaQuery().in(Account::getUserId, result.stream().map(CustomUserVo::getUserId).toList()).list();

+ 4 - 0
car-wash-service/src/main/java/com/kym/service/impl/WashStationServiceImpl.java

@@ -17,6 +17,7 @@ import jakarta.annotation.PostConstruct;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -101,6 +102,9 @@ public class WashStationServiceImpl extends MyBaseServiceImpl<WashStationMapper,
                 .eq(CommUtil.isNotEmptyAndNull(params.getStationId()), WashStation::getStationId, params.getStationId())
                 .like(CommUtil.isNotEmptyAndNull(params.getStationName()), WashStation::getStationName, params.getStationName())
                 .list();
+        if (stationList.isEmpty()) {
+            return new PageBean<>(Collections.emptyList());
+        }
         // 查询站点下的所有设备,按照站点统计可用设备数量
         var res = washDeviceService.lambdaQuery().in(WashDevice::getStationId, stationList.stream().map(WashStation::getStationId).toList())
                 .eq(WashDevice::getState, WashDevice.STATE_空闲)