From f91ea8c1ca793d1b791f2b63ab30d6ea2c4a675a Mon Sep 17 00:00:00 2001
From: ageerle <ageerle@163.com>
Date: 星期四, 13 三月 2025 09:43:53 +0800
Subject: [PATCH] fix: 修复未登录无法使用联网插件

---
 ruoyi-admin/src/main/java/org/ruoyi/controller/KnowledgeController.java                          |    2 +-
 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java       |   44 +++++++++++++++++++++++---------------------
 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java |    5 +++++
 3 files changed, 29 insertions(+), 22 deletions(-)

diff --git a/ruoyi-admin/src/main/java/org/ruoyi/controller/KnowledgeController.java b/ruoyi-admin/src/main/java/org/ruoyi/controller/KnowledgeController.java
index 6f9f06b..5ccaa43 100644
--- a/ruoyi-admin/src/main/java/org/ruoyi/controller/KnowledgeController.java
+++ b/ruoyi-admin/src/main/java/org/ruoyi/controller/KnowledgeController.java
@@ -106,7 +106,7 @@
     @GetMapping("/list")
     public TableDataInfo<KnowledgeInfoVo> list(KnowledgeInfoBo bo, PageQuery pageQuery) {
         if(!StpUtil.isLogin()){
-            throw new SecurityException("璇峰厛鍘荤櫥褰�!");
+            return null;
         }
         bo.setUid(LoginHelper.getUserId());
         return knowledgeInfoService.queryPageList(bo, pageQuery);
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java
index 634cb02..ed0c350 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java
@@ -98,33 +98,36 @@
         SSEEventSourceListener openAIEventSourceListener = new SSEEventSourceListener(sseEmitter);
         // 鑾峰彇瀵硅瘽娑堟伅鍒楄〃
         List<Message> messages = chatRequest.getMessages();
+
         try {
             String chatString = null;
+            Object content = messages.get(messages.size() - 1).getContent();
+            if (content instanceof List<?> listContent) {
+                if (!listContent.isEmpty() && listContent.get(0) instanceof Content) {
+                    chatString = ((Content) listContent.get(0)).getText();
+                }
+            } else if (content instanceof String) {
+                chatString = (String) content;
+            }
+
+            String configValue = getKey("enabled");
+            if (Boolean.parseBoolean(configValue)) {
+                // 鍒ゆ柇鏂囨湰鏄惁鍚堣
+                String type = textReview(chatString);
+                // 瀹℃牳鐘舵�� 1 浠h〃鍚堟硶
+                if (!"1".equals(type) && StringUtils.isNotEmpty(type)) {
+                    throw new BaseException("鏂囨湰涓嶅悎瑙�,璇蜂慨鏀�!");
+                }
+            }
+
             if (StpUtil.isLogin()) {
                 LocalCache.CACHE.put("userId", getUserId());
-                Object content = messages.get(messages.size() - 1).getContent();
-                if (content instanceof List<?> listContent) {
-                    if (!listContent.isEmpty() && listContent.get(0) instanceof Content) {
-                        chatString = ((Content) listContent.get(0)).getText();
-                    }
-                } else if (content instanceof String) {
-                    chatString = (String) content;
-                }
 
                 ChatMessageBo chatMessageBo = new ChatMessageBo();
                 chatMessageBo.setUserId(getUserId());
                 chatMessageBo.setModelName(chatRequest.getModel());
-
                 chatMessageBo.setContent(chatString);
-                String configValue = getKey("enabled");
-                if (Boolean.parseBoolean(configValue)) {
-                    // 鍒ゆ柇鏂囨湰鏄惁鍚堣
-                    String type = textReview(chatString);
-                    // 瀹℃牳鐘舵�� 1 浠h〃鍚堟硶
-                    if (!"1".equals(type) && StringUtils.isNotEmpty(type)) {
-                        throw new BaseException("鏂囨湰涓嶅悎瑙�,璇蜂慨鏀�!");
-                    }
-                }
+
                 String model = chatRequest.getModel();
                 // 濡傛灉鏄痝pts绯诲垪妯″瀷
                 if (chatRequest.getModel().startsWith("gpt-4-gizmo")) {
@@ -137,7 +140,6 @@
                 } else {
                     openAiStreamClient = chatConfig.createOpenAiStreamClient(sysModel.getApiHost(), sysModel.getApiKey());
                     // 妯″瀷璁剧疆榛樿鎻愮ず璇�
-
                     if (StringUtils.isNotEmpty(sysModel.getSystemPrompt())) {
                         Message sysMessage = Message.builder().content(sysModel.getSystemPrompt()).role(Message.Role.SYSTEM).build();
                         messages.add(sysMessage);
@@ -150,10 +152,10 @@
                     }
                 }
             }
-            String configValue = configService.getConfigValue("zhipu", "key");
+            String zhipuValue = configService.getConfigValue("zhipu", "key");
             // 娣诲姞鑱旂綉淇℃伅
             if(StringUtils.isNotEmpty(configValue)){
-                ClientV4 client = new ClientV4.Builder(configValue)
+                ClientV4 client = new ClientV4.Builder(zhipuValue)
                         .networkConfig(300, 100, 100, 100, TimeUnit.SECONDS)
                         .connectionPool(new okhttp3.ConnectionPool(8, 1, TimeUnit.SECONDS))
                         .build();
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java
index 8ed0ba9..453d255 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java
@@ -1,5 +1,6 @@
 package org.ruoyi.system.service.impl;
 
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -65,6 +66,10 @@
      */
     @Override
     public SysNotice getNotice(SysNoticeBo notice) {
+        if(!StpUtil.isLogin()){
+            return null;
+        }
+
         LambdaQueryWrapper<SysNoticeState> lqwState = Wrappers.lambdaQuery();
         Long userId = LoginHelper.getLoginUser().getUserId();
 

--
Gitblit v1.9.3