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,
|
@PathVariable(EDGE_ID) String strEdgeId,
|
||||||
@RequestParam int pageSize,
|
@RequestParam int pageSize,
|
||||||
@RequestParam int page,
|
@RequestParam int page,
|
||||||
|
@RequestParam(required = false) String type,
|
||||||
|
@RequestParam(required = false) String deviceProfileId,
|
||||||
@RequestParam(required = false) String textSearch,
|
@RequestParam(required = false) String textSearch,
|
||||||
@RequestParam(required = false) String sortProperty,
|
@RequestParam(required = false) String sortProperty,
|
||||||
@RequestParam(required = false) String sortOrder,
|
@RequestParam(required = false) String sortOrder,
|
||||||
@ -712,7 +714,15 @@ public class DeviceController extends BaseController {
|
|||||||
EdgeId edgeId = new EdgeId(toUUID(strEdgeId));
|
EdgeId edgeId = new EdgeId(toUUID(strEdgeId));
|
||||||
checkEdgeId(edgeId, Operation.READ);
|
checkEdgeId(edgeId, Operation.READ);
|
||||||
TimePageLink pageLink = createTimePageLink(pageSize, page, textSearch, sortProperty, sortOrder, startTime, endTime);
|
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) {
|
} catch (Exception e) {
|
||||||
throw handleException(e);
|
throw handleException(e);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -677,6 +677,7 @@ public class EntityViewController extends BaseController {
|
|||||||
@PathVariable(EDGE_ID) String strEdgeId,
|
@PathVariable(EDGE_ID) String strEdgeId,
|
||||||
@RequestParam int pageSize,
|
@RequestParam int pageSize,
|
||||||
@RequestParam int page,
|
@RequestParam int page,
|
||||||
|
@RequestParam(required = false) String type,
|
||||||
@RequestParam(required = false) String textSearch,
|
@RequestParam(required = false) String textSearch,
|
||||||
@RequestParam(required = false) String sortProperty,
|
@RequestParam(required = false) String sortProperty,
|
||||||
@RequestParam(required = false) String sortOrder,
|
@RequestParam(required = false) String sortOrder,
|
||||||
@ -688,7 +689,11 @@ public class EntityViewController extends BaseController {
|
|||||||
EdgeId edgeId = new EdgeId(toUUID(strEdgeId));
|
EdgeId edgeId = new EdgeId(toUUID(strEdgeId));
|
||||||
checkEdgeId(edgeId, Operation.READ);
|
checkEdgeId(edgeId, Operation.READ);
|
||||||
TimePageLink pageLink = createTimePageLink(pageSize, page, textSearch, sortProperty, sortOrder, startTime, endTime);
|
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) {
|
} catch (Exception e) {
|
||||||
throw handleException(e);
|
throw handleException(e);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -90,4 +90,9 @@ public interface DeviceService {
|
|||||||
Device unassignDeviceFromEdge(TenantId tenantId, DeviceId deviceId, EdgeId edgeId);
|
Device unassignDeviceFromEdge(TenantId tenantId, DeviceId deviceId, EdgeId edgeId);
|
||||||
|
|
||||||
PageData<Device> findDevicesByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, TimePageLink pageLink);
|
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);
|
EntityView unassignEntityViewFromEdge(TenantId tenantId, EntityViewId entityViewId, EdgeId edgeId);
|
||||||
|
|
||||||
PageData<EntityView> findEntityViewsByTenantIdAndEdgeId(TenantId tenantId, EdgeId edgeId, TimePageLink pageLink);
|
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
|
* @return the list of device objects
|
||||||
*/
|
*/
|
||||||
PageData<Device> findDevicesByTenantIdAndEdgeId(UUID tenantId, UUID edgeId, TimePageLink pageLink);
|
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);
|
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 =
|
private DataValidator<Device> deviceValidator =
|
||||||
new DataValidator<Device>() {
|
new DataValidator<Device>() {
|
||||||
|
|
||||||
|
|||||||
@ -165,4 +165,18 @@ public interface EntityViewDao extends Dao<EntityView> {
|
|||||||
UUID edgeId,
|
UUID edgeId,
|
||||||
PageLink pageLink);
|
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);
|
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 =
|
private DataValidator<EntityView> entityViewValidator =
|
||||||
new DataValidator<EntityView>() {
|
new DataValidator<EntityView>() {
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,6 @@ import org.springframework.data.domain.Pageable;
|
|||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||||
import org.springframework.data.repository.query.Param;
|
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.DeviceEntity;
|
||||||
import org.thingsboard.server.dao.model.sql.DeviceInfoEntity;
|
import org.thingsboard.server.dao.model.sql.DeviceInfoEntity;
|
||||||
|
|
||||||
@ -179,4 +178,42 @@ public interface DeviceRepository extends PagingAndSortingRepository<DeviceEntit
|
|||||||
@Param("searchText") String searchText,
|
@Param("searchText") String searchText,
|
||||||
Pageable pageable);
|
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(), ""),
|
Objects.toString(pageLink.getTextSearch(), ""),
|
||||||
DaoUtil.toPageable(pageLink)));
|
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("edgeId") UUID edgeId,
|
||||||
@Param("searchText") String searchText,
|
@Param("searchText") String searchText,
|
||||||
Pageable pageable);
|
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(), ""),
|
Objects.toString(pageLink.getTextSearch(), ""),
|
||||||
DaoUtil.toPageable(pageLink)));
|
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