Browse Source

fix:设备地图相关接口迁移

tangfudong 2 years ago
parent
commit
cec5a72856

+ 1 - 1
iot-common/iot-common-dao/iot-data-service/src/main/java/cc/iotkit/data/manager/IDeviceInfoData.java

@@ -134,5 +134,5 @@ public interface IDeviceInfoData extends IOwnedData<DeviceInfo, String> {
      * 获取所有网关类型设备
      * @return
      */
-    List<Map<String, Object>> findByProductNodeType(String uid);
+    List<DeviceInfo> findByProductNodeType(String uid);
 }

+ 3 - 3
iot-common/iot-common-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoDataCache.java

@@ -10,12 +10,12 @@
 package cc.iotkit.data.service;
 
 import cc.iotkit.common.api.PageRequest;
+import cc.iotkit.common.api.Paging;
 import cc.iotkit.common.constant.Constants;
 import cc.iotkit.common.utils.JsonUtils;
-import cc.iotkit.data.manager.IDeviceInfoData;
 import cc.iotkit.data.cache.DeviceInfoCacheEvict;
 import cc.iotkit.data.cache.DeviceInfoCachePut;
-import cc.iotkit.common.api.Paging;
+import cc.iotkit.data.manager.IDeviceInfoData;
 import cc.iotkit.model.device.DeviceInfo;
 import cc.iotkit.model.stats.DataItem;
 import org.apache.commons.lang3.StringUtils;
@@ -131,7 +131,7 @@ public class DeviceInfoDataCache implements IDeviceInfoData, SmartInitializingSi
     }
 
     @Override
