diff --git a/update-service/src/main/java/com/xuqm/update/controller/AppVersionController.java b/update-service/src/main/java/com/xuqm/update/controller/AppVersionController.java index 40628cb..bfcc80d 100644 --- a/update-service/src/main/java/com/xuqm/update/controller/AppVersionController.java +++ b/update-service/src/main/java/com/xuqm/update/controller/AppVersionController.java @@ -75,7 +75,7 @@ public class AppVersionController { @RequestParam(required = false) String userId) { String resolvedAppKey = resolveAndValidate(appKey, platform, licenseFile); - boolean serviceActivated = versionRepository.existsByAppKey(resolvedAppKey); + boolean serviceActivated = tenantClient.isUpdateServiceEnabled(resolvedAppKey, platform.name()); boolean allowAnonymousCheck = publishConfigService.allowAnonymousUpdateCheck(resolvedAppKey); if (!serviceActivated) { diff --git a/update-service/src/main/java/com/xuqm/update/repository/AppVersionRepository.java b/update-service/src/main/java/com/xuqm/update/repository/AppVersionRepository.java index 092f8a6..7a42bb2 100644 --- a/update-service/src/main/java/com/xuqm/update/repository/AppVersionRepository.java +++ b/update-service/src/main/java/com/xuqm/update/repository/AppVersionRepository.java @@ -56,6 +56,4 @@ public interface AppVersionRepository extends JpaRepository findByAppKeyAndPlatformAndPackageNameAndVersionCodeAndPublishStatus( String appKey, AppVersionEntity.Platform platform, String packageName, int versionCode, AppVersionEntity.PublishStatus publishStatus); - - boolean existsByAppKey(String appKey); } diff --git a/update-service/src/main/java/com/xuqm/update/service/UpdateTenantClient.java b/update-service/src/main/java/com/xuqm/update/service/UpdateTenantClient.java index 51c07d5..37b5afa 100644 --- a/update-service/src/main/java/com/xuqm/update/service/UpdateTenantClient.java +++ b/update-service/src/main/java/com/xuqm/update/service/UpdateTenantClient.java @@ -32,6 +32,24 @@ public class UpdateTenantClient { return cache.computeIfAbsent(appKey, this::fetchPlatformInfo); } + public boolean isUpdateServiceEnabled(String appKey, String platform) { + String url = UriComponentsBuilder.fromHttpUrl(tenantServiceUrl) + .path("/api/internal/sdk/apps/{appKey}/services/{platform}/UPDATE") + .buildAndExpand(appKey, platform) + .toUriString(); + HttpHeaders headers = new HttpHeaders(); + headers.set("X-Internal-Token", internalToken); + try { + ResponseEntity response = restTemplate.exchange( + url, HttpMethod.GET, new HttpEntity<>(headers), JsonNode.class); + JsonNode data = response.getBody() == null ? null : response.getBody().path("data"); + if (response.getStatusCode().is2xxSuccessful() && data != null && !data.isMissingNode()) { + return data.path("enabled").asBoolean(false); + } + } catch (RestClientException ignored) {} + return false; + } + private PlatformInfo fetchPlatformInfo(String appKey) { String url = UriComponentsBuilder.fromHttpUrl(tenantServiceUrl) .path("/api/internal/sdk/apps/{appKey}/platform-info")