|
@@ -15,6 +15,7 @@ import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluation;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.ActivityPlanReward;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.Subject;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.activity.ActivityRankingMethodEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationRecordService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.ActivityPlanRewardService;
|
|
@@ -30,6 +31,7 @@ import com.yonge.cooleshow.common.enums.ActivityResourceEnum;
|
|
|
import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
|
|
|
import com.yonge.cooleshow.common.enums.EStatus;
|
|
|
import com.yonge.toolset.base.exception.BizException;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -37,6 +39,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.LinkedHashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
@@ -68,7 +71,28 @@ public class ActivityEvaluationServiceImpl extends ServiceImpl<ActivityEvaluatio
|
|
|
|
|
|
@Override
|
|
|
public IPage<ActivityEvaluationVo> selectPage(IPage<ActivityEvaluationVo> page, ActivityEvaluationSearch query) {
|
|
|
- return page.setRecords(baseMapper.selectPage(page, query));
|
|
|
+
|
|
|
+ ActivityPlan activity = activityPlanService.getById(query.getActivityId());
|
|
|
+ if (Objects.isNull(activity)) {
|
|
|
+ throw new BizException("无效的活动ID");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<ActivityEvaluationVo> evaluationInfos = baseMapper.selectPage(page, query);
|
|
|
+ // 排序方式
|
|
|
+ if (ActivityTypeEnum.EVALUATION == activity.getActivityType()
|
|
|
+ && ActivityRankingMethodEnum.TOTAL_SCORE == activity.getRankingMethod()) {
|
|
|
+
|
|
|
+ // 按声部聚合数据返回
|
|
|
+ evaluationInfos = evaluationInfos.stream()
|
|
|
+ .collect(Collectors.groupingBy(x -> Long.parseLong(x.getSubjectId().split(",")[0])))
|
|
|
+ .entrySet().stream()
|
|
|
+ .sorted(Map.Entry.comparingByKey())
|
|
|
+ .flatMap(x -> x.getValue().stream())
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return page.setRecords(evaluationInfos);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -146,8 +170,9 @@ public class ActivityEvaluationServiceImpl extends ServiceImpl<ActivityEvaluatio
|
|
|
activityContentIds.removeAll(oldMusicSheetIds);
|
|
|
|
|
|
if ((oldMusicSheetIds.size() + activityContentIds.size()) > 10
|
|
|
+ && activity.getRankingMethod() == ActivityRankingMethodEnum.MUSIC_RANKING
|
|
|
&& activityType == ActivityTypeEnum.EVALUATION) {
|
|
|
-
|
|
|
+ // 评测活动、曲目排名需要限制曲目数量
|
|
|
throw new BizException("添加的曲目不能多余10首");
|
|
|
}
|
|
|
if (CollectionUtils.isNotEmpty(activityContentIds)) {
|