Browse Source

added api to retrieve queuestats by ids

pull/10920/head
dashevchenko 2 years ago
parent
commit
78e4fd3013
  1. 18
      application/src/main/java/org/thingsboard/server/controller/QueueStatsController.java
  2. 4
      common/dao-api/src/main/java/org/thingsboard/server/dao/queue/QueueStatsService.java
  3. 10
      dao/src/main/java/org/thingsboard/server/dao/queue/BaseQueueStatsService.java
  4. 5
      dao/src/main/java/org/thingsboard/server/dao/queue/QueueStatsDao.java
  5. 9
      dao/src/main/java/org/thingsboard/server/dao/sql/queue/JpaQueueStatsDao.java
  6. 3
      dao/src/main/java/org/thingsboard/server/dao/sql/queue/QueueStatsRepository.java

18
application/src/main/java/org/thingsboard/server/controller/QueueStatsController.java

@ -34,6 +34,8 @@ import org.thingsboard.server.config.annotations.ApiOperation;
import org.thingsboard.server.dao.queue.QueueStatsService; import org.thingsboard.server.dao.queue.QueueStatsService;
import org.thingsboard.server.queue.util.TbCoreComponent; import org.thingsboard.server.queue.util.TbCoreComponent;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import static org.thingsboard.server.controller.ControllerConstants.PAGE_DATA_PARAMETERS; import static org.thingsboard.server.controller.ControllerConstants.PAGE_DATA_PARAMETERS;
@ -84,4 +86,20 @@ public class QueueStatsController extends BaseController {
QueueStatsId queueStatsId = new QueueStatsId(UUID.fromString(queueStatsIdStr)); QueueStatsId queueStatsId = new QueueStatsId(UUID.fromString(queueStatsIdStr));
return checkNotNull(queueStatsService.findQueueStatsById(getTenantId(), queueStatsId)); return checkNotNull(queueStatsService.findQueueStatsById(getTenantId(), queueStatsId));
} }
@ApiOperation(value = "Get QueueStats By Ids (getQueueStatsByIds)",
notes = "Fetch the Queue stats objects based on the provided ids. ")
@PreAuthorize("hasAnyAuthority('SYS_ADMIN', 'TENANT_ADMIN')")
@RequestMapping(value = "/queueStats", params = {"strQueueStatsIds"}, method = RequestMethod.GET)
@ResponseBody
public List<QueueStats> getQueueStatsByIds(
@Parameter(description = "A list of queue stats ids, separated by comma ','", required = true)
@RequestParam("strQueueStatsIds") String[] strQueueStatsIds) throws ThingsboardException {
checkArrayParameter("strQueueStatsIds", strQueueStatsIds);
List<QueueStatsId> queueStatsIds = new ArrayList<>();
for (String queueStatsId : strQueueStatsIds) {
queueStatsIds.add(new QueueStatsId(toUUID(queueStatsId)));
}
return queueStatsService.findQueueStatsByIds(getTenantId(), queueStatsIds);
}
} }

4
common/dao-api/src/main/java/org/thingsboard/server/dao/queue/QueueStatsService.java

@ -22,12 +22,16 @@ import org.thingsboard.server.common.data.page.PageLink;
import org.thingsboard.server.common.data.queue.QueueStats; import org.thingsboard.server.common.data.queue.QueueStats;
import org.thingsboard.server.dao.entity.EntityDaoService; import org.thingsboard.server.dao.entity.EntityDaoService;
import java.util.List;
public interface QueueStatsService extends EntityDaoService { public interface QueueStatsService extends EntityDaoService {
QueueStats save(TenantId tenantId, QueueStats queueStats); QueueStats save(TenantId tenantId, QueueStats queueStats);
QueueStats findQueueStatsById(TenantId tenantId, QueueStatsId queueStatsId); QueueStats findQueueStatsById(TenantId tenantId, QueueStatsId queueStatsId);
List<QueueStats> findQueueStatsByIds(TenantId tenantId, List<QueueStatsId> queueStatsId);
QueueStats findByTenantIdAndNameAndServiceId(TenantId tenantId, String queueName, String serviceId); QueueStats findByTenantIdAndNameAndServiceId(TenantId tenantId, String queueName, String serviceId);
PageData<QueueStats> findByTenantId(TenantId tenantId, PageLink pageLink); PageData<QueueStats> findByTenantId(TenantId tenantId, PageLink pageLink);

10
dao/src/main/java/org/thingsboard/server/dao/queue/BaseQueueStatsService.java

@ -30,9 +30,11 @@ import org.thingsboard.server.dao.entity.AbstractEntityService;
import org.thingsboard.server.dao.service.DataValidator; import org.thingsboard.server.dao.service.DataValidator;
import org.thingsboard.server.dao.service.Validator; import org.thingsboard.server.dao.service.Validator;
import java.util.List;
import java.util.Optional; import java.util.Optional;
import static org.thingsboard.server.dao.service.Validator.validateId; import static org.thingsboard.server.dao.service.Validator.validateId;
import static org.thingsboard.server.dao.service.Validator.validateIds;
@Service("QueueStatsDaoService") @Service("QueueStatsDaoService")
@Slf4j @Slf4j
@ -59,6 +61,14 @@ public class BaseQueueStatsService extends AbstractEntityService implements Queu
return queueStatsDao.findById(tenantId, queueStatsId.getId()); return queueStatsDao.findById(tenantId, queueStatsId.getId());
} }
@Override
public List<QueueStats> findQueueStatsByIds(TenantId tenantId, List<QueueStatsId> queueStatsIds) {
log.trace("Executing findQueueStatsByIds, tenantId [{}], queueStatsIds [{}]", tenantId, queueStatsIds);
validateId(tenantId, id -> INCORRECT_TENANT_ID + id);
validateIds(queueStatsIds, ids -> "Incorrect queueStatsIds " + ids);
return queueStatsDao.findByIds(tenantId, queueStatsIds);
}
@Override @Override
public QueueStats findByTenantIdAndNameAndServiceId(TenantId tenantId, String queueName, String serviceId) { public QueueStats findByTenantIdAndNameAndServiceId(TenantId tenantId, String queueName, String serviceId) {
log.trace("Executing findByTenantIdAndNameAndServiceId, tenantId: [{}], queueName: [{}], serviceId: [{}]", tenantId, queueName, serviceId); log.trace("Executing findByTenantIdAndNameAndServiceId, tenantId: [{}], queueName: [{}], serviceId: [{}]", tenantId, queueName, serviceId);

5
dao/src/main/java/org/thingsboard/server/dao/queue/QueueStatsDao.java

@ -15,12 +15,15 @@
*/ */
package org.thingsboard.server.dao.queue; package org.thingsboard.server.dao.queue;
import org.thingsboard.server.common.data.id.QueueStatsId;
import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.page.PageLink;
import org.thingsboard.server.common.data.queue.QueueStats; import org.thingsboard.server.common.data.queue.QueueStats;
import org.thingsboard.server.dao.Dao; import org.thingsboard.server.dao.Dao;
import java.util.List;
public interface QueueStatsDao extends Dao<QueueStats> { public interface QueueStatsDao extends Dao<QueueStats> {
QueueStats findByTenantIdQueueNameAndServiceId(TenantId tenantId, String queueName, String serviceId); QueueStats findByTenantIdQueueNameAndServiceId(TenantId tenantId, String queueName, String serviceId);
@ -29,4 +32,6 @@ public interface QueueStatsDao extends Dao<QueueStats> {
void deleteByTenantId(TenantId tenantId); void deleteByTenantId(TenantId tenantId);
List<QueueStats> findByIds(TenantId tenantId, List<QueueStatsId> queueStatsIds);
} }

9
dao/src/main/java/org/thingsboard/server/dao/sql/queue/JpaQueueStatsDao.java

@ -20,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.thingsboard.server.common.data.EntityType; import org.thingsboard.server.common.data.EntityType;
import org.thingsboard.server.common.data.id.QueueStatsId;
import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.id.TenantId;
import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageData;
import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.page.PageLink;
@ -30,8 +31,11 @@ import org.thingsboard.server.dao.queue.QueueStatsDao;
import org.thingsboard.server.dao.sql.JpaAbstractDao; import org.thingsboard.server.dao.sql.JpaAbstractDao;
import org.thingsboard.server.dao.util.SqlDao; import org.thingsboard.server.dao.util.SqlDao;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import static org.thingsboard.server.dao.DaoUtil.toUUIDs;
@Slf4j @Slf4j
@Component @Component
@SqlDao @SqlDao
@ -65,6 +69,11 @@ public class JpaQueueStatsDao extends JpaAbstractDao<QueueStatsEntity, QueueStat
queueStatsRepository.deleteByTenantId(tenantId.getId()); queueStatsRepository.deleteByTenantId(tenantId.getId());
} }
@Override
public List<QueueStats> findByIds(TenantId tenantId, List<QueueStatsId> queueStatsIds) {
return DaoUtil.convertDataList(queueStatsRepository.findByTenantIdAndIdIn(tenantId.getId(), toUUIDs(queueStatsIds)));
}
@Override @Override
public EntityType getEntityType() { public EntityType getEntityType() {
return EntityType.QUEUE_STATS; return EntityType.QUEUE_STATS;

3
dao/src/main/java/org/thingsboard/server/dao/sql/queue/QueueStatsRepository.java

@ -24,6 +24,7 @@ import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.thingsboard.server.dao.model.sql.QueueStatsEntity; import org.thingsboard.server.dao.model.sql.QueueStatsEntity;
import java.util.List;
import java.util.UUID; import java.util.UUID;
public interface QueueStatsRepository extends JpaRepository<QueueStatsEntity, UUID> { public interface QueueStatsRepository extends JpaRepository<QueueStatsEntity, UUID> {
@ -42,4 +43,6 @@ public interface QueueStatsRepository extends JpaRepository<QueueStatsEntity, UU
@Query("DELETE FROM QueueStatsEntity t WHERE t.tenantId = :tenantId") @Query("DELETE FROM QueueStatsEntity t WHERE t.tenantId = :tenantId")
void deleteByTenantId(@Param("tenantId") UUID tenantId); void deleteByTenantId(@Param("tenantId") UUID tenantId);
List<QueueStatsEntity> findByTenantIdAndIdIn(UUID tenantId, List<UUID> queueStatsIds);
} }
Loading…
Cancel
Save