Commit 705ac5c54374b1e73b87e095e3b24dc57ee0a5f0

Authored by guzijian
1 parent 36b0e040

feat: 车载设备新增过滤条件

src/main/java/com/genersoft/iot/vmp/vehicle/controller/VehicleController.java
@@ -18,8 +18,9 @@ public class VehicleController { @@ -18,8 +18,9 @@ public class VehicleController {
18 18
19 19
20 @GetMapping("/query") 20 @GetMapping("/query")
21 - public VehicleVo queryVehicleList(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize) {  
22 - return vehicleDeviceService.queryVehicleList(pageNo,pageSize); 21 + public VehicleVo queryVehicleList(@RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize,
  22 + @RequestParam(value = "online",required = false) String online,@RequestParam(value = "filterOld",required = false) Boolean filterOld) {
  23 + return vehicleDeviceService.queryVehicleList(pageNo,pageSize,online, filterOld);
23 } 24 }
24 25
25 26
src/main/java/com/genersoft/iot/vmp/vehicle/service/VehicleDeviceService.java
@@ -2,10 +2,8 @@ package com.genersoft.iot.vmp.vehicle.service; @@ -2,10 +2,8 @@ package com.genersoft.iot.vmp.vehicle.service;
2 2
3 import com.genersoft.iot.vmp.vehicle.pojo.vo.VehicleVo; 3 import com.genersoft.iot.vmp.vehicle.pojo.vo.VehicleVo;
4 4
5 -import java.util.List;  
6 -  
7 public interface VehicleDeviceService { 5 public interface VehicleDeviceService {
8 - VehicleVo queryVehicleList(Integer pageNo, Integer pageSize); 6 + VehicleVo queryVehicleList(Integer pageNo, Integer pageSize, String online, Boolean filterOld);
9 7
10 String onPlay(String deviceId, String channel); 8 String onPlay(String deviceId, String channel);
11 } 9 }
12 \ No newline at end of file 10 \ No newline at end of file
src/main/java/com/genersoft/iot/vmp/vehicle/service/impl/VehicleDeviceServiceImpl.java
@@ -5,6 +5,7 @@ import com.genersoft.iot.vmp.utils.redis.RedisTool; @@ -5,6 +5,7 @@ import com.genersoft.iot.vmp.utils.redis.RedisTool;
5 import com.genersoft.iot.vmp.vehicle.pojo.response.VehicleNvrDeviceRes; 5 import com.genersoft.iot.vmp.vehicle.pojo.response.VehicleNvrDeviceRes;
6 import com.genersoft.iot.vmp.vehicle.pojo.vo.VehicleVo; 6 import com.genersoft.iot.vmp.vehicle.pojo.vo.VehicleVo;
7 import com.genersoft.iot.vmp.vehicle.service.VehicleDeviceService; 7 import com.genersoft.iot.vmp.vehicle.service.VehicleDeviceService;
  8 +import org.apache.commons.lang3.StringUtils;
8 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
9 import org.springframework.core.ParameterizedTypeReference; 10 import org.springframework.core.ParameterizedTypeReference;
10 import org.springframework.http.HttpMethod; 11 import org.springframework.http.HttpMethod;
@@ -12,11 +13,7 @@ import org.springframework.http.ResponseEntity; @@ -12,11 +13,7 @@ import org.springframework.http.ResponseEntity;
12 import org.springframework.stereotype.Service; 13 import org.springframework.stereotype.Service;
13 import org.springframework.web.client.RestTemplate; 14 import org.springframework.web.client.RestTemplate;
14 15
15 -import java.util.ArrayList;  
16 -import java.util.Date;  
17 -import java.util.List;  
18 -import java.util.Set;  
19 -import java.util.concurrent.TimeUnit; 16 +import java.util.*;
20 import java.util.stream.Collectors; 17 import java.util.stream.Collectors;
21 18
22 @Service 19 @Service
@@ -26,22 +23,15 @@ public class VehicleDeviceServiceImpl implements VehicleDeviceService { @@ -26,22 +23,15 @@ public class VehicleDeviceServiceImpl implements VehicleDeviceService {
26 private RedisTool redisTool; 23 private RedisTool redisTool;
27 24
28 @Override 25 @Override
29 - public VehicleVo queryVehicleList(Integer pageNo, Integer pageSize) {  
30 - String key = "vehicle"; 26 + public VehicleVo queryVehicleList(Integer pageNo, Integer pageSize, String online, Boolean filterOld) {
  27 +// String key = "vehicle";
31 VehicleNvrDeviceRes nvrDeviceRes = getVehicleNvrDeviceRes(); 28 VehicleNvrDeviceRes nvrDeviceRes = getVehicleNvrDeviceRes();
32 // if (nvrDeviceRes == null) { 29 // if (nvrDeviceRes == null) {
33 // 30 //
34 // redisTool.setCacheObject(key, nvrDeviceRes,30, TimeUnit.MINUTES); 31 // redisTool.setCacheObject(key, nvrDeviceRes,30, TimeUnit.MINUTES);
35 // } 32 // }
36 List<VehicleNvrDeviceRes.ResData> list = nvrDeviceRes.getData(); 33 List<VehicleNvrDeviceRes.ResData> list = nvrDeviceRes.getData();
37 - int total = list.size();  
38 - int remainder = total % pageSize;  
39 - int currentPage = pageNo > 0 ? (pageNo - 1) * pageSize : pageNo * pageSize;  
40 - // 怕页码超出界限了 超出界限就通过currenPage (3 * 10) > total (25) ? currentPage (20) - (pageSize (10) - remainder (3)) : currentPage  
41 - int startPage = currentPage > total ? currentPage - (pageSize - remainder) : currentPage;  
42 - int endPage = Math.min(startPage + pageSize, total);  
43 - List<VehicleNvrDeviceRes.ResData> resData = list.subList(startPage, endPage);  
44 - for (VehicleNvrDeviceRes.ResData data : resData) { 34 + for (VehicleNvrDeviceRes.ResData data : list) {
45 // 模糊匹配 35 // 模糊匹配
46 if (data.getInsideCode().contains("离线")) { 36 if (data.getInsideCode().contains("离线")) {
47 data.setStatus("离线"); 37 data.setStatus("离线");
@@ -54,6 +44,21 @@ public class VehicleDeviceServiceImpl implements VehicleDeviceService { @@ -54,6 +44,21 @@ public class VehicleDeviceServiceImpl implements VehicleDeviceService {
54 data.setOldDevice(false); 44 data.setOldDevice(false);
55 } 45 }
56 } 46 }
  47 + if (StringUtils.isNotEmpty(online)) {
  48 + list = list.stream().filter(item->!item.getStatus().equals(online)).collect(Collectors.toList());
  49 + }
  50 + if (filterOld != null) {
  51 + list = list.stream().filter(item->item.getOldDevice().equals(filterOld)).collect(Collectors.toList());
  52 + }
  53 + int total = list.size();
  54 + int remainder = total % pageSize;
  55 + int currentPage = pageNo > 0 ? (pageNo - 1) * pageSize : pageNo * pageSize;
  56 + // 怕页码超出界限了 超出界限就通过currenPage (3 * 10) > total (25) ? currentPage (20) - (pageSize (10) - remainder (3)) : currentPage
  57 + int startPage = currentPage > total ? currentPage - (pageSize - remainder) : currentPage;
  58 + int endPage = Math.min(startPage + pageSize, total);
  59 + list.sort(Comparator.comparing(VehicleNvrDeviceRes.ResData::getOldDevice));
  60 + List<VehicleNvrDeviceRes.ResData> resData = list.subList(startPage, endPage);
  61 +
57 VehicleVo vo = new VehicleVo(); 62 VehicleVo vo = new VehicleVo();
58 vo.setList(resData); 63 vo.setList(resData);
59 vo.setTotal(total); 64 vo.setTotal(total);