Browse Source

feat:智能陪练一期

Joburgess 3 years ago
parent
commit
daadd322b5

+ 31 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SoundCompareHelper.java

@@ -72,6 +72,13 @@ public class SoundCompareHelper implements PitchDetectionHandler {
     private List<MusicPitchDetailDto> musicXmlInfos;
 
     private String clientId;
+
+    private Integer detailId;
+
+    private Integer examSongId;
+
+    private String xmlUrl;
+
     /**
      * @describe 分贝检测器
      */
@@ -117,6 +124,30 @@ public class SoundCompareHelper implements PitchDetectionHandler {
         this.deviceType = deviceType;
     }
 
+    public Integer getDetailId() {
+        return detailId;
+    }
+
+    public void setDetailId(Integer detailId) {
+        this.detailId = detailId;
+    }
+
+    public Integer getExamSongId() {
+        return examSongId;
+    }
+
+    public void setExamSongId(Integer examSongId) {
+        this.examSongId = examSongId;
+    }
+
+    public String getXmlUrl() {
+        return xmlUrl;
+    }
+
+    public void setXmlUrl(String xmlUrl) {
+        this.xmlUrl = xmlUrl;
+    }
+
     public int getOffsetTime() {
         return offsetTime;
     }

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicCompareRecordService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
 import com.ym.mec.biz.dal.page.SysMusicCompareRecordQueryInfo;
@@ -28,7 +29,7 @@ public interface SysMusicCompareRecordService extends BaseService<Long, SysMusic
      * @param userId:
      * @return java.util.List<com.ym.mec.biz.dal.dto.MusicalNotesPlayStatDto>
      */
-    List<MusicalNotesPlayStatDto> getLastEvaluationMusicalNotesPlayStats(Integer userId);
+    Object getLastEvaluationMusicalNotesPlayStats(Integer userId);
 
     /**
      * @describe 云教练排行榜

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SoundCompareHandler.java

@@ -101,6 +101,15 @@ public class SoundCompareHandler implements WebSocketEventHandler {
                 if(bodyObject.containsKey("behaviorId")){
                     userSoundInfoMap.get(phone).setBehaviorId(bodyObject.getString("behaviorId"));
                 }
+                if(bodyObject.containsKey("detailId")){
+                    userSoundInfoMap.get(phone).setDetailId(bodyObject.getInteger("detailId"));
+                }
+                if(bodyObject.containsKey("examSongId")){
+                    userSoundInfoMap.get(phone).setExamSongId(bodyObject.getInteger("examSongId"));
+                }
+                if(bodyObject.containsKey("xmlUrl")){
+                    userSoundInfoMap.get(phone).setXmlUrl(bodyObject.getString("xmlUrl"));
+                }
                 List<Integer> subjectIds = sysMusicScoreAccompanimentDao.findSubjectByMusicScoreId(userSoundInfoMap.get(phone).getMusicScoreId(), null);
                 if(!CollectionUtils.isEmpty(subjectIds)){
                     userSoundInfoMap.get(phone).setSubjectId(subjectIds.get(0));

+ 10 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicCompareRecordServiceImpl.java

@@ -63,7 +63,12 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		sysMusicCompareRecord.setBehaviorId(soundCompareInfo.getBehaviorId());
 		Map<String, Object> scoreData = new HashMap<>();
 		scoreData.put("userMeasureScore", soundCompareInfo.getUserMeasureScoreMap());
-		scoreData.put("musicalNotesPlayStats", soundCompareInfo.getMusicalNotesPlayStats());
+		Map<String, Object> musicalNotesPlayStats = new HashMap<>();
+		musicalNotesPlayStats.put("detailId", soundCompareInfo.getDetailId());
+		musicalNotesPlayStats.put("examSongId", soundCompareInfo.getExamSongId());
+		musicalNotesPlayStats.put("xmlUrl", soundCompareInfo.getXmlUrl());
+		musicalNotesPlayStats.put("notesData", soundCompareInfo.getMusicalNotesPlayStats());
+		scoreData.put("musicalNotesPlayStats", musicalNotesPlayStats);
 		sysMusicCompareRecord.setScoreData(JSON.toJSONString(scoreData));
 		if (Objects.nonNull(soundCompareInfo.getUserMeasureScoreMap()) && soundCompareInfo.getUserMeasureScoreMap().containsKey(-1)){
 			Map<String, Object> finalScore = soundCompareInfo.getUserMeasureScoreMap().get(-1);
@@ -84,16 +89,16 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 	}
 
 	@Override
-	public List<MusicalNotesPlayStatDto> getLastEvaluationMusicalNotesPlayStats(Integer userId) {
+	public Object getLastEvaluationMusicalNotesPlayStats(Integer userId) {
 		SysMusicCompareRecord userLastEvaluationData = sysMusicCompareRecordDao.getUserLastEvaluationData(userId);
 		if(StringUtils.isBlank(userLastEvaluationData.getScoreData())){
-			return Collections.emptyList();
+			return null;
 		}
 		JSONObject jsonObject = JSON.parseObject(userLastEvaluationData.getScoreData());
 		if(!jsonObject.containsKey("musicalNotesPlayStats")){
-			return Collections.emptyList();
+			return null;
 		}
-		return jsonObject.getObject("musicalNotesPlayStats", List.class);
+		return jsonObject.get("musicalNotesPlayStats");
 	}
 
 	@Override

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/SysMusicCompareRecordController.java

@@ -50,7 +50,7 @@ public class SysMusicCompareRecordController extends BaseController {
 
     @ApiOperation(value = "用户最后一次评测数据")
     @GetMapping("getLastEvaluationMusicalNotesPlayStats")
-    public HttpResponseResult<List<MusicalNotesPlayStatDto>> getLastEvaluationMusicalNotesPlayStats(){
+    public HttpResponseResult getLastEvaluationMusicalNotesPlayStats(){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if(sysUser == null){
             throw new BizException("请登录");