Browse Source

Merge branch 'zx_saas_recore_0604' of http://git.dayaedu.com/yonge/mec into saas

zouxuan 1 năm trước cách đây
mục cha
commit
4ac4b577b0

+ 1 - 1
audio-analysis/src/main/java/com/yonge/netty/server/service/AudioCompareHandler.java

@@ -141,7 +141,7 @@ public class AudioCompareHandler implements MessageHandler {
 				sysMusicCompareRecord.setDeviceType(DeviceTypeEnum.valueOf(musicXmlBasicInfo.getPlatform()));
 				sysMusicCompareRecord.setSpeed(musicXmlBasicInfo.getSpeed());
 				sysMusicCompareRecord.setPartIndex(musicXmlBasicInfo.getPartIndex());
-				
+				sysMusicCompareRecord.setSubjectId(musicXmlBasicInfo.getSubjectId());
 				//SysUser sysUser = sysUserFeignService.queryUserById(sysMusicCompareRecord.getUserId());
 				sysMusicCompareRecord.setTenantId(musicXmlBasicInfo.getTenantId());
 				

+ 3 - 1
mec-application/src/main/java/com/ym/mec/student/controller/CloudStudyController.java

@@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Map;
+
 /**
  * @Author Joburgess
  * @Date 2021/8/11 0011
@@ -38,7 +40,7 @@ public class CloudStudyController extends BaseController {
 
     @ApiOperation("学员训练数据统计")
     @GetMapping("studentTrainData")
-    public HttpResponseResult studentTrainData(SysMusicCompareRecordQueryInfo queryInfo){
+    public HttpResponseResult<Map<String, Object>> studentTrainData(SysMusicCompareRecordQueryInfo queryInfo){
         queryInfo.setUserId(sysUserService.getUserId());
         return succeed(sysMusicCompareRecordService.studentTrainData(queryInfo));
     }

+ 2 - 1
mec-application/src/main/java/com/ym/mec/student/controller/SysMusicCompareRecordController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.student.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
 import com.ym.mec.biz.service.SysMusicCompareRecordService;
 import com.ym.mec.biz.service.SysUserService;
@@ -58,7 +59,7 @@ public class SysMusicCompareRecordController extends BaseController {
 
     @ApiOperation(value = "用户最后一次评测数据")
     @GetMapping("getLastEvaluationMusicalNotesPlayStats")
-    public HttpResponseResult getLastEvaluationMusicalNotesPlayStats(Long recordId){
+    public HttpResponseResult<JSONObject> getLastEvaluationMusicalNotesPlayStats(Long recordId){
         return succeed(sysMusicCompareRecordService.getLastEvaluationMusicalNotesPlayStats(sysUserService.getUserId(), recordId));
     }
 

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMusicCompareRecord.java

@@ -85,6 +85,8 @@ public class SysMusicCompareRecord extends BaseEntity {
 	//文件是否过期
 	private boolean expire;
 
+	private Integer subjectId;
+
 	public SysMusicCompareRecord(FeatureType feature) {
 		this.feature = feature;
 	}

+ 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.dao.SysMusicCompareRecordDao;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
@@ -41,7 +42,7 @@ public interface SysMusicCompareRecordService extends BaseService<Long, SysMusic
      * @param userId:
      * @return java.util.List<com.ym.mec.biz.dal.dto.MusicalNotesPlayStatDto>
      */
-    Object getLastEvaluationMusicalNotesPlayStats(Integer userId, Long recordId);
+    JSONObject getLastEvaluationMusicalNotesPlayStats(Integer userId, Long recordId);
 
     /**
      * @describe 云教练排行榜

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

@@ -120,10 +120,13 @@ public class SoundCompareHandler implements WebSocketEventHandler {
                 if(bodyObject.containsKey("speed")){
                     userSoundInfoMap.get(phone).setSpeed(bodyObject.getIntValue("speed"));
                 }
-                List<Integer> subjectIds = sysMusicScoreAccompanimentDao.findSubjectByMusicScoreId(userSoundInfoMap.get(phone).getMusicScoreId(), null);
+                if(bodyObject.containsKey("subjectId")){
+                    userSoundInfoMap.get(phone).setSubjectId(bodyObject.getIntValue("subjectId"));
+                }
+                /*List<Integer> subjectIds = sysMusicScoreAccompanimentDao.findSubjectByMusicScoreId(userSoundInfoMap.get(phone).getMusicScoreId(), null);
                 if(!CollectionUtils.isEmpty(subjectIds)){
                     userSoundInfoMap.get(phone).setSubjectId(subjectIds.get(0));
-                }
+                }*/
                 userSoundInfoMap.get(phone).setMeasureXmlInfoMap(musicXmlInfos.stream().collect(Collectors.groupingBy(MusicPitchDetailDto::getMeasureIndex)));
                 musicXmlInfos.forEach(e->userSoundInfoMap.get(phone).getMusicalNotePitchMap().put(e.getMusicalNotesIndex(), e.getFrequency()));
                 for (Map.Entry<Integer, List<MusicPitchDetailDto>> userMeasureXmlInfoEntry : userSoundInfoMap.get(phone).getMeasureXmlInfoMap().entrySet()) {

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

@@ -108,6 +108,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 			return;
 		}
 		SysMusicCompareRecord sysMusicCompareRecord = new SysMusicCompareRecord();
+		sysMusicCompareRecord.setSubjectId(soundCompareInfo.getSubjectId());
 		sysMusicCompareRecord.setUserId(user.getId());
 		sysMusicCompareRecord.setSysMusicScoreId(soundCompareInfo.getMusicScoreId());
 		sysMusicCompareRecord.setHeardLevel(soundCompareInfo.getHeardLevel());
@@ -165,7 +166,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 	}
 
 	@Override
