|
@@ -1,6 +1,7 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.biz.dal.dao.StudentDao;
|
|
|
import com.ym.mec.biz.dal.dao.SysMusicCompareRecordDao;
|
|
@@ -15,6 +16,7 @@ import com.ym.mec.common.page.PageInfo;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
@@ -56,7 +58,10 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
|
|
|
sysMusicCompareRecord.setUserId(user.getId());
|
|
|
sysMusicCompareRecord.setSysMusicScoreId(soundCompareInfo.getMusicScoreId());
|
|
|
sysMusicCompareRecord.setBehaviorId(soundCompareInfo.getBehaviorId());
|
|
|
- sysMusicCompareRecord.setScoreData(JSON.toJSONString(soundCompareInfo.getUserMeasureScoreMap()));
|
|
|
+ Map<String, Object> scoreData = new HashMap<>();
|
|
|
+ scoreData.put("userMeasureScore", soundCompareInfo.getUserMeasureScoreMap());
|
|
|
+ scoreData.put("musicalNotesPlayStats", soundCompareInfo.getMusicalNotesPlayStats());
|
|
|
+ sysMusicCompareRecord.setScoreData(JSON.toJSONString(scoreData));
|
|
|
if (Objects.nonNull(soundCompareInfo.getUserMeasureScoreMap()) && soundCompareInfo.getUserMeasureScoreMap().containsKey(-1)){
|
|
|
Map<String, Object> finalScore = soundCompareInfo.getUserMeasureScoreMap().get(-1);
|
|
|
sysMusicCompareRecord.setScore((BigDecimal) finalScore.get("score"));
|
|
@@ -76,6 +81,19 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public List<MusicalNotesPlayStatDto> getLastEvaluationMusicalNotesPlayStats(Integer userId) {
|
|
|
+ SysMusicCompareRecord userLastEvaluationData = sysMusicCompareRecordDao.getUserLastEvaluationData(userId);
|
|
|
+ if(StringUtils.isBlank(userLastEvaluationData.getScoreData())){
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ JSONObject jsonObject = JSON.parseObject(userLastEvaluationData.getScoreData());
|
|
|
+ if(!jsonObject.containsKey("musicalNotesPlayStats")){
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ return jsonObject.getObject("musicalNotesPlayStats", List.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public StatDto rankingList(Integer headUserId,int type, String startDate, String endDate) {
|
|
|
StatDto result = new StatDto();
|
|
|
MusicCompareRankingDto head = new MusicCompareRankingDto();
|