Commit e1afe5f4 authored by 何金镒's avatar 何金镒

思必驰的兜底技能6

parent 189b0678
......@@ -107,6 +107,7 @@ public class DifyControllerV2 {
// 异步执行对话????
eventPublisher.publishEvent(new DifyChatSteamEvent(this,token.getSn(), input));
res = String.format(res, "正在思考中", false);
response = JSONUtil.parseObj(res);
}else if(list.size() > 1){
......
......@@ -33,6 +33,11 @@ public class DifyChatSteamEventListener {
log.info("处理dify AI 聊天:sn:{},input:{}", event.getSn(), event.getInput());
try {
if (MsgWebSocket.getWebSocket(event.getSn())) {
log.error("未找到sn:{}的WebSocket连接,不处理对话", event.getSn());
return;
}
QueryWrapper<CDCToken> wrapper = new QueryWrapper<>();
wrapper.eq("sn", event.getSn());
List<CDCToken> list = tokenService.list(wrapper);
......@@ -49,11 +54,11 @@ public class DifyChatSteamEventListener {
log.info("dify请求返回:{}",ai_result);
String result_end = ai_result.replaceAll("(?m)^\\s*$[\r\n]*", "").replaceAll("[\r\n]+", "\n").replaceAll("[\r\n]", "").trim();
log.info("dify请求返回2--->:{}",result_end);
// String result_end = ai_result.replaceAll("(?m)^\\s*$[\r\n]*", "").replaceAll("[\r\n]+", "\n").replaceAll("[\r\n]", "").trim();
// log.info("dify请求返回2--->:{}",result_end);
// 通过WebSocket发送消息给屏端
MsgWebSocket.sendToSingle(event.getSn(), result_end);
MsgWebSocket.sendToSingle(event.getSn(), ai_result);
log.info("dify请求耗时--->:{}",System.currentTimeMillis() - startTime);
} catch (Exception e) {
......
......@@ -60,16 +60,17 @@ public class CdcHttpUtils {
*
*/
public UserEntity getOwner(CDCToken bySn){
log.info("去建发获取业主信息,sn:{},ccu:{}",bySn.getSn(),bySn.getCcuId());
if(CDCTokenCache.get(bySn.getSn())!=null){
String s = CDCTokenCache.get(bySn.getSn());
return JSONUtil.toBean(s, UserEntity.class);
}else{
String body = HttpRequest.get(getOwnerUrl)
.header("X-token", bySn.getAccessToken())
.header("gateway-id", bySn.getSn())
.header("gateway-id", bySn.getCcuId())
.timeout(timeout)
.execute().body();
if(CDCTokenCache.get(bySn.getSn())!=null){
String s = CDCTokenCache.get(bySn.getSn());
return JSONUtil.toBean(s, UserEntity.class);
}else{
JSONObject jsonObject = JSONUtil.parseObj(body);
if(jsonObject.getInt("code") == 200){
UserEntity userEntity = JSONUtil.toBean(jsonObject.getJSONObject("data"), UserEntity.class);
......@@ -92,7 +93,7 @@ public class CdcHttpUtils {
UserEntity userEntity = getOwner(bySn);
String body = HttpRequest.get(url)
.header("X-token",bySn.getAccessToken())
.header("gateway-id",sn)
.header("gateway-id",bySn.getCcuId())
.header("space-yr",userEntity.communityId)
.header("communityId",userEntity.communityId)
.header("space-phone",userEntity.phoneNum)
......@@ -113,7 +114,7 @@ public class CdcHttpUtils {
UserEntity userEntity = getOwner(bySn);
String result = HttpRequest.post(url)
.header("X-token",bySn.getAccessToken())
.header("gateway-id",sn)
.header("gateway-id",bySn.getCcuId())
.header("space-yr",userEntity.communityId)
.header("communityId",userEntity.communityId)
.header("space-phone",userEntity.phoneNum)
......
......@@ -45,12 +45,13 @@ public class MsgWebSocket {
public static void sendToSingle(String sn, String message) {
try {
log.info("===>APP发送:sn={},message={}",sn,message);
Session session = sessions.get(sn);
if (session != null && session.isOpen()) {
synchronized (session) { // 添加同步锁
session.getBasicRemote().sendText(message);
}
}else{
log.warn("发送消息的连接不存在:sn={}",sn);
}
}catch (Exception e){
e.printStackTrace();
......@@ -58,6 +59,10 @@ public class MsgWebSocket {
}
}
public static boolean getWebSocket(String sn){
Session session = sessions.get(sn);
return session != null && session.isOpen();
}
/**
* 建立连接调用的方法
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment