Browse Source

refactoring

pull/8562/head
dashevchenko 3 years ago
parent
commit
49c230c815
  1. 12
      application/src/main/java/org/thingsboard/server/controller/TbResourceController.java
  2. 18
      application/src/main/java/org/thingsboard/server/service/resource/DefaultTbResourceService.java
  3. 8
      application/src/main/java/org/thingsboard/server/service/resource/TbResourceService.java
  4. 10
      application/src/test/java/org/thingsboard/server/service/resource/sql/BaseTbResourceServiceTest.java
  5. 8
      common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java
  6. 22
      dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java
  7. 8
      dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceInfoDao.java
  8. 24
      dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java
  9. 32
      dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java
  10. 2
      dao/src/test/java/org/thingsboard/server/dao/service/TenantServiceTest.java

12
application/src/main/java/org/thingsboard/server/controller/TbResourceController.java

@ -167,17 +167,9 @@ public class TbResourceController extends BaseController {
@RequestParam(required = false) String sortOrder) throws ThingsboardException {
PageLink pageLink = createPageLink(pageSize, page, textSearch, sortProperty, sortOrder);
if (Authority.SYS_ADMIN.equals(getCurrentUser().getAuthority())) {
if (StringUtils.isNotEmpty(resourceType)){
return checkNotNull(resourceService.findTenantResourcesByType(getTenantId(), ResourceType.valueOf(resourceType), pageLink));
} else {
return checkNotNull(resourceService.findTenantResourcesByTenantId(getTenantId(), pageLink));
}
return checkNotNull(resourceService.findTenantResourcesByTenantId(getTenantId(), StringUtils.isNotEmpty(resourceType) ? ResourceType.valueOf(resourceType) : null, pageLink));
} else {
if (StringUtils.isNotEmpty(resourceType)){
return checkNotNull(resourceService.findAllTenantResourcesByType(getTenantId(), ResourceType.valueOf(resourceType), pageLink));
} else {
return checkNotNull(resourceService.findAllTenantResourcesByTenantId(getTenantId(), pageLink));
}
return checkNotNull(resourceService.findAllTenantResourcesByTenantId(getTenantId(), StringUtils.isNotEmpty(resourceType) ? ResourceType.valueOf(resourceType) : null, pageLink));
}
}

18
application/src/main/java/org/thingsboard/server/service/resource/DefaultTbResourceService.java

