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 fa5b7f6..fa546d8 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 List query(DeviceQuery query) { - return service.list(query); + public IPage query(Page page, DeviceQuery query) { + return service.query(page, query); } /** 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 8f49b0f..a156717 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); - List list(DeviceQuery query); + IPage query(Page page, 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 1ac0852..96b0339 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,6 +1,8 @@ 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,28 +161,27 @@ public class DeviceServiceImpl extends ServiceImpl imp /** * 查询设备列表 - * - * @param query - * @return */ @Override - public List list(DeviceQuery query) { - List devices = baseMapper.selectList(query.wrapper()); - Set productIds = devices.stream() + public IPage query(Page page, DeviceQuery query) { + IPage devicePage = this.page(page, query.wrapper()); + List productIds = devicePage.getRecords().stream() .map(Device::getProductId) - .collect(Collectors.toSet()); - Map productMap = productRepo.selectByIds(productIds).stream() - .collect(Collectors.toMap(Product::getId, Product::getName)); - return devices.stream() - .peek(device -> device.setProductName(productMap.getOrDefault(device.getProductId(), null))) - .filter(device -> query.getProductName() == null || query.getProductName().equals(device.getProductName())) + .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.toMap(Product::getId, Product::getName)); + devicePage.getRecords().forEach(device -> { + if (device.getProductId() != null) { + device.setProductName(productMap.get(device.getProductId())); + } + }); + return devicePage; } - - - - - } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/product/controller/ProductController.java b/src/main/java/com/zsc/edu/gateway/modules/iot/product/controller/ProductController.java index 6e1b098..e46304e 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/product/controller/ProductController.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/product/controller/ProductController.java @@ -16,6 +16,7 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.Collection; +import java.util.List; /** * @author zhuang @@ -74,8 +75,8 @@ public class ProductController { */ @GetMapping("fuzzy") @PreAuthorize("hasAuthority('iot:product:query')") - public Page fuzzyQuery(Page page, ProductQuery query) { - return service.page(page, query.fuzzyWrapper()); + public List list(ProductQuery query) { + return service.list(query); } /** diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/product/service/ProductService.java b/src/main/java/com/zsc/edu/gateway/modules/iot/product/service/ProductService.java index 869b702..0eb90dc 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/product/service/ProductService.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/product/service/ProductService.java @@ -7,6 +7,8 @@ import com.zsc.edu.gateway.modules.iot.product.dto.ProductDto; import com.zsc.edu.gateway.modules.iot.product.entity.Product; import com.zsc.edu.gateway.modules.iot.product.query.ProductQuery; +import java.util.List; + /** * @author zhuang */ @@ -18,4 +20,6 @@ public interface ProductService extends IService { Product detail(Long id); boolean delete(Long id); + + List list(ProductQuery query); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/product/service/impl/ProductServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/iot/product/service/impl/ProductServiceImpl.java index 8b9726b..4d2f7e8 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/product/service/impl/ProductServiceImpl.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/product/service/impl/ProductServiceImpl.java @@ -5,6 +5,7 @@ import com.zsc.edu.gateway.exception.ConstraintException; import com.zsc.edu.gateway.modules.iot.product.dto.ProductDto; import com.zsc.edu.gateway.modules.iot.product.entity.Product; import com.zsc.edu.gateway.modules.iot.product.mapper.ProductMapper; +import com.zsc.edu.gateway.modules.iot.product.query.ProductQuery; import com.zsc.edu.gateway.modules.iot.product.repo.ProductRepository; import com.zsc.edu.gateway.modules.iot.product.service.ProductService; import com.zsc.edu.gateway.modules.iot.tsl.entity.Param; @@ -13,6 +14,8 @@ import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; + /** * @author zhaung @@ -77,4 +80,14 @@ public class ProductServiceImpl extends ServiceImpl paramService.delete(id); return true; } + + /** + * 模糊返回五条数据 + */ + @Override + public List list(ProductQuery query) { + List products = baseMapper.selectList(query.fuzzyWrapper()); + return products.subList(0, Math.min(5, products.size())); + } + }