Преглед на файлове

1.应课程需要,资源管理新增修改
2.加入websocket

honorfire преди 7 месеца
родител
ревизия
f274d4743b

+ 7 - 0
snowy-modules/snowy-web-app/src/main/java/vip/xiaonuo/web/SnowyWebApp.java

@@ -20,6 +20,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.annotation.Bean;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.socket.server.standard.ServerEndpointExporter;
 import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
 import vip.xiaonuo.common.runner.AppStartupListener;
 
@@ -69,4 +70,10 @@ public class SnowyWebApp {
     public AppStartupListener appStartupListener(){
         return new AppStartupListener();
     }
+
+    @Bean
+    public ServerEndpointExporter serverEndpointExporter() {
+        log.info("正在启动开启websocket支持") ;
+        return new ServerEndpointExporter();
+    }
 }

+ 2 - 0
snowy-modules/snowy-web-app/src/main/java/vip/xiaonuo/web/core/config/GlobalConfigure.java

@@ -181,6 +181,8 @@ public class GlobalConfigure implements WebMvcConfigurer {
             "/resourceFile/downloadfile",
             "/resourceFile/batchDownloadFile",
 
+            "/test/auto",
+
             /* 资源中心 */
             "/disk/resourcecentre/page",
             "/disk/resourcecentre/detail",

+ 7 - 2
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/ResourceRecordController.java

@@ -210,7 +210,8 @@ public class ResourceRecordController {
     @CommonLog("资源管理-添加")
     @SaCheckPermission("/disk/courseauditrecord/add")
     @PostMapping("/disk/courseauditrecord/add")
-    public CommonResult<String> add(@RequestBody @Valid CourseAuditRecordAddParam courseAuditRecordAddParam) {
+    public CommonResult<Map<String,Object>> add(@RequestBody @Valid CourseAuditRecordAddParam courseAuditRecordAddParam) {
+        Map result=new HashMap();
         //生成统一的上传批次号
         String uploadBatchNum = UUID.randomUUID().toString();
         if("1".equals(courseAuditRecordAddParam.getAuthType()))
@@ -221,6 +222,7 @@ public class ResourceRecordController {
         String userFileIdsStr=courseAuditRecordAddParam.getUserfileIds();
         String[] userFileIdList = userFileIdsStr.split(",");
         List<CourseAuditRecord> courseAuditRecordList = new ArrayList<>();
+        List<String> addIdList=new ArrayList<>();
         for (String userFileId : userFileIdList) {
             CourseAuditRecord courseAuditRecord = BeanUtil.toBean(courseAuditRecordAddParam, CourseAuditRecord.class);
             //2025.6.27废弃,改用userfile表,直接有相关信息
@@ -232,6 +234,7 @@ public class ResourceRecordController {
             if(StringUtils.isNotEmpty(courseAuditRecordAddParam.getKeywordValue()))courseAuditRecord.setKeywordPinyin(StringUtils.deleteWhitespace(pinyinUtils.toPinyin(courseAuditRecordAddParam.getKeywordValue(),false)));
             courseAuditRecordList.add(courseAuditRecord);
             courseAuditRecord=courseAuditRecordService.addOne(courseAuditRecord);
+            addIdList.add(courseAuditRecord.getId());
             //存储私密权限下关联的用户
             if("1".equals(courseAuditRecordAddParam.getAuthType()))
             {
@@ -250,7 +253,9 @@ public class ResourceRecordController {
 
         }
 //        courseAuditRecordService.addBatch(courseAuditRecordList);
-        return CommonResult.ok();
+        String addIdListStr= String.join(",",addIdList);
+        result.put("addIdListStr",addIdListStr);
+        return CommonResult.data(result);
     }
 
     /**

+ 55 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/TestWebSocket.java

@@ -0,0 +1,55 @@
+package vip.xiaonuo.disk.controller;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.websocket.*;
+import javax.websocket.server.PathParam;
+import javax.websocket.server.ServerEndpoint;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * 测试websocket
+ *
+ * @author jinjilong
+ */
+@Slf4j
+@Component
+@ServerEndpoint("/test/auto")
+public class TestWebSocket {
+
+    private Session session;
+
+    private String userId="1";
+
+
+
+    private static ConcurrentHashMap<String, TestWebSocket> meetingWebSocket = new ConcurrentHashMap<>();
+
+    @OnOpen
+    public void onOpen(Session session, @PathParam(value = "userId") String userId) {
+        System.out.println("用户:" + userId + "连接成功");
+
+    }
+
+
+    @OnClose
+    public void onClose() {
+
+    }
+
+
+    @OnMessage
+    public void onMessage(String message) {
+
+
+
+    }
+
+    @OnError
+    public void onError(Session session, Throwable throwable) {
+
+    }
+
+
+}

+ 12 - 12
snowy-plugin/snowy-plugin-exam/snowy-plugin-exam-func/pom.xml

@@ -35,18 +35,18 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
             <version>${spring.boot.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springframework.boot</groupId>
-                    <artifactId>spring-boot-starter-tomcat</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-undertow</artifactId>
-            <version>${spring.boot.version}</version>
-        </dependency>
+<!--            <exclusions>-->
+<!--                <exclusion>-->
+<!--                    <groupId>org.springframework.boot</groupId>-->
+<!--                    <artifactId>spring-boot-starter-tomcat</artifactId>-->
+<!--                </exclusion>-->
+<!--            </exclusions>-->
+        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>org.springframework.boot</groupId>-->
+<!--            <artifactId>spring-boot-starter-undertow</artifactId>-->
+<!--            <version>${spring.boot.version}</version>-->
+<!--        </dependency>-->
 
         <dependency>
             <groupId>org.mybatis.spring.boot</groupId>

+ 11 - 0
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/pom.xml

@@ -42,5 +42,16 @@
             <groupId>vip.xiaonuo</groupId>
             <artifactId>snowy-plugin-disk-api</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-websocket</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.tomcat.embed</groupId>
+            <artifactId>tomcat-embed-websocket</artifactId>
+            <version>9.0.72</version> <!-- 和你的 tomcat-embed-core 保持一致 -->
+        </dependency>
     </dependencies>
 </project>

+ 2 - 0
snowy-server/snowy-gateway-app/src/main/java/vip/xiaonuo/gateway/config/GatewayConfigure.java

@@ -141,6 +141,8 @@ public class GatewayConfigure {
 
             "/api/tenapp/ten/storage/tenSelector",
 
+            "/api/webapp/test/auto",
+
             /* 资源中心 */
             "/api/webapp/disk/resourcecentre/page",
             "/api/webapp/disk/resourcecentre/detail",