Merge branch 'feature/mobile-app-bundle' of github.com:thingsboard/thingsboard into feature/mobile-app-bundle

This commit is contained in:
Vladyslav_Prykhodko 2024-10-24 13:24:38 +03:00
commit 2397f5017f
5 changed files with 27 additions and 57 deletions

View File

@ -114,7 +114,7 @@ $$
qrCodeRecord RECORD; qrCodeRecord RECORD;
BEGIN BEGIN
-- in case of running the upgrade script a second time -- in case of running the upgrade script a second time
IF EXISTS(SELECT 1 FROM information_schema.columns WHERE table_name = 'qr_code_settings' and column_name = 'android_config') THEN IF EXISTS(SELECT 1 FROM information_schema.columns WHERE table_name = 'qr_code_settings' AND column_name = 'android_config') THEN
FOR qrCodeRecord IN SELECT * FROM qr_code_settings FOR qrCodeRecord IN SELECT * FROM qr_code_settings
LOOP LOOP
generatedBundleId := NULL; generatedBundleId := NULL;
@ -136,7 +136,7 @@ $$
-- migrate ios config -- migrate ios config
iosPkgName := substring(qrCodeRecord.ios_config::jsonb ->> 'appId', strpos(qrCodeRecord.ios_config::jsonb ->> 'appId', '.') + 1); iosPkgName := substring(qrCodeRecord.ios_config::jsonb ->> 'appId', strpos(qrCodeRecord.ios_config::jsonb ->> 'appId', '.') + 1);
SELECT id into iosAppId FROM mobile_app WHERE pkg_name = iosPkgName AND platform_type = 'IOS'; SELECT id INTO iosAppId FROM mobile_app WHERE pkg_name = iosPkgName AND platform_type = 'IOS';
IF iosAppId IS NULL THEN IF iosAppId IS NULL THEN
iosAppId := uuid_generate_v4(); iosAppId := uuid_generate_v4();
INSERT INTO mobile_app(id, created_time, tenant_id, pkg_name, platform_type, status, store_info) INSERT INTO mobile_app(id, created_time, tenant_id, pkg_name, platform_type, status, store_info)

View File

@ -1,32 +1,17 @@
/** /**
* ThingsBoard, Inc. ("COMPANY") CONFIDENTIAL * Copyright © 2016-2024 The Thingsboard Authors
* *
* Copyright © 2016-2024 ThingsBoard, Inc. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* *
* NOTICE: All information contained herein is, and remains * http://www.apache.org/licenses/LICENSE-2.0
* the property of ThingsBoard, Inc. and its suppliers,
* if any. The intellectual and technical concepts contained
* herein are proprietary to ThingsBoard, Inc.
* and its suppliers and may be covered by U.S. and Foreign Patents,
* patents in process, and are protected by trade secret or copyright law.
* *
* Dissemination of this information or reproduction of this material is strictly forbidden * Unless required by applicable law or agreed to in writing, software
* unless prior written permission is obtained from COMPANY. * distributed under the License is distributed on an "AS IS" BASIS,
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* Access to the source code contained herein is hereby forbidden to anyone except current COMPANY employees, * See the License for the specific language governing permissions and
* managers or contractors who have executed Confidentiality and Non-disclosure agreements * limitations under the License.
* explicitly covering such access.
*
* The copyright notice above does not evidence any actual or intended publication
* or disclosure of this source code, which includes
* information that is confidential and/or proprietary, and is a trade secret, of COMPANY.
* ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE,
* OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT
* THE EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED,
* AND IN VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES.
* THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION
* DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS,
* OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART.
*/ */
package org.thingsboard.server.common.data; package org.thingsboard.server.common.data;

View File

@ -1,32 +1,17 @@
/** /**
* ThingsBoard, Inc. ("COMPANY") CONFIDENTIAL * Copyright © 2016-2024 The Thingsboard Authors
* *
* Copyright © 2016-2024 ThingsBoard, Inc. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* *
* NOTICE: All information contained herein is, and remains * http://www.apache.org/licenses/LICENSE-2.0
* the property of ThingsBoard, Inc. and its suppliers,
* if any. The intellectual and technical concepts contained
* herein are proprietary to ThingsBoard, Inc.
* and its suppliers and may be covered by U.S. and Foreign Patents,
* patents in process, and are protected by trade secret or copyright law.
* *
* Dissemination of this information or reproduction of this material is strictly forbidden * Unless required by applicable law or agreed to in writing, software
* unless prior written permission is obtained from COMPANY. * distributed under the License is distributed on an "AS IS" BASIS,
* * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* Access to the source code contained herein is hereby forbidden to anyone except current COMPANY employees, * See the License for the specific language governing permissions and
* managers or contractors who have executed Confidentiality and Non-disclosure agreements * limitations under the License.
* explicitly covering such access.
*
* The copyright notice above does not evidence any actual or intended publication
* or disclosure of this source code, which includes
* information that is confidential and/or proprietary, and is a trade secret, of COMPANY.
* ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE,
* OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT
* THE EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED,
* AND IN VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES.
* THE RECEIPT OR POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION
* DOES NOT CONVEY OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS,
* OR TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR IN PART.
*/ */
package org.thingsboard.server.common.data.mobile.layout; package org.thingsboard.server.common.data.mobile.layout;

