fix(tenant): listByApp 按平台去重,返回每个平台的服务记录
原实现按 serviceType findFirst,导致同一 serviceType 下不同平台 的配置(如 ANDROID/IOS/HARMONY PUSH)只返回第一条,ANDROID 推送 配置对外不可见。改为按 (serviceType, platform) 组合去重。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
这个提交包含在:
父节点
6830237a0e
当前提交
a20dd0db16
@ -59,7 +59,9 @@ public class FeatureServiceManager {
|
|||||||
return services;
|
return services;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deduplicate by (serviceType, platform) — preserve each platform's service record
|
||||||
List<FeatureServiceEntity> normalized = new ArrayList<>();
|
List<FeatureServiceEntity> normalized = new ArrayList<>();
|
||||||
|
java.util.Set<String> seen = new java.util.LinkedHashSet<>();
|
||||||
for (FeatureServiceEntity.ServiceType serviceType : List.of(
|
for (FeatureServiceEntity.ServiceType serviceType : List.of(
|
||||||
FeatureServiceEntity.ServiceType.IM,
|
FeatureServiceEntity.ServiceType.IM,
|
||||||
FeatureServiceEntity.ServiceType.PUSH,
|
FeatureServiceEntity.ServiceType.PUSH,
|
||||||
@ -67,10 +69,15 @@ public class FeatureServiceManager {
|
|||||||
FeatureServiceEntity.ServiceType.FILE,
|
FeatureServiceEntity.ServiceType.FILE,
|
||||||
FeatureServiceEntity.ServiceType.LICENSE,
|
FeatureServiceEntity.ServiceType.LICENSE,
|
||||||
FeatureServiceEntity.ServiceType.BUG_COLLECT)) {
|
FeatureServiceEntity.ServiceType.BUG_COLLECT)) {
|
||||||
services.stream()
|
for (FeatureServiceEntity.Platform platform : FeatureServiceEntity.Platform.values()) {
|
||||||
.filter(service -> service.getServiceType() == serviceType)
|
services.stream()
|
||||||
.findFirst()
|
.filter(s -> s.getServiceType() == serviceType && s.getPlatform() == platform)
|
||||||
.ifPresent(normalized::add);
|
.findFirst()
|
||||||
|
.ifPresent(s -> {
|
||||||
|
String key = serviceType + ":" + platform;
|
||||||
|
if (seen.add(key)) normalized.add(s);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return normalized.isEmpty() ? services : normalized;
|
return normalized.isEmpty() ? services : normalized;
|
||||||
}
|
}
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户