diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/QGResponse.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/QGResponse.java deleted file mode 100644 index bd00c40..0000000 --- a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/QGResponse.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.qiuguo.iot.data.request; - -import lombok.Data; -import com.fasterxml.jackson.annotation.JsonProperty; - -@Data -public class QGResponse { - @JsonProperty("status_code") - private int statusCode; - - private String message; - - private Data data; - - @JsonProperty("task_type") - private String taskType; - - @JsonProperty("run_time") - private double runTime; - - private String version; - - // 添加构造方法、getter和setter方法 - public static class Data { - private String resut; - - /** - * 正常200 其他异常 - */ - private int code; - - public String getResut() { - return resut; - } - - public void setResut(String resut) { - this.resut = resut; - } - - // 添加getter和setter方法 - } -} diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/qwen/QGResponse.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/qwen/QGResponse.java new file mode 100644 index 0000000..cc1e742 --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/qwen/QGResponse.java @@ -0,0 +1,23 @@ +package com.qiuguo.iot.data.request.qwen; + +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonProperty; + +@Data +public class QGResponse { + @JsonProperty("status_code") + private int statusCode; + + private String message; + + private T data; + + @JsonProperty("task_type") + private String taskType; + + @JsonProperty("run_time") + private double runTime; + + private String version; + +} diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/TongYiCommunicationRest.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/qwen/TongYiCommunicationRest.java similarity index 86% rename from iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/TongYiCommunicationRest.java rename to iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/qwen/TongYiCommunicationRest.java index 5465b70..2e091a2 100644 --- a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/TongYiCommunicationRest.java +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/request/qwen/TongYiCommunicationRest.java @@ -1,4 +1,4 @@ -package com.qiuguo.iot.data.request; +package com.qiuguo.iot.data.request.qwen; import lombok.Data; diff --git a/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/qg/algorithm/QWenReplyRequest.java b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/qg/algorithm/QWenReplyRequest.java new file mode 100644 index 0000000..4ce0e45 --- /dev/null +++ b/iot-common/iot-data/src/main/java/com/qiuguo/iot/data/resp/qg/algorithm/QWenReplyRequest.java @@ -0,0 +1,10 @@ +package com.qiuguo.iot.data.resp.qg.algorithm; + +import lombok.Data; +@Data +public class QWenReplyRequest { + private String resut; + + private int code; + +} \ No newline at end of file diff --git a/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/QWenService.java b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/QWenService.java index be251cd..8768894 100644 --- a/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/QWenService.java +++ b/iot-common/iot-third/src/main/java/com/qiuguo/iot/third/service/QWenService.java @@ -5,25 +5,29 @@ import com.alibaba.fastjson.JSONObject; import com.qiuguo.iot.base.constans.RedisConstans; import com.qiuguo.iot.base.utils.WebClientUtils; -import com.qiuguo.iot.data.request.QGResponse; -import com.qiuguo.iot.data.request.TongYiCommunicationRest; +import com.qiuguo.iot.data.request.qwen.QGResponse; +import com.qiuguo.iot.data.request.qwen.TongYiCommunicationRest; +import com.qiuguo.iot.data.resp.qg.algorithm.QWenReplyRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.ReactiveStringRedisTemplate; import org.springframework.data.redis.core.ReactiveValueOperations; +import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import reactor.core.publisher.Mono; import javax.annotation.Resource; import java.util.*; +import java.util.function.Function; @Slf4j +@Service public class QWenService { @Resource private ReactiveStringRedisTemplate reactiveStringRedisTemplate; - public Mono communication(TongYiCommunicationRest rest){ + public Mono communication(TongYiCommunicationRest rest){ ReactiveValueOperations operations = reactiveStringRedisTemplate.opsForValue(); return operations.get(RedisConstans.TY_QUEUE_LIST+rest.getOnlyId()).defaultIfEmpty("").flatMap(res -> { JSONArray objects = JSONArray.parseArray(res); @@ -44,31 +48,33 @@ public class QWenService { HashMap map = new HashMap<>(); map.put("task_type", "qwen"); map.put("text", rest.getText()); - return httpTY(map) ; + return httpTY(map); }catch (Exception e){ log.error("调用异常:"); - return Mono.just(new QGResponse().getData()); + return Mono.just(new QWenReplyRequest()); }finally { reactiveStringRedisTemplate.delete(RedisConstans.TY_QUEUE_LIST+rest.getOnlyId()).subscribe(); } }); } - public static Mono httpTY(HashMap map){ + public static Mono httpTY(HashMap map){ return WebClientUtils.post("http://192.168.8.211:5010/qg_human/qwen", new JSONObject(map)).flatMap(jsonObject -> { long time = new Date().getTime(); QGResponse qgResponse = jsonObject.toJavaObject(QGResponse.class); + QWenReplyRequest data = (QWenReplyRequest) qgResponse.getData(); log.info("发起TY请求,响应时间时间为:{}", new Date().getTime()-time); if (qgResponse.getStatusCode() == 0) { //成功 log.info("通知成功:"+ qgResponse.getData()); - return Mono.just(qgResponse.getData()); + data.setCode(200); + return Mono.just(data); } //失败 log.info("通知失败:"+ map); - - return Mono.just(qgResponse.getData()); + data.setCode(500); + return Mono.just(data); }); } @@ -77,7 +83,7 @@ public class QWenService { map.put("task_type", "qwen"); map.put("text", "你好"); try { - Mono qgResponseMono = httpTY(map); + Mono qgResponseMono = httpTY(map); System.out.println(qgResponseMono.block()); }catch (Exception e) { log.info("异常:{}", e); diff --git a/iot-common/iot-third/src/test/java/com/qiuguo/iot/third/service/IpServiceTest.java b/iot-common/iot-third/src/test/java/com/qiuguo/iot/third/service/IpServiceTest.java index c522f8f..589e523 100644 --- a/iot-common/iot-third/src/test/java/com/qiuguo/iot/third/service/IpServiceTest.java +++ b/iot-common/iot-third/src/test/java/com/qiuguo/iot/third/service/IpServiceTest.java @@ -1,5 +1,6 @@ package com.qiuguo.iot.third.service; +import com.qiuguo.iot.data.request.qwen.TongYiCommunicationRest; import com.qiuguo.iot.data.resp.third.ThirdIpInfoResp; import com.qiuguo.iot.data.resp.third.ThirdRpcResp; import org.junit.jupiter.api.Test; @@ -17,11 +18,23 @@ import static org.junit.jupiter.api.Assertions.*; * @description **/ -@SpringBootTest(classes = IpService.class) +@SpringBootTest(classes = {IpService.class,QWenService.class}) class IpServiceTest { @Resource private IpService ipService; + @Resource + private QWenService qWenService; + @Test + void aa() { + TongYiCommunicationRest rest = new TongYiCommunicationRest(); + rest.setIsWhiteList(0); + rest.setText("你好"); + rest.setOnlyId("123"); + rest.setStatus("0"); + + qWenService.communication(rest); + } @Test void contextLoads() throws InterruptedException { Mono> ipInfo = ipService.getIpInfo("60.186.105.204");