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-09 20:35:20 +08:00
commit 020532e72d
4 changed files with 16 additions and 19 deletions

View File

@ -1,4 +1,4 @@
package com.qiuguo.iot.user.api.rest.tongyi; package com.qiuguo.iot.data.request;
import lombok.Data; import lombok.Data;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;

View File

@ -1,4 +1,4 @@
package com.qiuguo.iot.user.api.rest.tongyi; package com.qiuguo.iot.data.request;
import lombok.Data; import lombok.Data;
@ -6,6 +6,6 @@ import lombok.Data;
public class TongYiCommunicationRest { public class TongYiCommunicationRest {
private Integer isWhiteList;//是否为白名单 private Integer isWhiteList;//是否为白名单
private String text;//消息 private String text;//消息
private String deviceId;//设备序列号 private String onlyId;//设备序列号 唯一
private String status; //状态,0:已完成,1.未发起,2.发起中 private String status; //状态,0:已完成,1.未发起,2.发起中
} }

View File

@ -58,6 +58,10 @@
<groupId>org.springframework.amqp</groupId> <groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId> <artifactId>spring-rabbit</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
</dependency>
</dependencies> </dependencies>

View File

@ -1,38 +1,31 @@
package com.qiuguo.iot.user.api.controller.tongyi; package com.qiuguo.iot.third.service;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.qiuguo.iot.base.constans.RedisConstans; import com.qiuguo.iot.base.constans.RedisConstans;
import com.qiuguo.iot.base.utils.WebClientUtils; import com.qiuguo.iot.base.utils.WebClientUtils;
import com.qiuguo.iot.user.api.rest.tongyi.QGResponse;
import com.qiuguo.iot.user.api.rest.tongyi.TongYiCommunicationRest; import com.qiuguo.iot.data.request.QGResponse;
import com.qiuguo.iot.data.request.TongYiCommunicationRest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.ReactiveStringRedisTemplate; import org.springframework.data.redis.core.ReactiveStringRedisTemplate;
import org.springframework.data.redis.core.ReactiveValueOperations; import org.springframework.data.redis.core.ReactiveValueOperations;
import org.springframework.util.ObjectUtils; 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 reactor.core.publisher.Mono;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.*; import java.util.*;
import java.util.function.Function;
@RestController
@RequestMapping("/TY")
@Slf4j @Slf4j
public class TYController { public class QWenService {
@Resource @Resource
private ReactiveStringRedisTemplate reactiveStringRedisTemplate; private ReactiveStringRedisTemplate reactiveStringRedisTemplate;
@PostMapping("communication") public Mono<QGResponse.Data> communication(TongYiCommunicationRest rest){
public Mono<QGResponse.Data> communication(@RequestBody TongYiCommunicationRest rest){
ReactiveValueOperations<String, String> operations = reactiveStringRedisTemplate.opsForValue(); ReactiveValueOperations<String, String> operations = reactiveStringRedisTemplate.opsForValue();
return operations.get(RedisConstans.TY_QUEUE_LIST+rest.getDeviceId()).defaultIfEmpty("").flatMap(res -> { return operations.get(RedisConstans.TY_QUEUE_LIST+rest.getOnlyId()).defaultIfEmpty("").flatMap(res -> {
JSONArray objects = JSONArray.parseArray(res); JSONArray objects = JSONArray.parseArray(res);
List<TongYiCommunicationRest> list = new LinkedList<>(); List<TongYiCommunicationRest> list = new LinkedList<>();
try { try {
@ -46,7 +39,7 @@ public class TYController {
} }
//不是白名单插入尾部 //不是白名单插入尾部
list.add(rest); list.add(rest);
operations.set(RedisConstans.TY_QUEUE_LIST+rest.getDeviceId(), JSONArray.toJSONString(list)).subscribe(); operations.set(RedisConstans.TY_QUEUE_LIST+rest.getOnlyId(), JSONArray.toJSONString(list)).subscribe();
//通知Redis让Redis进行消费 //通知Redis让Redis进行消费
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
map.put("task_type", "qwen"); map.put("task_type", "qwen");
@ -56,7 +49,7 @@ public class TYController {
log.error("调用异常:"); log.error("调用异常:");
return Mono.just(new QGResponse().getData()); return Mono.just(new QGResponse().getData());
}finally { }finally {
reactiveStringRedisTemplate.delete(RedisConstans.TY_QUEUE_LIST+rest.getDeviceId()).subscribe(); reactiveStringRedisTemplate.delete(RedisConstans.TY_QUEUE_LIST+rest.getOnlyId()).subscribe();
} }
}); });
} }