浏览代码

修改训练营打卡逻辑

zouxuan 1 年之前
父节点
当前提交
eae4feb43a

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

@@ -147,7 +147,7 @@ public class AudioCompareHandler implements MessageHandler {
 				
 				MusicXmlNote musicXmlNote = musicXmlBasicInfo.getMusicXmlInfos().stream().max(Comparator.comparing(MusicXmlNote::getTimeStamp)).get();
 				sysMusicCompareRecord.setSourceTime((float) ((musicXmlNote.getTimeStamp()+musicXmlNote.getDuration())/1000));
-				sysMusicCompareRecordService.insert(sysMusicCompareRecord, null);
+				sysMusicCompareRecordService.insert(sysMusicCompareRecord);
 				channelContext.setRecordId(sysMusicCompareRecord.getId());
 			}
 			break;

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

@@ -37,7 +37,7 @@ public class SysMusicCompareRecordController extends BaseController {
 
     @ApiOperation(value = "添加记录")
     @PostMapping("add")
-    public HttpResponseResult add(SysMusicCompareRecord record,Integer campId){
+    public HttpResponseResult add(SysMusicCompareRecord record){
         if(Objects.isNull(record.getFeature())){
             return failed("请设置功能点");
         }
@@ -46,9 +46,9 @@ public class SysMusicCompareRecordController extends BaseController {
         record.setClientId("student");
         record.setCreateTime(new Date());
 
-        log.warn(" add record info; record:{},campId :{}",record,campId);
+        log.warn(" add record info; record:{}",record);
         
-        sysMusicCompareRecordService.insert(record,campId);
+        sysMusicCompareRecordService.insert(record);
         
         ModelMap model = new ModelMap();
         model.put("totalPlayTimeOfCurrentDate", sysMusicCompareRecordService.queryCurrentDatePlayTimeByUserId(userId));

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempLittleArtistTrainingCampUserRelationDao.java

@@ -16,5 +16,7 @@ public interface TempLittleArtistTrainingCampUserRelationDao extends BaseMapper<
 
     int insertBatch(@Param("entities") List<TempLittleArtistTrainingCampUserRelation> entities);
 
+    //获取指定状态的训练营
+    List<TempLittleArtistTrainingCampUserRelation> queryByUserId(@Param("userId") Integer userId,@Param("state") String state);
 }
 

+ 4 - 17
mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicCompareRecordService.java

@@ -1,20 +1,16 @@
 package com.ym.mec.biz.service;
 
-import java.util.List;
-import java.util.Map;
-
 import com.ym.mec.biz.dal.dao.SysMusicCompareRecordDao;
-import com.ym.mec.biz.dal.dto.CountStudentTrainDataDto;
-import com.ym.mec.biz.dal.dto.MusicCompareRankingDto;
-import com.ym.mec.biz.dal.dto.SoundCompareHelper;
-import com.ym.mec.biz.dal.dto.StatDto;
-import com.ym.mec.biz.dal.dto.TeacherCloudTrainingDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
 import com.ym.mec.biz.dal.page.SysMusicCompareRecordQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherCloudTrainingQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+import java.util.Map;
+
 public interface SysMusicCompareRecordService extends BaseService<Long, SysMusicCompareRecord> {
 
     SysMusicCompareRecordDao getDao();
@@ -103,14 +99,5 @@ public interface SysMusicCompareRecordService extends BaseService<Long, SysMusic
     
     PageInfo<TeacherCloudTrainingDto> queryTeacherTraining(TeacherCloudTrainingQueryInfo queryInfo);
 
-
-    /**
-     * 小小训练营 保存用户评测记录
-     *
-     * @param record 评测记录
-     * @param campId 训练营id
-     */
-    boolean insert(SysMusicCompareRecord record,Integer campId);
-
     Map<Long, SysMusicCompareRecord> getMapByIds(List<Long> musicPracticeRecordIds);
 }

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

@@ -69,6 +69,8 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 
     @Autowired
     private UserMusicCompareCampDayDataDao userMusicCompareCampDayDataDao;
+    @Autowired
+    private TempLittleArtistTrainingCampUserRelationService tempLittleArtistTrainingCampUserRelationService;
 
     @Autowired
     private UserMusicService userMusicService;
@@ -79,11 +81,14 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public long insert(SysMusicCompareRecord bean) {
 		long insert = super.insert(bean);
 		if(Objects.nonNull(bean.getUserId())){
 			studentDao.addStudentCloudStudySequenceDays(bean.getUserId());
 			sysMusicCompareWeekDataService.updateUserWeekTrainData(bean.getUserId(), LocalDate.now().with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue()));
+
+			updateCampData(bean);
 		}
 		return insert;
 	}
@@ -151,7 +156,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		
 		sysMusicCompareRecordDao.update(sysMusicCompareRecord);
 		studentDao.addStudentCloudStudySequenceDays(userId);
-        updateCampData(sysMusicCompareRecord,campId);
+        updateCampData(sysMusicCompareRecord);
 		sysMusicCompareWeekDataService
 				.updateUserWeekTrainData(userId, LocalDate.now().with(DateUtil.weekFields.dayOfWeek(), DayOfWeek.MONDAY.getValue()));
 	}
@@ -532,22 +537,6 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		return pageInfo;
 	}
 