View File

@ -33,8 +33,8 @@ public interface MobileAppBundleRepository extends JpaRepository<MobileAppBundle
@Query("SELECT new org.thingsboard.server.dao.model.sql.MobileAppBundleInfoEntity(b, andApp.pkgName, iosApp.pkgName, " + @Query("SELECT new org.thingsboard.server.dao.model.sql.MobileAppBundleInfoEntity(b, andApp.pkgName, iosApp.pkgName, " +
"((andApp.status IS NOT NULL AND andApp.status = 'PUBLISHED') OR (iosApp.status IS NOT NULL AND iosApp.status = 'PUBLISHED'))) " + "((andApp.status IS NOT NULL AND andApp.status = 'PUBLISHED') OR (iosApp.status IS NOT NULL AND iosApp.status = 'PUBLISHED'))) " +
"FROM MobileAppBundleEntity b " + "FROM MobileAppBundleEntity b " +
"LEFT JOIN MobileAppEntity andApp on b.androidAppId = andApp.id " + "LEFT JOIN MobileAppEntity andApp ON b.androidAppId = andApp.id " +
"LEFT JOIN MobileAppEntity iosApp on b.iosAppID = iosApp.id " + "LEFT JOIN MobileAppEntity iosApp ON b.iosAppID = iosApp.id " +
"WHERE b.tenantId = :tenantId AND " + "WHERE b.tenantId = :tenantId AND " +
"(:searchText is NULL OR ilike(b.title, concat('%', :searchText, '%')) = true)") "(:searchText is NULL OR ilike(b.title, concat('%', :searchText, '%')) = true)")
Page<MobileAppBundleInfoEntity> findInfoByTenantId(@Param("tenantId") UUID tenantId, Page<MobileAppBundleInfoEntity> findInfoByTenantId(@Param("tenantId") UUID tenantId,
@ -51,7 +51,7 @@ public interface MobileAppBundleRepository extends JpaRepository<MobileAppBundle
@Query("SELECT b " + @Query("SELECT b " +
"FROM MobileAppBundleEntity b " + "FROM MobileAppBundleEntity b " +
"LEFT JOIN MobileAppEntity a on b.androidAppId = a.id or b.iosAppID = a.id " + "LEFT JOIN MobileAppEntity a ON b.androidAppId = a.id OR b.iosAppID = a.id " +
"WHERE a.pkgName = :pkgName AND a.platformType = :platformType") "WHERE a.pkgName = :pkgName AND a.platformType = :platformType")
MobileAppBundleEntity findByPkgNameAndPlatformType(@Param("pkgName") String pkgName, MobileAppBundleEntity findByPkgNameAndPlatformType(@Param("pkgName") String pkgName,
@Param("platformType") PlatformType platformType); @Param("platformType") PlatformType platformType);

View File

@ -44,10 +44,10 @@ public interface MobileAppRepository extends JpaRepository<MobileAppEntity, UUID
@Query("DELETE FROM MobileAppEntity r WHERE r.tenantId = :tenantId") @Query("DELETE FROM MobileAppEntity r WHERE r.tenantId = :tenantId")
void deleteByTenantId(@Param("tenantId") UUID tenantId); void deleteByTenantId(@Param("tenantId") UUID tenantId);
@Query("SELECT a FROM MobileAppEntity a LEFT JOIN MobileAppBundleEntity b on b.androidAppId = a.id WHERE b.id = :bundleId") @Query("SELECT a FROM MobileAppEntity a LEFT JOIN MobileAppBundleEntity b ON b.androidAppId = a.id WHERE b.id = :bundleId")
MobileAppEntity findAndroidAppByBundleId(@Param("bundleId") UUID bundleId); MobileAppEntity findAndroidAppByBundleId(@Param("bundleId") UUID bundleId);
@Query("SELECT a FROM MobileAppEntity a LEFT JOIN MobileAppBundleEntity b on b.iosAppID = a.id WHERE b.id = :bundleId") @Query("SELECT a FROM MobileAppEntity a LEFT JOIN MobileAppBundleEntity b ON b.iosAppID = a.id WHERE b.id = :bundleId")
MobileAppEntity findIOSAppByBundleId(@Param("bundleId") UUID bundleId); MobileAppEntity findIOSAppByBundleId(@Param("bundleId") UUID bundleId);
} }