diff --git a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/tongyi/TYController.java b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/tongyi/TYController.java deleted file mode 100644 index a664ec2..0000000 --- a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/tongyi/TYController.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.qiuguo.iot.user.api.controller.tongyi; - -import com.alibaba.fastjson.JSONArray; -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 lombok.extern.slf4j.Slf4j; -import org.springframework.data.redis.core.ReactiveStringRedisTemplate; -import org.springframework.data.redis.core.ReactiveValueOperations; -import org.springframework.util.ObjectUtils; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import reactor.core.publisher.Mono; - -import javax.annotation.Resource; -import java.util.*; - -@RestController -@RequestMapping("/TY") -@Slf4j -public class TYController { - - @Resource - private ReactiveStringRedisTemplate reactiveStringRedisTemplate; - - - @PostMapping("communication") - public Mono communication(@RequestBody TongYiCommunicationRest rest){ - ReactiveValueOperations operations = reactiveStringRedisTemplate.opsForValue(); - return operations.get(RedisConstans.TY_QUEUE_LIST+rest.getDeviceId()).defaultIfEmpty("").flatMap(res -> { - JSONArray objects = JSONArray.parseArray(res); - List list = new LinkedList<>(); - try { - if (!ObjectUtils.isEmpty(objects)){ - list = JSONObject.parseArray(res, TongYiCommunicationRest.class); - if (rest.getIsWhiteList() == 0) { - //是白名单,插入头部 - log.info("收到白名单对应信息,接收参数为:{}", rest); - list.add(0,rest); - } - } - //不是白名单插入尾部 - list.add(rest); - operations.set(RedisConstans.TY_QUEUE_LIST+rest.getDeviceId(), 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){ - log.error("调用异常:"); - return Mono.just(new QGResponse().getData()); - }finally { - reactiveStringRedisTemplate.delete(RedisConstans.TY_QUEUE_LIST+rest.getDeviceId()).subscribe(); - } - }); - } - - 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); - log.info("发起TY请求,响应时间时间为:{}", new Date().getTime()-time); - if (qgResponse.getStatusCode() == 0) { - //成功 - log.info("通知成功:"+ qgResponse.getData()); - return Mono.just(qgResponse.getData()); - } - //失败 - log.info("通知失败:"+ map); - - return Mono.just(qgResponse.getData()); - }); - } - - public static void main(String[] args) { - HashMap map = new HashMap<>(); - map.put("task_type", "qwen"); - map.put("text", "你好"); - try { - Mono qgResponseMono = httpTY(map); - System.out.println(qgResponseMono.block()); - }catch (Exception e) { - log.info("异常:{}", e); - } - - } - -}