diff --git a/tenant-service/src/main/java/com/xuqm/tenant/service/FeatureServiceManager.java b/tenant-service/src/main/java/com/xuqm/tenant/service/FeatureServiceManager.java index 666c5b2..8c3709b 100644 --- a/tenant-service/src/main/java/com/xuqm/tenant/service/FeatureServiceManager.java +++ b/tenant-service/src/main/java/com/xuqm/tenant/service/FeatureServiceManager.java @@ -8,6 +8,7 @@ import com.xuqm.common.exception.BusinessException; import com.xuqm.tenant.entity.FeatureServiceEntity; import com.xuqm.tenant.entity.ServiceActivationRequestEntity; import com.xuqm.tenant.entity.ServiceActivationRequestEntity.Status; +import com.xuqm.tenant.repository.AppRepository; import com.xuqm.tenant.repository.FeatureServiceRepository; import com.xuqm.tenant.repository.ServiceActivationRequestRepository; import org.springframework.stereotype.Service; @@ -23,13 +24,16 @@ public class FeatureServiceManager { private final FeatureServiceRepository repository; private final ServiceActivationRequestRepository requestRepository; + private final AppRepository appRepository; private final ObjectMapper objectMapper; public FeatureServiceManager(FeatureServiceRepository repository, ServiceActivationRequestRepository requestRepository, + AppRepository appRepository, ObjectMapper objectMapper) { this.repository = repository; this.requestRepository = requestRepository; + this.appRepository = appRepository; this.objectMapper = objectMapper; } @@ -121,13 +125,18 @@ public class FeatureServiceManager { req.setReviewedAt(LocalDateTime.now()); requestRepository.save(req); + // Normalize to appKey so SdkConfigController queries are consistent + String normalizedAppId = appRepository.findById(req.getAppId()) + .map(app -> app.getAppKey()) + .orElse(req.getAppId()); + if (isAppWideService(req.getServiceType())) { - List services = repository.findByAppIdAndServiceType(req.getAppId(), req.getServiceType()); + List services = repository.findByAppIdAndServiceType(normalizedAppId, req.getServiceType()); if (services.isEmpty()) { for (FeatureServiceEntity.Platform platform : FeatureServiceEntity.Platform.values()) { FeatureServiceEntity created = new FeatureServiceEntity(); created.setId(UUID.randomUUID().toString()); - created.setAppId(req.getAppId()); + created.setAppId(normalizedAppId); created.setPlatform(platform); created.setServiceType(req.getServiceType()); created.setEnabled(true); @@ -142,11 +151,11 @@ public class FeatureServiceManager { } FeatureServiceEntity entity = repository - .findByAppIdAndPlatformAndServiceType(req.getAppId(), req.getPlatform(), req.getServiceType()) + .findByAppIdAndPlatformAndServiceType(normalizedAppId, req.getPlatform(), req.getServiceType()) .orElseGet(() -> { FeatureServiceEntity e = new FeatureServiceEntity(); e.setId(UUID.randomUUID().toString()); - e.setAppId(req.getAppId()); + e.setAppId(normalizedAppId); e.setPlatform(req.getPlatform()); e.setServiceType(req.getServiceType()); e.setCreatedAt(LocalDateTime.now());