anderx пре 2 година
родитељ
комит
ee7824bf7b

+ 20 - 5
src/main/java/com/goafanti/baiduAI/controller/BaiduAiController.java

@@ -1,18 +1,25 @@
 package com.goafanti.baiduAI.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.goafanti.baiduAI.bo.InputSendChat;
 import com.goafanti.baiduAI.bo.OutSendChat;
 import com.goafanti.baiduAI.bo.SseMap;
 import com.goafanti.baiduAI.bo.SseResult;
 import com.goafanti.baiduAI.service.BaiduAiService;
 import com.goafanti.common.bo.Result;
+import com.goafanti.common.utils.HttpUtils;
 import com.goafanti.common.utils.LoggerUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
 
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.Calendar;
 
 @RestController
 @RequestMapping(value = "/chat")
@@ -27,11 +34,17 @@ public class BaiduAiController {
         return res.data(baiduAiService.sendChat(in));
     }
 
+    @RequestMapping(value = "/sendJS",method = RequestMethod.POST)
+    public Result sendJS(@RequestBody InputSendChat in){
+        Result res =new Result();
+        return res.data(baiduAiService.sendJS(in));
+    }
 
     @RequestMapping("/start")
     public SseEmitter testSseEmitter(String clientId) {
         // 默认30秒超时,设置为0L则永不超时
-        SseEmitter sseEmitter = new SseEmitter(0L);
+        SseEmitter sseEmitter = new SseEmitter(3600_000L);
+        if (clientId==null)clientId="10086";
         SseMap.sseEmitterMap.put(clientId, new SseResult(clientId, System.currentTimeMillis(), sseEmitter));
         return sseEmitter;
     }
@@ -48,9 +61,9 @@ public class BaiduAiController {
         try {
             SseResult result =  SseMap.sseEmitterMap.get(clientId);
             if (result != null && result.sseEmitter != null) {
-                long timestamp = System.currentTimeMillis();
-                String re = "{\"success\":true,\"message\":\"操作成功!\",\"code\":200,\"result\":{\"id\":1018},\"timestamp\":1629254216358}";
-                result.sseEmitter.send(re);
+                long timeInMillis = Calendar.getInstance().getTimeInMillis();
+                String re = "{\"success\":true,\"message\":\"操作成功!\",\"code\":200,\"result\":{\"id\":1018},\"timestamp\":"+timeInMillis+"}";
+                  result.sseEmitter.send(re);
             }
         } catch (IOException e) {
             LoggerUtils.error(getClass(),"IOException");
@@ -73,7 +86,9 @@ public class BaiduAiController {
             SseMap.sseEmitterMap.remove(clientId);
             result.sseEmitter.complete();
         }
-
         return "Succeed!";
     }
+
+
+
 }

+ 2 - 0
src/main/java/com/goafanti/baiduAI/service/BaiduAiService.java

@@ -7,4 +7,6 @@ public interface BaiduAiService {
 
 
     OutSendChat sendChat(InputSendChat in);
+
+    String sendJS(InputSendChat in);
 }

+ 17 - 2
src/main/java/com/goafanti/baiduAI/service/impl/BaiduAiServiceImpl.java

@@ -46,11 +46,11 @@ public class BaiduAiServiceImpl implements BaiduAiService {
             for (String key : SseMap.sseEmitterMap.keySet()) {
                 try {
                     SseResult sseResult=SseMap.sseEmitterMap.get(key);
-                    Map map=new HashMap();
+//                    Map map=new HashMap();
 //                    map.put("result",resultMap.get("result"));
 //                    String s = JSON.toJSONString(map);
 //                    sseResult.sseEmitter.send(s);
-                    sseResult.sseEmitter.send(result);
+                    sseResult.sseEmitter.send(resultMap);
                 } catch (IOException e) {
                     SseMap.sseEmitterMap.remove(key);
                 }
@@ -63,6 +63,21 @@ public class BaiduAiServiceImpl implements BaiduAiService {
 
     }
 
+    @Override
+    public String sendJS(InputSendChat in) {
+
+        String result = null;
+        try {
+            result= baiduChatUtils.sendBaiduAI(in);
+        } catch (IOException e) {
+            e.printStackTrace();
+            throw new BusinessException("文言一心调用失败"+e.getLocalizedMessage());
+        }
+        return result;
+    }
+
+
+
     private OutSendChat pushResultToOutSendChat(String result) {
 
         Map<String ,Object> resultMap=JSON.parseObject(result, Map.class);

+ 0 - 3
src/main/java/com/goafanti/common/utils/BaiduChatUtils.java

@@ -69,9 +69,6 @@ public class BaiduChatUtils {
                 .build();
         Response response = HTTP_CLIENT.newCall(request).execute();
         String result=response.body().string();
-        SseEmitter sseEmitter=new SseEmitter(0l);
-
-
         return result;
     }