Merge branch 'feature-BOX一期' of http://47.99.132.106:10081/wulin/qiuguo-iot into feature-BOX一期

This commit is contained in:
wulin 2023-10-19 15:53:19 +08:00
commit ca1c34f6f1
2 changed files with 22 additions and 10 deletions

View File

@ -64,7 +64,7 @@ public class MusicService {
if (type == 1) {
return webClient.get().uri(baseUrl+"/search?keywords="+keyword).retrieve()
.bodyToMono(SearchResponse.class)
.delaySubscription(Duration.ofMillis(1000), Schedulers.boundedElastic())
.delaySubscription(Duration.ofMillis(300), Schedulers.boundedElastic())
.flatMap(res -> {
if (!Objects.equals(res.getCode(), 200)) {
return Mono.empty();
@ -91,7 +91,7 @@ public class MusicService {
} else {
return webClient.get().uri(baseUrl+"/search?keywords="+keyword+"&type=100").retrieve()
.bodyToMono(SingerResponse.class)
.delaySubscription(Duration.ofMillis(1000), Schedulers.boundedElastic())
.delaySubscription(Duration.ofMillis(300), Schedulers.boundedElastic())
.flatMap(res -> {
if (!Objects.equals(res.getCode(), 200) && res.getResult().getArtists().size() == 0) {
return Mono.empty();
@ -99,7 +99,7 @@ public class MusicService {
String id = res.getResult().getArtists().get(0).getId();
return webClient.get().uri(baseUrl+"/artist/top/song?id="+id).retrieve()
.bodyToMono(SingerSongsResponse.class)
.delaySubscription(Duration.ofMillis(1000), Schedulers.boundedElastic())
.delaySubscription(Duration.ofMillis(300), Schedulers.boundedElastic())
.flatMap(song -> {
if (Objects.equals(200, song.getCode()) && song.getSongs().size() > 0) {
String ids = song.getSongs().stream().limit(3)

View File

@ -14,6 +14,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
@ -167,7 +168,7 @@ public class TuyaDeviceService {
if (type.equalsIgnoreCase("boolean")) {
jsonObject.put("value", Boolean.parseBoolean(data.getValue()));
} else if (type.equalsIgnoreCase("Integer")) {
jsonObject.put("value", Integer.parseInt(query.getValue()));
jsonObject.put("value", Integer.parseInt(data.getValue()));
} else if (type.equalsIgnoreCase("Enum")) {
jsonObject.put("value", data.getValue());
} else if (type.equalsIgnoreCase("auto_add_integer")) {
@ -198,15 +199,26 @@ public class TuyaDeviceService {
return Mono.just(tuyaResponse);
}
javaList.add(jsonObject);
List<JSONObject> collect = javaList.stream().filter(jl -> !ObjectUtils.isEmpty(jl.get("value")))
Set<JSONObject> collect = javaList.stream().filter(jl -> !ObjectUtils.isEmpty(jl.get("value")))
.filter(jl -> !jl.getString("value").startsWith("{"))
.filter(jl -> !jl.getString("value").startsWith("[")).collect(Collectors.toList());
.filter(jl -> !jl.getString("value").startsWith("["))
.map(jl->{
if (jl.getString("code").equalsIgnoreCase(jsonObject.getString("code"))) {
return jsonObject;
}
return jl;
})
.collect(Collectors.toSet());
if (Objects.equals(deviceInfo.getString("category"), "fs")) {
collect.clear();
collect.add(jsonObject);
if (!Objects.equals(data.getMatchingFields(), "")) {
JSONObject fsJson = new JSONObject();
fsJson.put("code", "switch");
fsJson.put("value", true);
collect.add(fsJson);
}
}
commands.put("commands", categoryBoolean ? Arrays.asList(jsonObject) : collect);
Boolean result = tuyaDeviceConnector.controlDevice(query.getDeviceId(), commands);
if (result) {