@ -76,23 +76,13 @@ public class DefaultTbResourceService extends AbstractTbEntityService implements
}
@Override
public PageData<TbResourceInfo> findAllTenantResourcesByTenantId(TenantId tenantId, PageLink pageLink) {
return resourceService.findAllTenantResourcesByTenantId(tenantId, pageLink);
public PageData<TbResourceInfo> findAllTenantResourcesByTenantId(TenantId tenantId, ResourceType resourceType, PageLink pageLink) {
return resourceService.findAllTenantResourcesByTenantId(tenantId, resourceType, pageLink);
}
@Override
public PageData<TbResourceInfo> findTenantResourcesByTenantId(TenantId tenantId, PageLink pageLink) {
return resourceService.findTenantResourcesByTenantId(tenantId, pageLink);
}
@Override
public PageData<TbResourceInfo> findAllTenantResourcesByType(TenantId tenantId, ResourceType resourceType, PageLink pageLink) {
return resourceService.findAllTenantResourcesByType(tenantId, resourceType, pageLink);
}
@Override
public PageData<TbResourceInfo> findTenantResourcesByType(TenantId tenantId, ResourceType resourceType, PageLink pageLink) {
return resourceService.findTenantResourcesByType(tenantId, resourceType, pageLink);
public PageData<TbResourceInfo> findTenantResourcesByTenantId(TenantId tenantId, ResourceType resourceType, PageLink pageLink) {
return resourceService.findTenantResourcesByTenantId(tenantId, resourceType, pageLink);
}
@Override

8
application/src/main/java/org/thingsboard/server/service/resource/TbResourceService.java

@ -35,13 +35,9 @@ public interface TbResourceService extends SimpleTbEntityService<TbResource> {
TbResourceInfo findResourceInfoById(TenantId tenantId, TbResourceId resourceId);
PageData<TbResourceInfo> findAllTenantResourcesByTenantId(TenantId tenantId, PageLink pageLink);
PageData<TbResourceInfo> findAllTenantResourcesByTenantId(TenantId tenantId, ResourceType resourceType, PageLink pageLink);
PageData<TbResourceInfo> findTenantResourcesByTenantId(TenantId tenantId, PageLink pageLink);
PageData<TbResourceInfo> findAllTenantResourcesByType(TenantId tenantId, ResourceType resourceType, PageLink pageLink);
PageData<TbResourceInfo> findTenantResourcesByType(TenantId tenantId, ResourceType resourceType, PageLink pageLink);
PageData<TbResourceInfo> findTenantResourcesByTenantId(TenantId tenantId, ResourceType resourceType, PageLink pageLink);
List<LwM2mObject> findLwM2mObject(TenantId tenantId,
String sortOrder,

10
application/src/test/java/org/thingsboard/server/service/resource/sql/BaseTbResourceServiceTest.java

@ -356,7 +356,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
PageLink pageLink = new PageLink(16);
PageData<TbResourceInfo> pageData;
do {
pageData = resourceService.findTenantResourcesByTenantId(tenantId, pageLink);
pageData = resourceService.findTenantResourcesByTenantId(tenantId, null, pageLink);
loadedResources.addAll(pageData.getData());
if (pageData.hasNext()) {
pageLink = pageLink.nextPageLink();
@ -371,7 +371,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
resourceService.deleteResourcesByTenantId(tenantId);
pageLink = new PageLink(31);
pageData = resourceService.findTenantResourcesByTenantId(tenantId, pageLink);
pageData = resourceService.findTenantResourcesByTenantId(tenantId, null, pageLink);
Assert.assertFalse(pageData.hasNext());
Assert.assertTrue(pageData.getData().isEmpty());
@ -417,7 +417,7 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
PageLink pageLink = new PageLink(10);
PageData<TbResourceInfo> pageData;
do {
pageData = resourceService.findAllTenantResourcesByTenantId(tenantId, pageLink);
pageData = resourceService.findAllTenantResourcesByTenantId(tenantId, null, pageLink);
loadedResources.addAll(pageData.getData());
if (pageData.hasNext()) {
pageLink = pageLink.nextPageLink();
@ -432,14 +432,14 @@ public class BaseTbResourceServiceTest extends AbstractControllerTest {
resourceService.deleteResourcesByTenantId(tenantId);
pageLink = new PageLink(100);
pageData = resourceService.findAllTenantResourcesByTenantId(tenantId, pageLink);
pageData = resourceService.findAllTenantResourcesByTenantId(tenantId, null, pageLink);
Assert.assertFalse(pageData.hasNext());
Assert.assertEquals(pageData.getData().size(), 100);
resourceService.deleteResourcesByTenantId(TenantId.SYS_TENANT_ID);
pageLink = new PageLink(100);
pageData = resourceService.findAllTenantResourcesByTenantId(TenantId.SYS_TENANT_ID, pageLink);
pageData = resourceService.findAllTenantResourcesByTenantId(TenantId.SYS_TENANT_ID, null, pageLink);
Assert.assertFalse(pageData.hasNext());
Assert.assertTrue(pageData.getData().isEmpty());

8
common/dao-api/src/main/java/org/thingsboard/server/dao/resource/ResourceService.java

@ -39,13 +39,9 @@ public interface ResourceService extends EntityDaoService {
ListenableFuture<TbResourceInfo> findResourceInfoByIdAsync(TenantId tenantId, TbResourceId resourceId);
PageData<TbResourceInfo> findAllTenantResourcesByTenantId(TenantId tenantId, PageLink pageLink);
PageData<TbResourceInfo> findAllTenantResourcesByTenantId(TenantId tenantId, ResourceType resourceType, PageLink pageLink);
PageData<TbResourceInfo> findTenantResourcesByTenantId(TenantId tenantId, PageLink pageLink);
PageData<TbResourceInfo> findAllTenantResourcesByType(TenantId tenantId, ResourceType resourceType, PageLink pageLink);
PageData<TbResourceInfo> findTenantResourcesByType(TenantId tenantId, ResourceType resourceType, PageLink pageLink);
PageData<TbResourceInfo> findTenantResourcesByTenantId(TenantId tenantId, ResourceType resourceType, PageLink pageLink);
List<TbResource> findTenantResourcesByResourceTypeAndObjectIds(TenantId tenantId, ResourceType lwm2mModel, String[] objectIds);

22
dao/src/main/java/org/thingsboard/server/dao/resource/BaseResourceService.java

@ -103,31 +103,17 @@ public class BaseResourceService implements ResourceService {
}
@Override
public PageData<TbResourceInfo> findAllTenantResourcesByTenantId(TenantId tenantId, PageLink pageLink) {
public PageData<TbResourceInfo> findAllTenantResourcesByTenantId(TenantId tenantId, ResourceType resourceType, PageLink pageLink) {
log.trace("Executing findAllTenantResourcesByTenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
return resourceInfoDao.findAllTenantResourcesByTenantId(tenantId.getId(), pageLink);
return resourceInfoDao.findAllTenantResourcesByTenantId(tenantId.getId(), resourceType == null ? null : resourceType.name(), pageLink);
}
@Override
public PageData<TbResourceInfo> findTenantResourcesByTenantId(TenantId tenantId, PageLink pageLink) {
public PageData<TbResourceInfo> findTenantResourcesByTenantId(TenantId tenantId, ResourceType resourceType, PageLink pageLink) {
log.trace("Executing findTenantResourcesByTenantId [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
return resourceInfoDao.findTenantResourcesByTenantId(tenantId.getId(), pageLink);
}
@Override
public PageData<TbResourceInfo> findAllTenantResourcesByType(TenantId tenantId, ResourceType resourceType, PageLink pageLink) {
log.trace("Executing findAllTenantResourcesByType [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
return resourceInfoDao.findAllTenantResourcesByType(tenantId.getId(), resourceType.name(), pageLink);
}
@Override
public PageData<TbResourceInfo> findTenantResourcesByType(TenantId tenantId, ResourceType resourceType, PageLink pageLink) {
log.trace("Executing findTenantResourcesByType [{}]", tenantId);
validateId(tenantId, INCORRECT_TENANT_ID + tenantId);
return resourceInfoDao.findTenantResourcesByType(tenantId.getId(), resourceType.name(), pageLink);
return resourceInfoDao.findTenantResourcesByTenantId(tenantId.getId(), resourceType == null ? null : resourceType.name(), pageLink);
}
@Override

8
dao/src/main/java/org/thingsboard/server/dao/resource/TbResourceInfoDao.java

@ -24,12 +24,8 @@ import java.util.UUID;
public interface TbResourceInfoDao extends Dao<TbResourceInfo> {
PageData<TbResourceInfo> findAllTenantResourcesByTenantId(UUID tenantId, PageLink pageLink);
PageData<TbResourceInfo> findAllTenantResourcesByTenantId(UUID tenantId, String resourceType, PageLink pageLink);
PageData<TbResourceInfo> findTenantResourcesByTenantId(UUID tenantId, PageLink pageLink);
PageData<TbResourceInfo> findAllTenantResourcesByType(UUID tenantId, String resourceType, PageLink pageLink);
PageData<TbResourceInfo> findTenantResourcesByType(UUID tenantId, String resourceType, PageLink pageLink);
PageData<TbResourceInfo> findTenantResourcesByTenantId(UUID tenantId, String resourceType, PageLink pageLink);
}

24
dao/src/main/java/org/thingsboard/server/dao/sql/resource/JpaTbResourceInfoDao.java

@ -51,42 +51,24 @@ public class JpaTbResourceInfoDao extends JpaAbstractSearchTextDao<TbResourceInf
}
@Override
public PageData<TbResourceInfo> findAllTenantResourcesByTenantId(UUID tenantId, PageLink pageLink) {
public PageData<TbResourceInfo> findAllTenantResourcesByTenantId(UUID tenantId, String resourceType, PageLink pageLink) {
return DaoUtil.toPageData(resourceInfoRepository
.findAllTenantResourcesByTenantId(
tenantId,
TenantId.NULL_UUID,
resourceType,
Objects.toString(pageLink.getTextSearch(), ""),
DaoUtil.toPageable(pageLink)));
}
@Override
public PageData<TbResourceInfo> findTenantResourcesByTenantId(UUID tenantId, PageLink pageLink) {
public PageData<TbResourceInfo> findTenantResourcesByTenantId(UUID tenantId, String resourceType, PageLink pageLink) {
return DaoUtil.toPageData(resourceInfoRepository
.findTenantResourcesByTenantId(
tenantId,
Objects.toString(pageLink.getTextSearch(), ""),
DaoUtil.toPageable(pageLink)));
}
@Override
public PageData<TbResourceInfo> findAllTenantResourcesByType(UUID tenantId, String resourceType, PageLink pageLink) {
return DaoUtil.toPageData(resourceInfoRepository
.findAllTenantResourcesByType(
tenantId,
TenantId.NULL_UUID,
resourceType,
Objects.toString(pageLink.getTextSearch(), ""),
DaoUtil.toPageable(pageLink)));
}
@Override
public PageData<TbResourceInfo> findTenantResourcesByType(UUID tenantId, String resourceType, PageLink pageLink) {
return DaoUtil.toPageData(resourceInfoRepository
.findTenantResourcesByType(
tenantId,
resourceType,
Objects.toString(pageLink.getTextSearch(), ""),
DaoUtil.toPageable(pageLink)));
}
}

32
dao/src/main/java/org/thingsboard/server/dao/sql/resource/TbResourceInfoRepository.java

@ -34,41 +34,21 @@ public interface TbResourceInfoRepository extends JpaRepository<TbResourceInfoEn
"(SELECT sr FROM TbResourceEntity sr " +
"WHERE sr.tenantId = :tenantId " +
"AND tr.resourceType = sr.resourceType " +
"AND tr.resourceKey = sr.resourceKey)))")
"AND tr.resourceKey = sr.resourceKey)))" +
"AND (:resourceType is null or tr.resourceType = :resourceType)")
Page<TbResourceInfoEntity> findAllTenantResourcesByTenantId(@Param("tenantId") UUID tenantId,
@Param("systemAdminId") UUID sysadminId,
@Param("resourceType") String resourceType,
@Param("searchText") String searchText,
Pageable pageable);
@Query("SELECT ri FROM TbResourceInfoEntity ri WHERE " +
"ri.tenantId = :tenantId " +
"AND LOWER(ri.title) LIKE LOWER(CONCAT('%', :searchText, '%'))")
"AND LOWER(ri.title) LIKE LOWER(CONCAT('%', :searchText, '%'))" +
"AND (:resourceType is null or ri.resourceType = :resourceType)")
Page<TbResourceInfoEntity> findTenantResourcesByTenantId(@Param("tenantId") UUID tenantId,
@Param("resourceType") String resourceType,
@Param("searchText") String searchText,
Pageable pageable);
@Query("SELECT tr FROM TbResourceInfoEntity tr WHERE " +
"LOWER(tr.title) LIKE LOWER(CONCAT('%', :searchText, '%'))" +
"AND (tr.tenantId = :tenantId " +
"OR (tr.tenantId = :systemAdminId " +
"AND NOT EXISTS " +
"(SELECT sr FROM TbResourceEntity sr " +
"WHERE sr.tenantId = :tenantId " +
"AND tr.resourceType = sr.resourceType " +
"AND tr.resourceKey = sr.resourceKey)))" +
"AND tr.resourceType = :resourceType")
Page<TbResourceInfoEntity> findAllTenantResourcesByType(@Param("tenantId") UUID tenantId,
@Param("systemAdminId") UUID sysadminId,
@Param("resourceType") String resourceType,
@Param("searchText") String searchText,
Pageable pageable);
@Query("SELECT ri FROM TbResourceInfoEntity ri WHERE " +
"ri.tenantId = :tenantId " +
"AND ri.resourceType = :resourceType " +
"AND LOWER(ri.title) LIKE LOWER(CONCAT('%', :searchText, '%'))")
Page<TbResourceInfoEntity> findTenantResourcesByType(@Param("tenantId") UUID tenantId,
@Param("resourceType") String resourceType,
@Param("searchText") String searchText,
Pageable pageable);
}

2
dao/src/test/java/org/thingsboard/server/dao/service/TenantServiceTest.java

@ -506,7 +506,7 @@ public class TenantServiceTest extends AbstractServiceTest {
.as("resource").isNull();
PageLink pageLinkResources = new PageLink(1);
PageData<TbResourceInfo> tenantResources =
resourceService.findAllTenantResourcesByTenantId(tenant.getId(), pageLinkResources);
resourceService.findAllTenantResourcesByTenantId(tenant.getId(), null, pageLinkResources);
Assert.assertEquals(0, tenantResources.getTotalElements());
}

Loading…
Cancel
Save