Joburgess 4 лет назад
Родитель
Сommit
0dfa44b337

+ 5 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SoundServiceImpl.java

@@ -23,6 +23,7 @@ import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.IdGeneratorService;
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -364,9 +365,11 @@ public class SoundServiceImpl implements SoundService {
 
             score = intonation.multiply(new BigDecimal(0.4)).add(cadence.multiply(new BigDecimal(0.4))).add(integrity.multiply(new BigDecimal(0.2))).setScale(0, BigDecimal.ROUND_HALF_UP);
         } catch (UnsupportedAudioFileException e) {
-            e.printStackTrace();
+            LOGGER.error("文件类型不支持:{}", FilenameUtils.getExtension(filePath_r));
         } catch (IOException e) {
-            e.printStackTrace();
+            LOGGER.error("IO异常:{}", e);
+        } catch (ArithmeticException e){
+            LOGGER.info("无musicXml信息");
         }finally {
             if(f_r!=null){
                 f_r.deleteOnExit();

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

@@ -1,18 +1,17 @@
 package com.ym.mec.teacher.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.ym.mec.biz.dal.dto.MusicPitchDetailDto;
 import com.ym.mec.biz.service.SoundService;
 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.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
@@ -37,8 +36,12 @@ public class SoundController extends BaseController {
 
     @ApiOperation(value = "小节评分")
     @PostMapping("measureCompare")
-    public HttpResponseResult measureCompare(List<MusicPitchDetailDto> musicXmlInfos, MultipartFile record){
-        return soundService.measureCompare(musicXmlInfos, record);
+    public HttpResponseResult measureCompare(@RequestParam("musicXmlInfos") String musicXmlInfos,@RequestParam("record") MultipartFile record){
+        if(StringUtils.isBlank(musicXmlInfos)){
+            return failed();
+        }
+        List<MusicPitchDetailDto> musicXmlInfoList =  JSON.parseArray(musicXmlInfos, MusicPitchDetailDto.class);
+        return soundService.measureCompare(musicXmlInfoList, record);
     }
 
 }