|
@@ -123,7 +123,6 @@ public class ActivityPlanStandardServiceImpl extends ServiceImpl<ActivityPlanSta
|
|
|
List<ActivityPlanRewardDto> activityPlanRewardDtos = activityPlanRewardService.queryActivityPlanReward(activityId);
|
|
|
Map<Long, List<UserFirstTime>> userMap = userFirstTimes.stream().collect(Collectors.groupingBy(UserFirstTime::getUserId));
|
|
|
|
|
|
-
|
|
|
if (ConditionMethodEnum.OR.equals(planStandard.getCalculationMethod())) {
|
|
|
for (Long userId : userIdSortMap.keySet()) {
|
|
|
Date createTime = userIdSortMap.get(userId);
|
|
@@ -131,7 +130,11 @@ public class ActivityPlanStandardServiceImpl extends ServiceImpl<ActivityPlanSta
|
|
|
sendUserReward(userId, detail.getId(), createTime, activityPlanRewardDtos);
|
|
|
}
|
|
|
} else {
|
|
|
- for (Long userId : userIdSortMap.keySet()) {
|
|
|
+ List<Long> mainList = new ArrayList<>();
|
|
|
+ mainList.addAll(userIdSortMap.keySet());
|
|
|
+ Collections.reverse(mainList);
|
|
|
+
|
|
|
+ for (Long userId : mainList) {
|
|
|
Date createTime = userIdSortMap.get(userId);
|
|
|
List<UserFirstTime> firstTimes = userMap.get(userId);
|
|
|
if (firstTimes.size() == timeTypes.size()) {
|
|
@@ -147,7 +150,6 @@ public class ActivityPlanStandardServiceImpl extends ServiceImpl<ActivityPlanSta
|
|
|
//给用户发奖
|
|
|
List<Long> successRewardIds = activityRewardService.sendReward(userId, activityId);
|
|
|
|
|
|
- List<ActivityUserReward> activityUserRewardList = new ArrayList<>();
|
|
|
for (ActivityPlanRewardDto dto : activityPlanRewardDtos) {
|
|
|
ActivityUserReward userReward = new ActivityUserReward();
|
|
|
userReward.setActivityId(activityId);
|
|
@@ -157,9 +159,15 @@ public class ActivityPlanStandardServiceImpl extends ServiceImpl<ActivityPlanSta
|
|
|
Optional<Long> first = successRewardIds.stream().filter(o -> o.equals(dto.getRewardId())).findFirst();
|
|
|
userReward.setGrantFlag(first.isPresent() ? 1 : 0);
|
|
|
userReward.setCreateTime(createTime);
|
|
|
- activityUserRewardList.add(userReward);
|
|
|
+
|
|
|
+ ActivityUserReward one = activityUserRewardService.getOne(Wrappers.<ActivityUserReward>lambdaQuery()
|
|
|
+ .eq(ActivityUserReward::getUserId, userId)
|
|
|
+ .eq(ActivityUserReward::getActivityId, activityId)
|
|
|
+ .eq(ActivityUserReward::getRewardId, dto.getRewardId()));
|
|
|
+ if(null == one){
|
|
|
+ activityUserRewardService.save(userReward);
|
|
|
+ }
|
|
|
}
|
|
|
- activityUserRewardService.saveBatch(activityUserRewardList);
|
|
|
|
|
|
//若没有报名则给用户报名
|
|
|
YesOrNoEnum yesOrNoEnum = activityRegistrationService.getRegistration(userId, activityId);
|