-    /**
-     * 小小训练营 保存用户评测记录
-     *
-     * @param record 评测记录
-     * @param campId 训练营id
-     */
-    @Override
-    @Transactional
-    public boolean insert(SysMusicCompareRecord record, Integer campId) {
-        this.insert(record);
-
-        updateCampData(record, campId);
-
-        return true;
-    }
-
     @Override
     public Map<Long, SysMusicCompareRecord> getMapByIds(List<Long> musicPracticeRecordIds) {
         if (CollectionUtils.isEmpty(musicPracticeRecordIds)) {
@@ -560,21 +549,26 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 
     }
 
-    private void updateCampData(SysMusicCompareRecord record, Integer campId) {
-
-        if (campId == null) {
-            return;
-        }
-        // 保存训练营评测记录
-        int i = userMusicCompareCampDayDataDao.updateCampDayData(record.getUserId(), campId, record.getPlayTime());
-        if (i == 0) {
-            UserMusicCompareCampDayData campDayData = new UserMusicCompareCampDayData();
-            campDayData.setCampId(campId);
-            campDayData.setUserId(record.getUserId());
-            campDayData.setDay(new Date());
-            campDayData.setTrainNum(1);
-            campDayData.setTrainTime(record.getPlayTime());
-            userMusicCompareCampDayDataDao.insert(campDayData);
-        }
+    private void updateCampData(SysMusicCompareRecord record) {
+		//获取所有进行中的训练营
+		List<TempLittleArtistTrainingCampUserRelation> userRelations = tempLittleArtistTrainingCampUserRelationService.getDao()
+				.queryByUserId(record.getUserId(),"ING");
+		if (CollectionUtils.isEmpty(userRelations)) {
+			return;
+		}
+		Date date = new Date();
+		for (TempLittleArtistTrainingCampUserRelation userRelation : userRelations) {
+			// 保存训练营评测记录
+			int i = userMusicCompareCampDayDataDao.updateCampDayData(record.getUserId(), userRelation.getActivityId(), record.getPlayTime());
+			if (i == 0) {
+				UserMusicCompareCampDayData campDayData = new UserMusicCompareCampDayData();
+				campDayData.setCampId(userRelation.getActivityId());
+				campDayData.setUserId(record.getUserId());
+				campDayData.setDay(date);
+				campDayData.setTrainNum(1);
+				campDayData.setTrainTime(record.getPlayTime());
+				userMusicCompareCampDayDataDao.insert(campDayData);
+			}
+		}
     }
 }

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/TempLittleArtistTrainingCampUserRelationMapper.xml

@@ -24,5 +24,10 @@
             (#{entity.activityId}, #{entity.userId}, #{entity.imGroupId}, #{entity.state}, #{entity.createTime},#{entity.applyTime})
         </foreach>
     </insert>
+    <select id="queryByUserId" resultMap="BaseResultMap">
+        select ur.* from temp_little_artist_training_camp_user_relation ur
+                             left join temp_little_artist_training_camp tc ON tc.id_ = ur.activity_id_
+        where tc.state_ = #{state} AND ur.user_id_ = #{userId} AND ur.state_ = 'APPLY'
+    </select>
 
 </mapper>