From 741eb73137bff627af68b3729d9d8539002361aa Mon Sep 17 00:00:00 2001 From: zhuangtianxiang <2913129173@qq.com> Date: Thu, 6 Mar 2025 16:52:42 +0800 Subject: [PATCH] =?UTF-8?q?refactor(iot):=20=E9=87=8D=E6=9E=84=E7=89=A9?= =?UTF-8?q?=E8=81=94=E7=BD=91=E6=A8=A1=E5=9D=97=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 DeviceController 中未使用的 RecordDataRepository- 修改 DeviceController 中 recordData 方法的 URL 路径 - 在 DeviceMapper.xml 中添加 selectList 方法查询设备信息 - 更新 DeviceRepository 接口,增加 selectList 方法 - 重构 DeviceServiceImpl 中的 query 方法,使用新增的 selectList 方法 - 更新 RecordData 实体类,将 content 字段的类型处理器改为 JacksonTypeHandler - 修改 RecordDataMapper.xml,更新 recordData 方法的 SQL 查询 - --- .../device/controller/DeviceController.java | 3 +-- .../iot/device/repo/DeviceRepository.java | 6 +++++ .../service/impl/DeviceServiceImpl.java | 27 +------------------ .../modules/iot/record/entity/RecordData.java | 3 ++- .../service/impl/RecordDataServiceImpl.java | 8 +++--- .../iot/tsl/controller/ServeController.java | 5 ---- .../modules/iot/tsl/service/ServeService.java | 1 - .../tsl/service/impl/ServeServiceImpl.java | 16 ----------- .../resources/mappers/iot/DeviceMapper.xml | 5 ++++ .../mappers/iot/RecordDataMapper.xml | 10 +++---- 10 files changed, 23 insertions(+), 61 deletions(-) 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 00d4a4a..34c8680 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 @@ -35,7 +35,6 @@ import java.util.List; @RequestMapping("api/rest/device") public class DeviceController { - private final RecordDataRepository recordDataRepository; DeviceService service; RecordDataService recordService; @@ -116,7 +115,7 @@ public class DeviceController { /** * 查询设备上报记录 */ - @GetMapping("record/data/list") + @GetMapping("record/data") @PreAuthorize("hasAuthority('iot:device:query')") public IPage recordData(Page page, String clientId) { return recordService.query(page, clientId); diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/device/repo/DeviceRepository.java b/src/main/java/com/zsc/edu/gateway/modules/iot/device/repo/DeviceRepository.java index f00098d..719a9a8 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/device/repo/DeviceRepository.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/device/repo/DeviceRepository.java @@ -1,7 +1,12 @@ package com.zsc.edu.gateway.modules.iot.device.repo; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zsc.edu.gateway.modules.iot.device.entity.Device; +import com.zsc.edu.gateway.modules.iot.device.query.DeviceQuery; import com.zsc.edu.gateway.modules.iot.device.vo.DeviceVo; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -20,4 +25,5 @@ public interface DeviceRepository extends BaseMapper { Device findByClientIdAndStateAndOnline(@Param("clientId") String clientId, @Param("status") Device.Status status, @Param("online") Boolean online); + } 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 6a9da1f..a20f79b 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 @@ -81,15 +81,6 @@ public class DeviceServiceImpl extends ServiceImpl imp @Override @Transactional public List batchCreate(BatchDeviceDto dto) { - if (dto.getNum() == null || dto.getNum() <= 0) { - throw new ConstraintException("设备数量必须大于0!"); - } - if (dto.getPrefix() == null) { - throw new ConstraintException("前缀不能为空!"); - } - if (dto.getProductId() == null) { - throw new ConstraintException("产品ID不能为空!"); - } // 获取产品信息 Product product = productRepo.selectById(dto.getProductId()); if (product == null) { @@ -183,23 +174,7 @@ public class DeviceServiceImpl extends ServiceImpl imp */ @Override public IPage query(Page page, DeviceQuery query) { - IPage devicePage = this.page(page, query.wrapper()); - List productIds = devicePage.getRecords().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.toMap(Product::getId, Product::getName)); - devicePage.getRecords().forEach(device -> { - if (device.getProductId() != null) { - device.setProductName(productMap.get(device.getProductId())); - } - }); - return devicePage; + return deviceRepo.selectPage(page, query.wrapper()); } @Override diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/RecordData.java b/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/RecordData.java index 3ffeffe..c2edd7a 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/RecordData.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/record/entity/RecordData.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; //import com.zsc.edu.gateway.framework.json.MapJsonTypeHandler; +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.zsc.edu.gateway.framework.json.JsonbTypeHandler; import lombok.*; import org.springframework.format.annotation.DateTimeFormat; @@ -26,7 +27,7 @@ public class RecordData { private String clientId; - @TableField(typeHandler = JsonbTypeHandler.class) + @TableField(typeHandler = JacksonTypeHandler.class) private Map content; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/impl/RecordDataServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/impl/RecordDataServiceImpl.java index dbdbb77..98cb2fc 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/impl/RecordDataServiceImpl.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/record/service/impl/RecordDataServiceImpl.java @@ -62,10 +62,8 @@ public class RecordDataServiceImpl extends ServiceImpl query(Page page, String clientId) { - List recordDataList = recordDataRepository.selectByClientId(clientId); - page.setRecords(recordDataList); - page.setTotal(recordDataList.size()); - return page; + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(RecordData::getClientId, clientId); + return recordDataRepository.selectPage(page, queryWrapper); } - } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/ServeController.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/ServeController.java index b261609..0e84259 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/ServeController.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/controller/ServeController.java @@ -85,9 +85,4 @@ public class ServeController { return serveService.detail(id); } - @GetMapping("/params/{id}") - @PreAuthorize("hasAnyAuthority('iot:serve:query')") - public JSONObject getServeParam(@PathVariable("id") Long id) { - return serveService.getServeParam(id); - } } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/ServeService.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/ServeService.java index 229d863..f514699 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/ServeService.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/ServeService.java @@ -20,5 +20,4 @@ public interface ServeService extends IService { Boolean delete(Long id); - JSONObject getServeParam(Long id); } diff --git a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/ServeServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/ServeServiceImpl.java index 0eb7a5e..24496a6 100644 --- a/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/ServeServiceImpl.java +++ b/src/main/java/com/zsc/edu/gateway/modules/iot/tsl/service/impl/ServeServiceImpl.java @@ -93,20 +93,4 @@ public class ServeServiceImpl extends ServiceImpl implem } - /** - * 获取服务的输入和输出参数并转换为JSON格式 - * - * @param id 服务ID - * @return 包含输入和输出参数的JSON对象 - */ - @Override - public JSONObject getServeParam(Long id) { - Serve serve = detail(id); - List inputs = serve.getInputs(); - List outputs = serve.getOutputs(); - JSONObject result = new JSONObject(); - result.put("inputs", inputs); - result.put("outputs", outputs); - return result; - } } diff --git a/src/main/resources/mappers/iot/DeviceMapper.xml b/src/main/resources/mappers/iot/DeviceMapper.xml index d5218d9..bb844d6 100644 --- a/src/main/resources/mappers/iot/DeviceMapper.xml +++ b/src/main/resources/mappers/iot/DeviceMapper.xml @@ -63,4 +63,9 @@ where d.id = #{id} + \ No newline at end of file diff --git a/src/main/resources/mappers/iot/RecordDataMapper.xml b/src/main/resources/mappers/iot/RecordDataMapper.xml index eb66bda..3290162 100644 --- a/src/main/resources/mappers/iot/RecordDataMapper.xml +++ b/src/main/resources/mappers/iot/RecordDataMapper.xml @@ -6,13 +6,13 @@ - + - + select ira.* + from iot_record_data ira \ No newline at end of file