فهرست منبع

feat:录音文件同步到oss

Joburgess 4 سال پیش
والد
کامیت
3592e64016

+ 10 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SoundCompareHandler.java

@@ -252,20 +252,23 @@ public class SoundCompareHandler implements WebSocketEventHandler {
             userSoundInfoMap.get(phone).setAccessFile(null);
         }
 
-        String url = null;
-        try {
-            String folder = UploadUtil.getFileFloder();
-            url = storagePluginContext.uploadFile(KS3StoragePlugin.PLUGIN_NAME,"soundCompare/" + folder, userSoundInfoMap.get(phone).getFile());
-        } catch (Exception e) {
-            LOGGER.error("录音文件上传失败:{}", e);
+        if(Objects.nonNull(userSoundInfoMap.get(phone).getFile())){
+            String url = null;
+            try {
+                String folder = UploadUtil.getFileFloder();
+                url = storagePluginContext.uploadFile(KS3StoragePlugin.PLUGIN_NAME,"soundCompare/" + folder, userSoundInfoMap.get(phone).getFile());
+            } catch (Exception e) {
+                LOGGER.error("录音文件上传失败:{}", e);
+            }
+            userSoundInfoMap.get(phone).setRecordFilePath(url);
         }
-        userSoundInfoMap.get(phone).setRecordFilePath(url);
         //存储评分数据
         sysMusicCompareRecordService.saveMusicCompareData(phone, userSoundInfoMap.get(phone));
 
         if(Objects.nonNull(userSoundInfoMap.get(phone).getFile())){
             userSoundInfoMap.get(phone).getFile().deleteOnExit();
         }
+
         userSoundInfoMap.remove(phone);
     }
 

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicCompareRecordServiceImpl.java

@@ -53,7 +53,9 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		sysMusicCompareRecord.setRecordFilePath(soundCompareInfo.getRecordFilePath());
 		sysMusicCompareRecord.setDeviceType(soundCompareInfo.getDeviceType());
 		sysMusicCompareRecord.setClientId(soundCompareInfo.getClientId());
-		sysMusicCompareRecord.setPlayTime(soundCompareInfo.getFile().length()/(SoundCompareHandler.soundCompareConfig.audioFormat.getFrameSize()*SoundCompareHandler.soundCompareConfig.audioFormat.getFrameRate()));
+		if(Objects.nonNull(soundCompareInfo.getFile())){
+			sysMusicCompareRecord.setPlayTime(soundCompareInfo.getFile().length()/(SoundCompareHandler.soundCompareConfig.audioFormat.getFrameSize()*SoundCompareHandler.soundCompareConfig.audioFormat.getFrameRate()));
+		}
 		sysMusicCompareRecord.setMonday(LocalDate.now().with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue()).toString());
 		sysMusicCompareRecordDao.insert(sysMusicCompareRecord);
 	}

+ 6 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/SoundController.java

@@ -49,6 +49,12 @@ public class SoundController extends BaseController {
         return soundService.measureCompare(musicXmlInfoList, record);
     }
 
+    @ApiOperation(value = "获取在线人数")
+    @GetMapping("getOnlineUserNum")
+    public HttpResponseResult getOnlineUserNum(){
+        return succeed(WebSocketHandler.WS_CLIENTS.size());
+    }
+
     @RequestMapping("sendToUser")
     public HttpResponseResult sendToUser(String phone, String message) throws IOException {
         if(!WebSocketHandler.WS_CLIENTS.containsKey(phone)){

+ 28 - 0
mec-web/src/main/java/com/ym/mec/web/controller/SoundCompareController.java

@@ -0,0 +1,28 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.biz.handler.WebSocketHandler;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author Joburgess
+ * @Date 2021/8/10 0010
+ */
+@Api(tags = "音频服务")
+@RequestMapping("soundCompare")
+@RestController
+public class SoundCompareController extends BaseController {
+
+    @ApiOperation(value = "获取在线人数")
+    @GetMapping("getOnlineUserNum")
+    public HttpResponseResult getOnlineUserNum(){
+        return succeed(WebSocketHandler.WS_CLIENTS.size());
+    }
+
+}