Commit aa103add1744598bd60771689c0db22a3edc7217

Authored by 云中非
1 parent 98270395

fix: 设备配置相关接口

1.设备配置列表下拉选项数据缺失
2、设备配置列表按租户过滤
@@ -2,13 +2,12 @@ package org.thingsboard.server.common.data.yunteng.utils; @@ -2,13 +2,12 @@ package org.thingsboard.server.common.data.yunteng.utils;
2 2
3 import lombok.extern.slf4j.Slf4j; 3 import lombok.extern.slf4j.Slf4j;
4 import org.springframework.beans.BeanUtils; 4 import org.springframework.beans.BeanUtils;
  5 +import org.thingsboard.server.common.data.DeviceProfile;
  6 +import org.thingsboard.server.common.data.yunteng.dto.DeviceProfileDTO;
5 7
6 import java.lang.reflect.Constructor; 8 import java.lang.reflect.Constructor;
7 import java.lang.reflect.Field; 9 import java.lang.reflect.Field;
8 -import java.util.ArrayList;  
9 -import java.util.Arrays;  
10 -import java.util.Collection;  
11 -import java.util.List; 10 +import java.util.*;
12 11
13 @Slf4j 12 @Slf4j
14 public class ReflectUtils { 13 public class ReflectUtils {
@@ -48,6 +47,15 @@ public class ReflectUtils { @@ -48,6 +47,15 @@ public class ReflectUtils {
48 return targetList; 47 return targetList;
49 } 48 }
50 49
  50 + public static DeviceProfileDTO getDeviceProfileDTO(DeviceProfile entity) {
  51 + DeviceProfileDTO result = new DeviceProfileDTO();
  52 + BeanUtils.copyProperties(entity, result);
  53 + result.setId(entity.getId().getId().toString());
  54 + result.setTenantId(entity.getTenantId().getId().toString());
  55 + result.setDefaultRuleChainId(Optional.ofNullable(entity.getDefaultRuleChainId()).map(uuid ->uuid.getId().toString()).orElse(null));
  56 + return result;
  57 + }
  58 +
51 59
52 /** 60 /**
53 * 获取类的所有属性,包含父类的【public private protected】 61 * 获取类的所有属性,包含父类的【public private protected】
@@ -28,6 +28,7 @@ import org.thingsboard.server.dao.DaoUtil; @@ -28,6 +28,7 @@ import org.thingsboard.server.dao.DaoUtil;
28 import org.thingsboard.server.dao.sql.device.JpaDeviceProfileDao; 28 import org.thingsboard.server.dao.sql.device.JpaDeviceProfileDao;
29 import org.thingsboard.server.dao.yunteng.repository.YtDeviceProfileRepository; 29 import org.thingsboard.server.dao.yunteng.repository.YtDeviceProfileRepository;
30 30
  31 +import java.util.List;
31 import java.util.Objects; 32 import java.util.Objects;
32 33
33 @Component 34 @Component
@@ -55,5 +56,10 @@ public class YtJpaDeviceProfileDao extends JpaDeviceProfileDao { @@ -55,5 +56,10 @@ public class YtJpaDeviceProfileDao extends JpaDeviceProfileDao {
55 } 56 }
56 } 57 }
57 58
  59 + public List<DeviceProfileDTO> findDeviceProfileByTenantId(TenantId tenantId) {
  60 + return ytDeviceProfileRepository.findDeviceProfileByTenantId(tenantId.getId());
  61 +
  62 + }
  63 +
58 64
59 } 65 }
@@ -158,8 +158,7 @@ public class YtDeviceProfileServiceImpl @@ -158,8 +158,7 @@ public class YtDeviceProfileServiceImpl
158 TenantId tenant = new TenantId(UUID.fromString(tenantId)); 158 TenantId tenant = new TenantId(UUID.fromString(tenantId));
159 DeviceProfile profile = deviceProfileDao.findById(tenant, UUID.fromString(id)); 159 DeviceProfile profile = deviceProfileDao.findById(tenant, UUID.fromString(id));
160 return Optional.ofNullable(profile).map(entity -> { 160 return Optional.ofNullable(profile).map(entity -> {
161 - DeviceProfileDTO result = new DeviceProfileDTO();  
162 - BeanUtils.copyProperties(entity, result); 161 + DeviceProfileDTO result = ReflectUtils.getDeviceProfileDTO(entity);
163 return result; 162 return result;
164 }); 163 });
165 } 164 }
@@ -180,7 +179,7 @@ public class YtDeviceProfileServiceImpl @@ -180,7 +179,7 @@ public class YtDeviceProfileServiceImpl
180 @Override 179 @Override
181 public List<DeviceProfileDTO> findDeviceProfile(String tenantId) { 180 public List<DeviceProfileDTO> findDeviceProfile(String tenantId) {
182 UUID profileId = UUID.fromString(tenantId); 181 UUID profileId = UUID.fromString(tenantId);
183 - List<DeviceProfile> profile = deviceProfileDao.find(new TenantId(profileId));  
184 - return ReflectUtils.sourceToTarget(profile, DeviceProfileDTO.class); 182 + List<DeviceProfileDTO> results = deviceProfileDao.findDeviceProfileByTenantId(new TenantId(profileId));
  183 + return results;
185 } 184 }
186 } 185 }
@@ -24,6 +24,7 @@ import org.thingsboard.server.common.data.DeviceTransportType; @@ -24,6 +24,7 @@ import org.thingsboard.server.common.data.DeviceTransportType;
24 import org.thingsboard.server.common.data.yunteng.dto.DeviceProfileDTO; 24 import org.thingsboard.server.common.data.yunteng.dto.DeviceProfileDTO;
25 import org.thingsboard.server.dao.model.sql.DeviceProfileEntity; 25 import org.thingsboard.server.dao.model.sql.DeviceProfileEntity;
26 26
  27 +import java.util.List;
27 import java.util.UUID; 28 import java.util.UUID;
28 29
29 public interface YtDeviceProfileRepository extends JpaRepository<DeviceProfileEntity, UUID> { 30 public interface YtDeviceProfileRepository extends JpaRepository<DeviceProfileEntity, UUID> {
@@ -45,4 +46,8 @@ public interface YtDeviceProfileRepository extends JpaRepository<DeviceProfileEn @@ -45,4 +46,8 @@ public interface YtDeviceProfileRepository extends JpaRepository<DeviceProfileEn
45 Pageable pageable); 46 Pageable pageable);
46 47
47 48
  49 + @Query("SELECT new org.thingsboard.server.common.data.yunteng.dto.DeviceProfileDTO(d.id, d.name, d.createdTime,d.description, d.transportType, d.defaultRuleChainId) " +
  50 + "FROM DeviceProfileEntity d WHERE d.tenantId = :tenantId ")
  51 + List<DeviceProfileDTO> findDeviceProfileByTenantId(@Param("tenantId") UUID tenantId);
  52 +
48 } 53 }