Added findEntityViewByTenantIdAndEdgeIdAndType and findDevicesByTenantIdAndEdgeIdAndDeviceProfileId
This commit is contained in:
parent
3ffa7e3592
commit
c19cf2372e
@ -701,6 +701,8 @@ public class DeviceController extends BaseController {
|
||||
@PathVariable(EDGE_ID) String strEdgeId,
|
||||
@RequestParam int pageSize,
|
||||
@RequestParam int page,
|
||||
@RequestParam(required = false) String type,
|
||||
@RequestParam(required = false) String deviceProfileId,
|
||||
@RequestParam(required = false) String textSearch,
|
||||
@RequestParam(required = false) String sortProperty,
|
||||
@RequestParam(required = false) String sortOrder,
|
||||
@ -712,7 +714,15 @@ public class DeviceController extends BaseController {
|
||||
EdgeId edgeId = new EdgeId(toUUID(strEdgeId));
|
||||
checkEdgeId(edgeId, Operation.READ);
|
||||
TimePageLink pageLink = createTimePageLink(pageSize, page, textSearch, sortProperty, sortOrder, startTime, endTime);
|
||||
return checkNotNull(deviceService.findDevicesByTenantIdAndEdgeId(tenantId, edgeId, pageLink));
|
||||
if (type != null && type.trim().length() > 0) {
|
||||
return checkNotNull(deviceService.findDevicesByTenantIdAndEdgeIdAndType(tenantId, edgeId, type, pageLink));
|
||||
}
|
||||
else if (deviceProfileId != null && deviceProfileId.length() > 0) {
|
||||
DeviceProfileId profileId = new DeviceProfileId(toUUID(deviceProfileId));
|
||||
return checkNotNull(deviceService.findDevicesByTenantIdAndEdgeIdAndDeviceProfileId(tenantId, edgeId, profileId, pageLink));
|
||||
} else {
|
||||
return checkNotNull(deviceService.findDevicesByTenantIdAndEdgeId(tenantId, edgeId, pageLink));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw handleException(e);
|
||||
}
|
||||
|
||||
@ -677,6 +677,7 @@ public class EntityViewController extends BaseController {
|
||||
@PathVariable(EDGE_ID) String strEdgeId,
|
||||
@RequestParam int pageSize,
|
||||
@RequestParam int page,
|
||||
@RequestParam(required = false) String type,
|
||||
@RequestParam(required = false) String textSearch,
|
||||
@RequestParam(required = false) String sortProperty,
|
||||
@RequestParam(required = false) String sortOrder,
|
||||
@ -688,7 +689,11 @@ public class EntityViewController extends BaseController {
|
||||
EdgeId edgeId = new EdgeId(toUUID(strEdgeId));
|
||||
checkEdgeId(edgeId, Operation.READ);
|
||||
TimePageLink pageLink = createTimePageLink(pageSize, page, textSearch, sortProperty, sortOrder, startTime, endTime);
|
||||
return checkNotNull(entityViewService.findEntityViewsByTenantIdAndEdgeId(tenantId, edgeId, pageLink));
|
||||
if (type != null && type.trim().length() > 0) {
|
||||
return checkNotNull(entityViewService.findEntityViewsByTenantIdAndEdgeIdAndType(tenantId, edgeId, type, pageLink));
|
||||
} else {
|
||||
return checkNotNull(entityViewService.findEntityViewsByTenantIdAndEdgeId(tenantId, edgeId, pageLink));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw handleException(e);
|
||||
}
|
||||
|
||||
@ -90,4 +90,9 @@ public interface DeviceService {
|
||||
Device unassignDeviceFromEdge(TenantId tenantId, DeviceId deviceId, EdgeId edgeId);
|
||||
|
||||
PageData<Device> findDevicesByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, TimePageLink pageLink);
|
||||
|
||||
PageData<Device> findDevicesByTenantIdAndEdgeIdAndType(TenantId tenantId, EdgeId edgeId, String type, TimePageLink pageLink);
|
||||
|
||||
PageData<Device> findDevicesByTenantIdAndEdgeIdAndDeviceProfileId(TenantId tenantId, EdgeId edgeId, DeviceProfileId deviceProfileId, TimePageLink pageLink);
|
||||
|
||||
}
|
||||
|
||||
@ -83,4 +83,6 @@ public interface EntityViewService {
|
||||
EntityView unassignEntityViewFromEdge(TenantId tenantId, EntityViewId entityViewId, EdgeId edgeId);
|
||||
|
||||
PageData<EntityView> findEntityViewsByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, TimePageLink pageLink);
|
||||
|
||||
PageData<EntityView> findEntityViewsByTenantIdAndEdgeIdAndType(TenantId tenantId, EdgeId edgeId, String type, TimePageLink pageLink);
|
||||
}
|
||||
|
||||
@ -226,4 +226,27 @@ public interface DeviceDao extends Dao<Device> {
|
||||
* @return the list of device objects
|
||||
*/
|
||||
PageData<Device> findDevicesByTenantIdAndEdgeId(UUID tenantId, UUID edgeId, TimePageLink pageLink);
|
||||
|
||||
/**
|
||||
* Find devices by tenantId, edgeId, type and page link.
|
||||
*
|
||||
* @param tenantId the tenantId
|
||||
* @param edgeId the edgeId
|
||||
* @param type the type
|
||||
* @param pageLink the page link
|
||||
* @return the list of device objects
|
||||
*/
|
||||
PageData<Device> findDevicesByTenantIdAndEdgeIdAndType(UUID tenantId, UUID edgeId, String type, TimePageLink pageLink);
|
||||
|
||||
/**
|
||||
* Find devices by tenantId, edgeId, type, deviceProfileId and page link.
|
||||
*
|
||||
* @param tenantId the tenantId
|
||||
* @param edgeId the edgeId
|
||||
* @param deviceProfileId the deviceProfileId
|
||||
* @param pageLink the page link
|
||||
* @return the list of device objects
|
||||
*/
|
||||
PageData<Device> findDevicesByTenantIdAndEdgeIdAndDeviceProfileId(UUID tenantId, UUID edgeId, UUID deviceProfileId, TimePageLink pageLink);
|
||||
|
||||
}
|
||||
|
||||
@ -515,6 +515,26 @@ public class DeviceServiceImpl extends AbstractEntityService implements DeviceSe
|
||||
return deviceDao.findDevicesByTenantIdAndEdgeId(tenantId.getId(), edgeId.getId(), pageLink);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageData<Device> findDevicesByTenantIdAndEdgeIdAndType(TenantId tenantId, EdgeId edgeId, String type, TimePageLink pageLink) {
|
||||
log.trace("Executing findDevicesByTenantIdAndEdgeIdAndType, tenantId [{}], edgeId [{}], type [{}], pageLink [{}]", tenantId, edgeId, type, pageLink);
|
||||
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
|
||||
validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
|
||||
validateString(type, "Incorrect type " + type);
|
||||
validatePageLink(pageLink);
|
||||
return deviceDao.findDevicesByTenantIdAndEdgeIdAndType(tenantId.getId(), edgeId.getId(), type, pageLink);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageData<Device> findDevicesByTenantIdAndEdgeIdAndDeviceProfileId(TenantId tenantId, EdgeId edgeId, DeviceProfileId deviceProfileId, TimePageLink pageLink) {
|
||||
log.trace("Executing findDevicesByTenantIdAndEdgeIdAndDeviceProfileId, tenantId [{}], edgeId [{}], deviceProfileId [{}], pageLink [{}]", tenantId, edgeId, deviceProfileId, pageLink);
|
||||
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
|
||||
validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
|
||||
validateId(deviceProfileId, INCORRECT_DEVICE_PROFILE_ID + deviceProfileId);
|
||||
validatePageLink(pageLink);
|
||||
return deviceDao.findDevicesByTenantIdAndEdgeIdAndDeviceProfileId(tenantId.getId(), edgeId.getId(), deviceProfileId.getId(), pageLink);
|
||||
}
|
||||
|
||||
private DataValidator<Device> deviceValidator =
|
||||
new DataValidator<Device>() {
|
||||
|
||||
|
||||
@ -165,4 +165,18 @@ public interface EntityViewDao extends Dao<EntityView> {
|
||||
UUID edgeId,
|
||||
PageLink pageLink);
|
||||
|
||||
/**
|
||||
* Find entity views by tenantId, edgeId, type and page link.
|
||||
*
|
||||
* @param tenantId the tenantId
|
||||
* @param edgeId the edgeId
|
||||
* @param type the type
|
||||
* @param pageLink the page link
|
||||
* @return the list of entity view objects
|
||||
*/
|
||||
PageData<EntityView> findEntityViewsByTenantIdAndEdgeIdAndType(UUID tenantId,
|
||||
UUID edgeId,
|
||||
String type,
|
||||
PageLink pageLink);
|
||||
|
||||
}
|
||||
|
||||
@ -390,6 +390,16 @@ public class EntityViewServiceImpl extends AbstractEntityService implements Enti
|
||||
return entityViewDao.findEntityViewsByTenantIdAndEdgeId(tenantId.getId(), edgeId.getId(), pageLink);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageData<EntityView> findEntityViewsByTenantIdAndEdgeIdAndType(TenantId tenantId, EdgeId edgeId, String type, TimePageLink pageLink) {
|
||||
log.trace("Executing findEntityViewsByTenantIdAndEdgeIdAndType, tenantId [{}], edgeId [{}], type [{}], pageLink [{}]", tenantId, edgeId, type, pageLink);
|
||||
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
|
||||
validateId(edgeId, INCORRECT_EDGE_ID + edgeId);
|
||||
validateString(type, "Incorrect type " + type);
|
||||
validatePageLink(pageLink);
|
||||
return entityViewDao.findEntityViewsByTenantIdAndEdgeIdAndType(tenantId.getId(), edgeId.getId(), type, pageLink);
|
||||
}
|
||||
|
||||
private DataValidator<EntityView> entityViewValidator =
|
||||
new DataValidator<EntityView>() {
|
||||
|
||||
|
||||
@ -20,7 +20,6 @@ import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.thingsboard.server.dao.model.sql.AssetEntity;
|
||||
import org.thingsboard.server.dao.model.sql.DeviceEntity;
|
||||
import org.thingsboard.server.dao.model.sql.DeviceInfoEntity;
|
||||
|
||||
@ -179,4 +178,42 @@ public interface DeviceRepository extends PagingAndSortingRepository<DeviceEntit
|
||||
@Param("searchText") String searchText,
|
||||
Pageable pageable);
|
||||
|
||||
@Query("SELECT d FROM DeviceEntity d, RelationEntity re WHERE d.tenantId = :tenantId " +
|
||||
"AND d.id = re.toId AND re.toType = 'DEVICE' AND re.relationTypeGroup = 'EDGE' " +
|
||||
"AND re.relationType = 'Contains' AND re.fromId = :edgeId AND re.fromType = 'EDGE' " +
|
||||
"AND d.type = :type " +
|
||||
"AND LOWER(d.searchText) LIKE LOWER(CONCAT(:searchText, '%'))")
|
||||
Page<DeviceEntity> findByTenantIdAndEdgeIdAndType(@Param("tenantId") UUID tenantId,
|
||||
@Param("edgeId") UUID edgeId,
|
||||
@Param("type") String type,
|
||||
@Param("searchText") String searchText,
|
||||
Pageable pageable);
|
||||
|
||||
@Query("SELECT d FROM DeviceEntity d, RelationEntity re " +
|
||||
"LEFT JOIN DeviceProfileEntity p on p.id = d.deviceProfileId " +
|
||||
"WHERE d.tenantId = :tenantId " +
|
||||
"AND d.id = re.toId AND re.toType = 'DEVICE' AND re.relationTypeGroup = 'EDGE' " +
|
||||
"AND re.relationType = 'Contains' AND re.fromId = :edgeId AND re.fromType = 'EDGE' " +
|
||||
"AND d.deviceProfileId = :deviceProfileId " +
|
||||
"AND LOWER(d.searchText) LIKE LOWER(CONCAT(:searchText, '%'))")
|
||||
Page<DeviceEntity> findDevicesByTenantIdAndEdgeIdAndDeviceProfileId(@Param("tenantId") UUID tenantId,
|
||||
@Param("edgeId") UUID edgeId,
|
||||
@Param("deviceProfileId") UUID deviceProfileId,
|
||||
@Param("searchText") String searchText,
|
||||
Pageable pageable);
|
||||
|
||||
// @Query("SELECT new org.thingsboard.server.dao.model.sql.DeviceInfoEntity(d, c.title, c.additionalInfo, p.name) " +
|
||||
// "FROM DeviceEntity d " +
|
||||
// "LEFT JOIN CustomerEntity c on c.id = d.customerId " +
|
||||
// "LEFT JOIN DeviceProfileEntity p on p.id = d.deviceProfileId " +
|
||||
// "WHERE d.tenantId = :tenantId " +
|
||||
// "AND d.customerId = :customerId " +
|
||||
// "AND d.deviceProfileId = :deviceProfileId " +
|
||||
// "AND LOWER(d.searchText) LIKE LOWER(CONCAT(:textSearch, '%'))")
|
||||
// Page<DeviceInfoEntity> findDeviceInfosByTenantIdAndCustomerIdAndDeviceProfileId2(@Param("tenantId") UUID tenantId,
|
||||
// @Param("customerId") UUID customerId,
|
||||
// @Param("deviceProfileId") UUID deviceProfileId,
|
||||
// @Param("textSearch") String textSearch,
|
||||
// Pageable pageable);
|
||||
|
||||
}
|
||||
|
||||
@ -243,4 +243,28 @@ public class JpaDeviceDao extends JpaAbstractSearchTextDao<DeviceEntity, Device>
|
||||
Objects.toString(pageLink.getTextSearch(), ""),
|
||||
DaoUtil.toPageable(pageLink)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageData<Device> findDevicesByTenantIdAndEdgeIdAndType(UUID tenantId, UUID edgeId, String type, TimePageLink pageLink) {
|
||||
log.debug("Try to find devices by tenantId [{}], edgeId [{}], type [{}] and pageLink [{}]", tenantId, edgeId, type, pageLink);
|
||||
return DaoUtil.toPageData(deviceRepository
|
||||
.findByTenantIdAndEdgeIdAndType(
|
||||
tenantId,
|
||||
edgeId,
|
||||
type,
|
||||
Objects.toString(pageLink.getTextSearch(), ""),
|
||||
DaoUtil.toPageable(pageLink)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageData<Device> findDevicesByTenantIdAndEdgeIdAndDeviceProfileId(UUID tenantId, UUID edgeId, UUID deviceProfileId, TimePageLink pageLink) {
|
||||
log.debug("Try to find devices by tenantId [{}], edgeId [{}], deviceProfileId [{}] and pageLink [{}]", tenantId, edgeId, deviceProfileId, pageLink);
|
||||
return DaoUtil.toPageData(deviceRepository
|
||||
.findDevicesByTenantIdAndEdgeIdAndDeviceProfileId(
|
||||
tenantId,
|
||||
edgeId,
|
||||
deviceProfileId,
|
||||
Objects.toString(pageLink.getTextSearch(), ""),
|
||||
DaoUtil.toPageable(pageLink)));
|
||||
}
|
||||
}
|
||||
|
||||
@ -129,4 +129,15 @@ public interface EntityViewRepository extends PagingAndSortingRepository<EntityV
|
||||
@Param("edgeId") UUID edgeId,
|
||||
@Param("searchText") String searchText,
|
||||
Pageable pageable);
|
||||
|
||||
@Query("SELECT ev FROM EntityViewEntity ev, RelationEntity re WHERE ev.tenantId = :tenantId " +
|
||||
"AND ev.id = re.toId AND re.toType = 'ENTITY_VIEW' AND re.relationTypeGroup = 'EDGE' " +
|
||||
"AND re.relationType = 'Contains' AND re.fromId = :edgeId AND re.fromType = 'EDGE' " +
|
||||
"AND ev.type = :type " +
|
||||
"AND LOWER(ev.searchText) LIKE LOWER(CONCAT(:searchText, '%'))")
|
||||
Page<EntityViewEntity> findByTenantIdAndEdgeIdAndType(@Param("tenantId") UUID tenantId,
|
||||
@Param("edgeId") UUID edgeId,
|
||||
@Param("type") String type,
|
||||
@Param("searchText") String searchText,
|
||||
Pageable pageable);
|
||||
}
|
||||
|
||||
@ -192,4 +192,16 @@ public class JpaEntityViewDao extends JpaAbstractSearchTextDao<EntityViewEntity,
|
||||
Objects.toString(pageLink.getTextSearch(), ""),
|
||||
DaoUtil.toPageable(pageLink)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageData<EntityView> findEntityViewsByTenantIdAndEdgeIdAndType(UUID tenantId, UUID edgeId, String type, PageLink pageLink) {
|
||||
log.debug("Try to find entity views by tenantId [{}], edgeId [{}], type [{}] and pageLink [{}]", tenantId, edgeId, type, pageLink);
|
||||
return DaoUtil.toPageData(entityViewRepository
|
||||
.findByTenantIdAndEdgeIdAndType(
|
||||
tenantId,
|
||||
edgeId,
|
||||
type,
|
||||
Objects.toString(pageLink.getTextSearch(), ""),
|
||||
DaoUtil.toPageable(pageLink)));
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user