|
@@ -11,12 +11,18 @@ import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.Optional;
|
|
|
import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationRecordService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.SysConfigService;
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper;
|
|
|
+import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;
|
|
|
import com.yonge.cooleshow.common.constant.SysConfigConstant;
|
|
|
+import com.yonge.toolset.base.util.ThreadPool;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -70,8 +76,54 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
|
|
|
@Override
|
|
|
public long insert(SysMusicCompareRecord bean) {
|
|
|
// 保存评测记录
|
|
|
+ long record = super.insert(bean);
|
|
|
|
|
|
- return super.insert(bean);
|
|
|
+ if (record > 0) {
|
|
|
+ ThreadPool.getExecutor().submit(() -> {
|
|
|
+ try {
|
|
|
+
|
|
|
+ // 统计单曲练习时长,频率;评测时长、频率
|
|
|
+ ClientEnum clientType = Optional.of(ClientEnum.valueOf(bean.getClientId().toUpperCase()))
|
|
|
+ .orElse(ClientEnum.STUDENT);
|
|
|
+
|
|
|
+ // 按练习、评测分别进行统计
|
|
|
+ Lists.newArrayList(FeatureType.values()).parallelStream().forEach(dataType -> {
|
|
|
+
|
|
|
+ MusicCompareWrapper.RecordQueryInfo queryInfo = MusicCompareWrapper.RecordQueryInfo.builder()
|
|
|
+ .clientId(bean.getClientId())
|
|
|
+ .musicSheetId(bean.getMusicSheetId())
|
|
|
+ .feature(dataType)
|
|
|
+ .build();
|
|
|
+
|
|
|
+ switch (dataType) {
|
|
|
+ case CLOUD_STUDY_TRAIN: // 练习
|
|
|
+ {
|
|
|
+ // 先统计练习曲目
|
|
|
+ List<StatGroupWrapper> groupWrappers = sysMusicCompareRecordDao.selectMusicCompareRecordStatInfo(queryInfo);
|
|
|
+
|
|
|
+ // 在按用户统计
|
|
|
+
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case CLOUD_STUDY_EVALUATION: // 评测
|
|
|
+ {
|
|
|
+ // 先统计评测曲目
|
|
|
+
|
|
|
+ // 在按用户统计
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("MusicCompareRecordStat userId={}, musicId={}", bean.getUserId(), bean.getMusicSheetId(), e);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ return record;
|
|
|
}
|
|
|
|
|
|
@Override
|