-    public List<Map<String, Object>> findByProductNodeType(String uid) {
+    public List<DeviceInfo> findByProductNodeType(String uid) {
         return deviceInfoData.findByProductNodeType(uid);
     }
 

+ 2 - 2
iot-common/iot-common-dao/iot-data-serviceImpl-cache/src/main/java/cc/iotkit/data/service/DeviceInfoPropertyDataCache.java

@@ -10,8 +10,8 @@
 package cc.iotkit.data.service;
 
 import cc.iotkit.common.api.PageRequest;
-import cc.iotkit.data.manager.IDeviceInfoData;
 import cc.iotkit.common.api.Paging;
+import cc.iotkit.data.manager.IDeviceInfoData;
 import cc.iotkit.model.device.DeviceInfo;
 import cc.iotkit.model.stats.DataItem;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -172,7 +172,7 @@ public class DeviceInfoPropertyDataCache implements IDeviceInfoData {
     }
 
     @Override
-    public List<Map<String, Object>> findByProductNodeType(String uid) {
+    public List<DeviceInfo> findByProductNodeType(String uid) {
         return deviceInfoData.findByProductNodeType(uid);
     }
 

+ 28 - 26
iot-common/iot-common-dao/iot-data-serviceImpl-rdb/src/main/java/cc/iotkit/data/service/DeviceInfoDataImpl.java

@@ -14,8 +14,9 @@ import cc.iotkit.model.device.DeviceInfo;
 import cc.iotkit.model.product.Category;
 import cc.iotkit.model.product.Product;
 import cc.iotkit.model.stats.DataItem;
+import com.querydsl.jpa.impl.JPAQueryFactory;
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Primary;
 import org.springframework.data.domain.Page;
@@ -28,28 +29,34 @@ import org.springframework.transaction.annotation.Transactional;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static cc.iotkit.data.model.QTbDeviceInfo.tbDeviceInfo;
+import static cc.iotkit.data.model.QTbProduct.tbProduct;
+
 @Primary
 @Service
+@RequiredArgsConstructor
 public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceInfo, String> {
 
-    @Autowired
-    private DeviceInfoRepository deviceInfoRepository;
-    @Autowired
-    private DeviceSubUserRepository deviceSubUserRepository;
-    @Autowired
-    private DeviceGroupMappingRepository deviceGroupMappingRepository;
-    @Autowired
-    private DeviceGroupRepository deviceGroupRepository;
-    @Autowired
-    private DeviceTagRepository deviceTagRepository;
-    @Autowired
-    private JdbcTemplate jdbcTemplate;
-    @Autowired
+
+    private final DeviceInfoRepository deviceInfoRepository;
+
+    private final DeviceSubUserRepository deviceSubUserRepository;
+
+    private final DeviceGroupMappingRepository deviceGroupMappingRepository;
+
+    private final DeviceGroupRepository deviceGroupRepository;
+
+    private final DeviceTagRepository deviceTagRepository;
+
+    private final JdbcTemplate jdbcTemplate;
+
     @Qualifier("productDataCache")
-    private IProductData productData;
-    @Autowired
+    private final IProductData productData;
+
     @Qualifier("categoryDataCache")
-    private ICategoryData categoryData;
+    private final ICategoryData categoryData;
+
+    private final JPAQueryFactory jpaQueryFactory;
 
     @Override
     public JpaRepository getBaseRepository() {
@@ -190,15 +197,10 @@ public class DeviceInfoDataImpl implements IDeviceInfoData, IJPACommData<DeviceI
     }
 
     @Override
-    public List<Map<String, Object>> findByProductNodeType(String uid) {
-        String sql = "SELECT\n" +
-                "a.id,\n" +
-                "a.device_name\n" +
-                "FROM device_info a JOIN product p ON p.node_type=0 AND a.product_key=p.id";
-        if (StringUtils.isNotBlank(uid)) {
-            sql += " WHERE a.uid='" + uid + "'";
-        }
-        return jdbcTemplate.queryForList(sql);
+    public List<DeviceInfo> findByProductNodeType(String uid) {
+        List<TbDeviceInfo> devices=jpaQueryFactory.select(tbDeviceInfo).from(tbDeviceInfo)
+                .join(tbProduct).on(tbProduct.nodeType.eq(0).and(tbDeviceInfo.productKey.eq(tbProduct.productKey))).fetch();
+        return MapstructUtils.convert(devices,DeviceInfo.class);
     }
 
     @Override

+ 14 - 16
iot-module/iot-manager/src/main/java/cc/iotkit/manager/controller/DeviceController.java

@@ -10,13 +10,8 @@
 package cc.iotkit.manager.controller;
 
 import cc.iotkit.common.api.PageRequest;
+import cc.iotkit.common.api.Paging;
 import cc.iotkit.common.api.Request;
-import cc.iotkit.common.constant.Constants;
-import cc.iotkit.common.enums.ErrCode;
-import cc.iotkit.common.exception.BizException;
-import cc.iotkit.common.satoken.utils.AuthUtil;
-import cc.iotkit.common.utils.ReflectUtil;
-import cc.iotkit.common.utils.UniqueIdUtil;
 import cc.iotkit.manager.dto.bo.device.*;
 import cc.iotkit.manager.dto.bo.deviceconfig.DeviceConfigAddBo;
 import cc.iotkit.manager.dto.bo.devicegroup.DeviceAddGroupBo;
@@ -25,26 +20,29 @@ import cc.iotkit.manager.dto.bo.thingmodel.ThingModelMessageBo;
 import cc.iotkit.manager.dto.vo.deviceconfig.DeviceConfigVo;
 import cc.iotkit.manager.dto.vo.devicegroup.DeviceGroupVo;
 import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInfoVo;
+import cc.iotkit.manager.dto.vo.deviceinfo.ParentDeviceVo;
 import cc.iotkit.manager.dto.vo.thingmodel.ThingModelVo;
-import cc.iotkit.manager.service.*;
+import cc.iotkit.manager.service.DeviceService;
+import cc.iotkit.manager.service.IDeviceService;
+import cc.iotkit.manager.service.IProductService;
 import cc.iotkit.model.InvokeResult;
-import cc.iotkit.common.api.Paging;
 import cc.iotkit.model.device.DeviceConfig;
 import cc.iotkit.model.device.DeviceGroup;
 import cc.iotkit.model.device.DeviceInfo;
 import cc.iotkit.model.device.message.DeviceProperty;
 import cc.iotkit.model.device.message.ThingModelMessage;
-import io.swagger.annotations.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.context.request.async.DeferredResult;
 
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 @Api(tags = {"设备"})
 @Slf4j
@@ -99,9 +97,9 @@ public class DeviceController {
         return deviceServiceImpl.selectChildrenPageList(deviceId);
     }
 
-    @ApiOperation("获取网关")
-    @PostMapping("/parentDevices")
-    public List<Map<String, Object>> getParentDevices() {
+    @ApiOperation("获取网关设备")
+    @PostMapping("/getParentDevices")
+    public List<ParentDeviceVo> getParentDevices() {
         return deviceServiceImpl.getParentDevices();
     }
 

+ 3 - 9
iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/vo/deviceinfo/DeviceInfoVo.java

@@ -1,28 +1,22 @@
 package cc.iotkit.manager.dto.vo.deviceinfo;
 
 import cc.iotkit.model.device.DeviceInfo;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.github.linpeilie.annotations.AutoMapper;
 import io.github.linpeilie.annotations.AutoMapping;
 import io.github.linpeilie.annotations.ReverseAutoMapping;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
-import lombok.ToString;
 
-import java.util.Date;
 import java.io.Serializable;
-import java.math.BigDecimal;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import io.github.linpeilie.annotations.AutoMapper;
 
 
 @ApiModel(value = "DeviceInfoVo")
 @Data
 @ExcelIgnoreUnannotated
 @AutoMapper(target = DeviceInfo.class)
-
 public class DeviceInfoVo implements Serializable {
 
     private static final long serialVersionUID = -1L;

+ 21 - 0
iot-module/iot-manager/src/main/java/cc/iotkit/manager/dto/vo/deviceinfo/ParentDeviceVo.java

@@ -0,0 +1,21 @@
+package cc.iotkit.manager.dto.vo.deviceinfo;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @Author:tfd
+ * @Date:2023/6/29 14:30
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ParentDeviceVo {
+
+    private String id;
+
+    private String deviceName;
+}

+ 2 - 2
iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/IDeviceService.java

@@ -11,6 +11,7 @@ import cc.iotkit.manager.dto.bo.devicegroup.DeviceGroupBo;
 import cc.iotkit.manager.dto.vo.deviceconfig.DeviceConfigVo;
 import cc.iotkit.manager.dto.vo.devicegroup.DeviceGroupVo;
 import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInfoVo;
+import cc.iotkit.manager.dto.vo.deviceinfo.ParentDeviceVo;
 import cc.iotkit.model.device.DeviceConfig;
 import cc.iotkit.model.device.DeviceGroup;
 import cc.iotkit.model.device.DeviceInfo;
@@ -19,7 +20,6 @@ import cc.iotkit.model.device.message.ThingModelMessage;
 import org.springframework.web.context.request.async.DeferredResult;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @Author: jay
@@ -34,7 +34,7 @@ public interface IDeviceService {
 
     List<DeviceInfoVo> selectChildrenPageList(String deviceId);
 
-    List<Map<String, Object>> getParentDevices();
+    List<ParentDeviceVo> getParentDevices();
 
     DeviceInfo getDetail(String deviceId);
 

+ 9 - 3
iot-module/iot-manager/src/main/java/cc/iotkit/manager/service/impl/DeviceServiceImpl.java

@@ -24,6 +24,7 @@ import cc.iotkit.manager.dto.bo.devicegroup.DeviceGroupBo;
 import cc.iotkit.manager.dto.vo.deviceconfig.DeviceConfigVo;
 import cc.iotkit.manager.dto.vo.devicegroup.DeviceGroupVo;
 import cc.iotkit.manager.dto.vo.deviceinfo.DeviceInfoVo;
+import cc.iotkit.manager.dto.vo.deviceinfo.ParentDeviceVo;
 import cc.iotkit.manager.service.DataOwnerService;
 import cc.iotkit.manager.service.DeferredDataConsumer;
 import cc.iotkit.manager.service.DeviceService;
@@ -44,7 +45,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.context.request.async.DeferredResult;
 
 import java.util.List;
-import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Author: jay
@@ -157,12 +158,17 @@ public class DeviceServiceImpl implements IDeviceService {
     }
 
     @Override
-    public List<Map<String, Object>> getParentDevices() {
+    public List<ParentDeviceVo> getParentDevices() {
         String uid = "";
+        List<ParentDeviceVo> pdv = null;
         if (!AuthUtil.isAdmin()) {
             uid = AuthUtil.getUserId();
         }
-        return deviceInfoData.findByProductNodeType(uid);
+        List<DeviceInfo> ret=deviceInfoData.findByProductNodeType(uid);
+        if(ret.size()>0){
+            pdv=ret.stream().map(r->ParentDeviceVo.builder().id(r.getId()).deviceName(r.getDeviceName()).build()).collect(Collectors.toList());
+        }
+        return pdv;
     }
 
     @Override