From d8cc24675fff9c489cc28abec8cd8f6efe29133b Mon Sep 17 00:00:00 2001 From: "W.Y" <343887809@qq.com> Date: Mon, 9 Oct 2023 21:06:12 +0800 Subject: [PATCH] =?UTF-8?q?[optimization]=20=E9=80=9A=E4=B9=89=E5=8D=83?= =?UTF-8?q?=E9=97=AE=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=9602?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qiuguo/iot/third/service/QWenService.java | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) 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 8768894..6dcf736 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 @@ -13,6 +13,9 @@ 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 org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import reactor.core.publisher.Mono; import javax.annotation.Resource; @@ -20,59 +23,62 @@ import java.util.*; import java.util.function.Function; @Slf4j -@Service +@RestController +@RequestMapping("/aaaa") public class QWenService { @Resource private ReactiveStringRedisTemplate reactiveStringRedisTemplate; - public Mono communication(TongYiCommunicationRest rest){ + @PostMapping("/aaa") + public Mono communication(TongYiCommunicationRest rest) { ReactiveValueOperations operations = reactiveStringRedisTemplate.opsForValue(); - return operations.get(RedisConstans.TY_QUEUE_LIST+rest.getOnlyId()).defaultIfEmpty("").flatMap(res -> { + return operations.get(RedisConstans.TY_QUEUE_LIST + rest.getOnlyId()).defaultIfEmpty("").flatMap(res -> { JSONArray objects = JSONArray.parseArray(res); List list = new LinkedList<>(); try { - if (!ObjectUtils.isEmpty(objects)){ + if (!ObjectUtils.isEmpty(objects)) { list = JSONObject.parseArray(res, TongYiCommunicationRest.class); if (rest.getIsWhiteList() == 0) { //是白名单,插入头部 log.info("收到白名单对应信息,接收参数为:{}", rest); - list.add(0,rest); + list.add(0, rest); } } //不是白名单插入尾部 list.add(rest); - operations.set(RedisConstans.TY_QUEUE_LIST+rest.getOnlyId(), JSONArray.toJSONString(list)).subscribe(); + operations.set(RedisConstans.TY_QUEUE_LIST + rest.getOnlyId(), JSONArray.toJSONString(list)).subscribe(); //通知Redis让Redis进行消费 HashMap map = new HashMap<>(); map.put("task_type", "qwen"); map.put("text", rest.getText()); return httpTY(map); - }catch (Exception e){ + } catch (Exception e) { log.error("调用异常:"); - return Mono.just(new QWenReplyRequest()); - }finally { - reactiveStringRedisTemplate.delete(RedisConstans.TY_QUEUE_LIST+rest.getOnlyId()).subscribe(); + 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); + QWenReplyRequest data = new QWenReplyRequest(); + log.info("发起TY请求,响应时间时间为:{}", new Date().getTime() - time); if (qgResponse.getStatusCode() == 0) { + data = JSONObject.parseObject(qgResponse.getData().toString(), QWenReplyRequest.class); //成功 - log.info("通知成功:"+ qgResponse.getData()); + log.info("通知成功:" + qgResponse.getData()); data.setCode(200); return Mono.just(data); } //失败 - log.info("通知失败:"+ map); + log.info("通知失败:" + map); data.setCode(500); return Mono.just(data); }); @@ -83,9 +89,8 @@ public class QWenService { map.put("task_type", "qwen"); map.put("text", "你好"); try { - Mono qgResponseMono = httpTY(map); - System.out.println(qgResponseMono.block()); - }catch (Exception e) { + httpTY(map); + } catch (Exception e) { log.info("异常:{}", e); }