|
@@ -6,8 +6,10 @@ import com.google.common.collect.Lists;
|
|
|
import com.google.common.collect.Maps;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.ActivityUserRewardDao;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.search.ActivityUserRewardSearch;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluationRecord;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.ActivityReward;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationRecordService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.ActivityPlanService;
|
|
|
import com.yonge.cooleshow.biz.dal.service.ActivityRewardService;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.ActivityUserReward;
|
|
@@ -20,6 +22,7 @@ import com.yonge.cooleshow.common.enums.EStatus;
|
|
|
import com.yonge.cooleshow.common.enums.RewardTypeEnum;
|
|
|
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;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -28,6 +31,7 @@ import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Slf4j
|
|
@@ -36,7 +40,8 @@ public class ActivityUserRewardServiceImpl extends ServiceImpl<ActivityUserRewar
|
|
|
|
|
|
@Autowired
|
|
|
private ActivityPlanService activityPlanService;
|
|
|
-
|
|
|
+ @Autowired
|
|
|
+ private ActivityEvaluationRecordService activityEvaluationRecordService;
|
|
|
@Autowired
|
|
|
private ActivityRewardService activityRewardService;
|
|
|
|
|
@@ -61,6 +66,33 @@ public class ActivityUserRewardServiceImpl extends ServiceImpl<ActivityUserRewar
|
|
|
// 活动获奖用户信息
|
|
|
List<UserRewardVo> userRewards = baseMapper.selectPage(page, query);
|
|
|
|
|
|
+ if (CollectionUtils.isEmpty(userRewards)) {
|
|
|
+ // 直接返回数据,忽略后续流程
|
|
|
+ return page.setRecords(userRewards);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Long> userIds = userRewards.stream().map(UserRewardVo::getUserId).distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 评测活动,获奖记录时间
|
|
|
+ if (ActivityTypeEnum.EVALUATION == activityPlan.getActivityType()) {
|
|
|
+
|
|
|
+ Map<Long, ActivityEvaluationRecord> collect = activityEvaluationRecordService.queryActivityUserHighestRankingInfo(query.getActivityId(), userIds).stream()
|
|
|
+ .collect(Collectors.toMap(ActivityEvaluationRecord::getUserId, Function.identity(), (o, n) -> n));
|
|
|
+
|
|
|
+ ActivityEvaluationRecord record;
|
|
|
+ for (UserRewardVo item : userRewards) {
|
|
|
+
|
|
|
+ if (collect.containsKey(item.getUserId())) {
|
|
|
+
|
|
|
+ record = collect.get(item.getUserId());
|
|
|
+ // 重置当前获奖用户分数,评测次数,评测时间
|
|
|
+ item.score(record.getScore())
|
|
|
+ .times(record.getTimes())
|
|
|
+ .setEvaluationTime(record.getCreateTime());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 分享活动关联老师信息
|
|
|
if (ActivityTypeEnum.SHARE == activityPlan.getActivityType()) {
|
|
|
|
|
@@ -69,8 +101,6 @@ public class ActivityUserRewardServiceImpl extends ServiceImpl<ActivityUserRewar
|
|
|
// 关联老师ID
|
|
|
Map<Long, String> teacherIdMap = Maps.newConcurrentMap();
|
|
|
|
|
|
- List<Long> userIds = userRewards.stream().map(UserRewardVo::getUserId).distinct().collect(Collectors.toList());
|
|
|
-
|
|
|
Lists.partition(userIds, 30).parallelStream().forEach(item -> {
|
|
|
|
|
|
List<UserRewardVo> retlist = getBaseMapper().selectActivityShareTeacher(activityPlan.getId(), item);
|