diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/controller/DeviceController.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/controller/DeviceController.java index fa546d8..fa5b7f6 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/controller/DeviceController.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/controller/DeviceController.java @@ -68,8 +68,8 @@ public class DeviceController { @DataPermission @GetMapping @PreAuthorize("hasAuthority('iot:device:query')") - public IPage query(Page page, DeviceQuery query) { - return service.query(page, query); + public List query(DeviceQuery query) { + return service.list(query); } /** diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/query/DeviceQuery.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/query/DeviceQuery.java index 607edd2..76d4892 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/query/DeviceQuery.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/query/DeviceQuery.java @@ -2,6 +2,9 @@ package com.zsc.edu.gateway.modules.iot.device.query; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zsc.edu.gateway.modules.iot.device.entity.Device; +import com.zsc.edu.gateway.modules.iot.product.entity.Product; +import com.zsc.edu.gateway.modules.iot.product.repo.ProductRepository; +import jakarta.annotation.Resource; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -16,6 +19,8 @@ import java.util.Objects; @AllArgsConstructor @NoArgsConstructor public class DeviceQuery { + @Resource + private ProductRepository productRepository; /** * 设备名称 */ @@ -38,7 +43,10 @@ public class DeviceQuery { * 设态是否在线 */ public Boolean isOnline; - + /** + * 产品名称 + */ + public String productName; public LambdaQueryWrapper wrapper() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/DeviceService.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/DeviceService.java index a156717..8f49b0f 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/DeviceService.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/DeviceService.java @@ -26,5 +26,5 @@ public interface DeviceService extends IService { Boolean serve(DeviceServeDto dto); - IPage query(Page page, DeviceQuery query); + List list(DeviceQuery query); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/impl/DeviceServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/impl/DeviceServiceImpl.java index de7dcc4..1ac0852 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/service/impl/DeviceServiceImpl.java @@ -1,8 +1,6 @@ package com.zsc.edu.gateway.modules.iot.device.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zsc.edu.gateway.exception.ConstraintException; import com.zsc.edu.gateway.exception.OutlineException; @@ -159,24 +157,30 @@ public class DeviceServiceImpl extends ServiceImpl imp } } + /** + * 查询设备列表 + * + * @param query + * @return + */ @Override - public IPage query(Page page, DeviceQuery query) { - IPage devicePage = this.page(page, query.wrapper()); - List productIds = devicePage.getRecords().stream() + public List list(DeviceQuery query) { + List devices = baseMapper.selectList(query.wrapper()); + Set productIds = devices.stream() .map(Device::getProductId) - .filter(Objects::nonNull) - .distinct() - .collect(Collectors.toList()); - LambdaQueryWrapper productQueryWrapper = new LambdaQueryWrapper<>(); - productQueryWrapper.in(Product::getId, productIds); - List products = productRepo.selectList(productQueryWrapper); - Map productMap = products.stream() + .collect(Collectors.toSet()); + Map productMap = productRepo.selectByIds(productIds).stream() .collect(Collectors.toMap(Product::getId, Product::getName)); - devicePage.getRecords().forEach(device -> { - if (device.getProductId() != null) { - device.setProductName(productMap.get(device.getProductId())); - } - }); - return devicePage; + return devices.stream() + .peek(device -> device.setProductName(productMap.getOrDefault(device.getProductId(), null))) + .filter(device -> query.getProductName() == null || query.getProductName().equals(device.getProductName())) + .collect(Collectors.toList()); } + + + + + + + }