调整 /register 只注册已启用的设备

This commit is contained in:
shikong 2023-09-21 09:00:59 +08:00
parent 91124ca822
commit 9c5e20ff8e
2 changed files with 14 additions and 7 deletions

View File

@ -19,6 +19,7 @@ import java.util.List;
import java.util.Optional;
import static org.mybatis.dynamic.sql.SqlBuilder.isEqualTo;
import static org.mybatis.dynamic.sql.SqlBuilder.isTrue;
@Slf4j
@RequiredArgsConstructor
@ -135,6 +136,11 @@ public class DeviceService {
return deviceMapper.select(u -> u.orderBy(MockingDeviceDynamicSqlSupport.id.descending()));
}
public List<MockingDevice> getAllEnabledDevice(){
return deviceMapper.select(u -> u.where(MockingDeviceDynamicSqlSupport.enable,isTrue())
.orderBy(MockingDeviceDynamicSqlSupport.id.descending()));
}
/**
* 分页查询设备
* @param page 页数

View File

@ -52,20 +52,19 @@ public class RegisterService {
List<MockingDevice> allDevice = deviceService.getAllDevice();
List<CompletableFuture<JsonResponse<Boolean>>[]> completableFutures = ListUtil.split(allDevice, 10).stream().map(items -> {
CompletableFuture<JsonResponse<Boolean>>[] array = allDevice.stream().map(this::register).toArray(CompletableFuture[]::new);
List<CompletableFuture<JsonResponse<Void>>[]> completableFutures = ListUtil.split(allDevice, 10).stream().map(items -> {
CompletableFuture<JsonResponse<Void>>[] array = allDevice.stream().map(this::register).toArray(CompletableFuture[]::new);
CompletableFuture.allOf(array);
return array;
}).toList();
List<CompletableFuture<JsonResponse<Boolean>>> reduce = completableFutures.stream().map(item -> Arrays.stream(item).toList())
List<CompletableFuture<JsonResponse<Void>>> reduce = completableFutures.stream().map(item -> Arrays.stream(item).toList())
.reduce(new ArrayList<>(), (prev, cur) -> {
prev.addAll(cur);
return prev;
});
Optional<JsonResponse<Boolean>> first = reduce.stream().map(item -> {
Optional<JsonResponse<Void>> first = reduce.stream().map(item -> {
try {
return item.get();
} catch (InterruptedException | ExecutionException e) {
@ -80,10 +79,12 @@ public class RegisterService {
}
@SneakyThrows
public CompletableFuture<JsonResponse<Boolean>> register(MockingDevice device) {
public CompletableFuture<JsonResponse<Void>> register(MockingDevice device) {
keepaliveService.unKeepalive(device);
CompletableFuture<JsonResponse<Boolean>> result = new CompletableFuture<>();
if(!device.getEnable()){
result.complete(JsonResponse.success(null));
}
sender.sendRequest((provider, ip, port) -> {
CallIdHeader callIdHeader = provider.getNewCallId();
String callId = callIdHeader.getCallId();