فهرست منبع

Merge branch 'music_score'

Joburgess 3 سال پیش
والد
کامیت
42d4ab323a

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

@@ -26,6 +26,9 @@ public class SoundCompareHelper implements PitchDetectionHandler {
     @ApiModelProperty(value = "设备类型")
     @ApiModelProperty(value = "设备类型")
     private DeviceTypeEnum deviceType;
     private DeviceTypeEnum deviceType;
 
 
+    @ApiModelProperty(value = "操作编号")
+    private String behaviorId;
+
     @ApiModelProperty(value = "伴奏编号")
     @ApiModelProperty(value = "伴奏编号")
     private Integer musicScoreId;
     private Integer musicScoreId;
 
 
@@ -87,6 +90,14 @@ public class SoundCompareHelper implements PitchDetectionHandler {
         this.musicalNotePitchMap = musicalNotePitchMap;
         this.musicalNotePitchMap = musicalNotePitchMap;
     }
     }
 
 
+    public String getBehaviorId() {
+        return behaviorId;
+    }
+
+    public void setBehaviorId(String behaviorId) {
+        this.behaviorId = behaviorId;
+    }
+
     public Integer getSubjectId() {
     public Integer getSubjectId() {
         return subjectId;
         return subjectId;
     }
     }
@@ -206,6 +217,13 @@ public class SoundCompareHelper implements PitchDetectionHandler {
         if(offsetTime == -1 && !DeviceTypeEnum.IOS.equals(deviceType) && pitch>0){
         if(offsetTime == -1 && !DeviceTypeEnum.IOS.equals(deviceType) && pitch>0){
             int preTimeStamp = CollectionUtils.isEmpty(recordMeasurePithInfo)?0:recordMeasurePithInfo.get(recordMeasurePithInfo.size()-1).getTimeStamp();
             int preTimeStamp = CollectionUtils.isEmpty(recordMeasurePithInfo)?0:recordMeasurePithInfo.get(recordMeasurePithInfo.size()-1).getTimeStamp();
             offsetTime = timeStamp - (timeStamp - preTimeStamp)/2;
             offsetTime = timeStamp - (timeStamp - preTimeStamp)/2;
+            for (MusicPitchDetailDto musicXmlInfo : musicXmlInfos) {
+                if(!musicXmlInfo.getDontEvaluating()){
+                    if(offsetTime > musicXmlInfo.getTimeStamp())
+                        offsetTime = offsetTime - musicXmlInfo.getTimeStamp();
+                    break;
+                }
+            }
             for (Map.Entry<Integer, MusicPitchDetailDto> musicPitchDetailDtoEntry : measureEndTime.entrySet()) {
             for (Map.Entry<Integer, MusicPitchDetailDto> musicPitchDetailDtoEntry : measureEndTime.entrySet()) {
                 musicPitchDetailDtoEntry.getValue().setTimeStamp(musicPitchDetailDtoEntry.getValue().getTimeStamp() + offsetTime);
                 musicPitchDetailDtoEntry.getValue().setTimeStamp(musicPitchDetailDtoEntry.getValue().getTimeStamp() + offsetTime);
                 musicPitchDetailDtoEntry.getValue().setEndTimeStamp(musicPitchDetailDtoEntry.getValue().getEndTimeStamp() + offsetTime);
                 musicPitchDetailDtoEntry.getValue().setEndTimeStamp(musicPitchDetailDtoEntry.getValue().getEndTimeStamp() + offsetTime);

+ 12 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMusicCompareRecord.java

@@ -16,6 +16,9 @@ public class SysMusicCompareRecord {
 
 
 	/**  */
 	/**  */
 	private Long id;
 	private Long id;
+
+	/** 行为编号 */
+	private String behaviorId;
 	
 	
 	/** 用户编号 */
 	/** 用户编号 */
 	private Integer userId;
 	private Integer userId;
@@ -64,7 +67,15 @@ public class SysMusicCompareRecord {
 	public Long getId(){
 	public Long getId(){
 		return this.id;
 		return this.id;
 	}
 	}
-			
+
+	public String getBehaviorId() {
+		return behaviorId;
+	}
+
+	public void setBehaviorId(String behaviorId) {
+		this.behaviorId = behaviorId;
+	}
+
 	public void setUserId(Integer userId){
 	public void setUserId(Integer userId){
 		this.userId = userId;
 		this.userId = userId;
 	}
 	}

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

@@ -106,6 +106,9 @@ public class SoundCompareHandler implements WebSocketEventHandler {
                 if(bodyObject.containsKey("platform")){
                 if(bodyObject.containsKey("platform")){
                     userSoundInfoMap.get(phone).setDeviceType(DeviceTypeEnum.valueOf(bodyObject.getString("platform")));
                     userSoundInfoMap.get(phone).setDeviceType(DeviceTypeEnum.valueOf(bodyObject.getString("platform")));
                 }
                 }
+                if(bodyObject.containsKey("behaviorId")){
+                    userSoundInfoMap.get(phone).setBehaviorId(bodyObject.getString("behaviorId"));
+                }
                 List<Integer> subjectIds = sysMusicScoreAccompanimentDao.findSubjectByMusicScoreId(userSoundInfoMap.get(phone).getMusicScoreId(), null);
                 List<Integer> subjectIds = sysMusicScoreAccompanimentDao.findSubjectByMusicScoreId(userSoundInfoMap.get(phone).getMusicScoreId(), null);
                 if(!CollectionUtils.isEmpty(subjectIds)){
                 if(!CollectionUtils.isEmpty(subjectIds)){
                     userSoundInfoMap.get(phone).setSubjectId(subjectIds.get(0));
                     userSoundInfoMap.get(phone).setSubjectId(subjectIds.get(0));
@@ -425,9 +428,6 @@ public class SoundCompareHandler implements WebSocketEventHandler {
                     musicXmlInfo.setAvgFrequency(avgPitch.floatValue());
                     musicXmlInfo.setAvgFrequency(avgPitch.floatValue());
                 }
                 }
                 //完成度
                 //完成度
-                if(integrityValidNum>0){
-                    integrityValidNum = integrityValidNum;
-                }
                 if(integrityValidNum > compareNum){
                 if(integrityValidNum > compareNum){
                     integrityValidNum = compareNum;
                     integrityValidNum = compareNum;
                 }
                 }

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

@@ -6,6 +6,7 @@ import com.ym.mec.biz.dal.dao.SysMusicCompareRecordDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
 import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
+import com.ym.mec.biz.dal.enums.FeatureType;
 import com.ym.mec.biz.dal.page.SysMusicCompareRecordQueryInfo;
 import com.ym.mec.biz.dal.page.SysMusicCompareRecordQueryInfo;
 import com.ym.mec.biz.service.SysMusicCompareRecordService;
 import com.ym.mec.biz.service.SysMusicCompareRecordService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
@@ -13,13 +14,11 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.date.DateUtil;
-import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.CollectionUtils;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
-import java.time.DayOfWeek;
 import java.time.LocalDate;
 import java.time.LocalDate;
 import java.util.*;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -46,6 +45,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		SysMusicCompareRecord sysMusicCompareRecord = new SysMusicCompareRecord();
 		SysMusicCompareRecord sysMusicCompareRecord = new SysMusicCompareRecord();
 		sysMusicCompareRecord.setUserId(user.getId());
 		sysMusicCompareRecord.setUserId(user.getId());
 		sysMusicCompareRecord.setSysMusicScoreId(soundCompareInfo.getMusicScoreId());
 		sysMusicCompareRecord.setSysMusicScoreId(soundCompareInfo.getMusicScoreId());
+		sysMusicCompareRecord.setBehaviorId(soundCompareInfo.getBehaviorId());
 		sysMusicCompareRecord.setScoreData(JSON.toJSONString(soundCompareInfo.getUserMeasureScoreMap()));
 		sysMusicCompareRecord.setScoreData(JSON.toJSONString(soundCompareInfo.getUserMeasureScoreMap()));
 		if (Objects.nonNull(soundCompareInfo.getUserMeasureScoreMap()) && soundCompareInfo.getUserMeasureScoreMap().containsKey(-1)){
 		if (Objects.nonNull(soundCompareInfo.getUserMeasureScoreMap()) && soundCompareInfo.getUserMeasureScoreMap().containsKey(-1)){
 			Map<String, Object> finalScore = soundCompareInfo.getUserMeasureScoreMap().get(-1);
 			Map<String, Object> finalScore = soundCompareInfo.getUserMeasureScoreMap().get(-1);

+ 3 - 2
mec-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml

@@ -11,6 +11,7 @@
 		<result column="user_id_" property="userId" />
 		<result column="user_id_" property="userId" />
 		<result column="sys_music_score_id_" property="sysMusicScoreId" />
 		<result column="sys_music_score_id_" property="sysMusicScoreId" />
 		<result column="sys_music_score_name_" property="sysMusicScoreName" />
 		<result column="sys_music_score_name_" property="sysMusicScoreName" />
+		<result column="behavior_id_" property="behaviorId"/>
 		<result column="score_data_" property="scoreData" />
 		<result column="score_data_" property="scoreData" />
 		<result column="score_" property="score" />
 		<result column="score_" property="score" />
 		<result column="intonation_" property="intonation" />
 		<result column="intonation_" property="intonation" />
@@ -42,10 +43,10 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		</selectKey>
 		-->
 		-->
-		INSERT INTO sys_music_compare_record (id_,user_id_,sys_music_score_id_,score_data_,score_,intonation_,cadence_,integrity_,
+		INSERT INTO sys_music_compare_record (id_,user_id_,sys_music_score_id_,behavior_id_,score_data_,score_,intonation_,cadence_,integrity_,
 		                                      record_file_path_,device_type_,client_id_,play_time_,monday_,
 		                                      record_file_path_,device_type_,client_id_,play_time_,monday_,
 											feature_,create_time_)
 											feature_,create_time_)
-		VALUES(#{id},#{userId},#{sysMusicScoreId},#{scoreData},#{score},#{intonation},#{cadence},#{integrity},
+		VALUES(#{id},#{userId},#{sysMusicScoreId},#{behaviorId},#{scoreData},#{score},#{intonation},#{cadence},#{integrity},
 		       #{recordFilePath},#{deviceType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{clientId},#{playTime},#{monday},
 		       #{recordFilePath},#{deviceType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{clientId},#{playTime},#{monday},
 		       #{feature,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, NOW())
 		       #{feature,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, NOW())
 	</insert>
 	</insert>