-	public Object getLastEvaluationMusicalNotesPlayStats(Integer userId, Long recordId) {
+	public JSONObject getLastEvaluationMusicalNotesPlayStats(Integer userId, Long recordId) {
 		SysMusicCompareRecord userLastEvaluationData;
 		if(Objects.nonNull(recordId)){
 			userLastEvaluationData = sysMusicCompareRecordDao.get(recordId);
@@ -181,6 +182,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 
 		JSONObject jsonObject = JSON.parseObject(userLastEvaluationData.getScoreData());
 		jsonObject.put("recordId", userLastEvaluationData.getId());
+		jsonObject.put("subjectId", userLastEvaluationData.getSubjectId());
 		jsonObject.put("score", userLastEvaluationData.getScore());
 		jsonObject.put("cadence", userLastEvaluationData.getCadence());
 		jsonObject.put("intonation", userLastEvaluationData.getIntonation());

+ 12 - 4
mec-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml

@@ -31,6 +31,7 @@
 		<result column="create_time_" property="createTime" />
 		<result column="part_index_" property="partIndex" />
         <result column="tenant_id_" property="tenantId"/>
+        <result column="subject_id_" property="subjectId"/>
 	</resultMap>
 
 	<!-- 根据主键查询一条记录 -->
@@ -47,15 +48,16 @@
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysMusicCompareRecord" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO sys_music_compare_record (id_,user_id_,sys_music_score_id_,heard_level_,behavior_id_,score_data_,score_,intonation_,cadence_,integrity_,
 		                                      record_file_path_,video_file_path_,device_type_,client_id_,play_time_,speed_,monday_,
-												source_time_,feature_,create_time_,create_date_,update_time_,part_index_,tenant_id_)
+												source_time_,feature_,create_time_,create_date_,update_time_,part_index_,tenant_id_,subject_id_)
 		VALUES(#{id},#{userId},#{sysMusicScoreId},#{heardLevel,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{behaviorId},#{scoreData},
 		       #{score},#{intonation},#{cadence},#{integrity},
 		       #{recordFilePath},#{videoFilePath},#{deviceType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{clientId},#{playTime},#{speed},#{monday},
-		       #{sourceTime},#{feature,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{createTime}, #{createDate}, NOW(),#{partIndex},#{tenantId})
+		       #{sourceTime},#{feature,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}, #{createTime}, #{createDate}, NOW(),#{partIndex},#{tenantId},#{subjectId})
 	</insert>
 	<insert id="init">
 		insert into sys_music_compare_day_data (user_id_, day_, train_num_, train_time_, tenant_id_)
-		select smcr.user_id_,DATE_FORMAT(smcr.create_time_,'%Y-%m-%d'),COUNT(smcr.id_),SUM(smcr.play_time_),smcr.tenant_id_ from sys_music_compare_record smcr
+		select smcr.user_id_,DATE_FORMAT(smcr.create_time_,'%Y-%m-%d'),COUNT(smcr.id_),SUM(smcr.play_time_),smcr.tenant_id_
+		from sys_music_compare_record smcr
 		where smcr.create_date_ = #{date}
 		group by smcr.create_date_,smcr.user_id_;
 	</insert>
@@ -63,6 +65,9 @@
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.SysMusicCompareRecord">
 		UPDATE sys_music_compare_record <set>
+		<if test="subjectId != null">
+			subject_id_ = #{subjectId},
+		</if>
 		<if test="userId != null">
 			user_id_ = #{userId},
 		</if>
@@ -138,6 +143,9 @@
 			<if test="userId!=null">
 				AND smcr.user_id_=#{userId}
 			</if>
+			<if test="subjectId != null">
+				AND smcr.subject_id_=#{subjectId}
+			</if>
 			<if test="featureType != null">
 				AND smcr.feature_ = #{featureType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 			</if>
@@ -157,7 +165,7 @@
 			LOCATE('musicalNotesPlayStats', smcr.score_data_) notes_data_index_,
 		       smcr.score_, smcr.intonation_, smcr.cadence_,
 		       smcr.integrity_, smcr.record_file_path_, smcr.video_file_path_, smcr.client_id_, smcr.device_type_, smcr.play_time_,
-		       smcr.monday_, smcr.create_time_,
+		       smcr.monday_, smcr.create_time_,smcr.subject_id_,
 			sms.name_ sys_music_score_name_
 		FROM sys_music_compare_record smcr
 		LEFT JOIN sys_music_score sms on smcr.sys_music_score_id_ = sms.id_