Переглянути джерело

Merge branch 'dev_1_3_2_20220815' of http://git.dayaedu.com/yonge/cooleshow into dev_1_3_2_20220815

liujunchi 2 роки тому
батько
коміт
74163c6d3a

+ 25 - 8
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanStandardServiceImpl.java

@@ -4,10 +4,9 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
+import com.yonge.cooleshow.biz.dal.dto.ActivityPlanRewardDto;
 import com.yonge.cooleshow.biz.dal.dto.search.UserFirstTimeSearch;
-import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
-import com.yonge.cooleshow.biz.dal.entity.ActivityReward;
-import com.yonge.cooleshow.biz.dal.entity.UserFirstTime;
+import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.InOrOutEnum;
 import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
@@ -23,11 +22,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import com.yonge.cooleshow.biz.dal.entity.ActivityPlanStandard;
 import com.yonge.cooleshow.biz.dal.dao.ActivityPlanStandardDao;
 
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -44,6 +41,8 @@ public class ActivityPlanStandardServiceImpl extends ServiceImpl<ActivityPlanSta
     @Autowired
     private ActivityRewardService activityRewardService;
     @Autowired
+    private ActivityUserRewardService activityUserRewardService;
+    @Autowired
     private RedissonClient redissonClient;
 
     @Override
@@ -104,24 +103,42 @@ public class ActivityPlanStandardServiceImpl extends ServiceImpl<ActivityPlanSta
         if (CollectionUtils.isEmpty(userFirstTimes)) {
             return true;
         }
+        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 : userMap.keySet()) {
                 //给用户发奖
-                activityRewardService.sendReward(userId, detail.getId());
+                sendUserReward(userId, detail.getId(), activityPlanRewardDtos);
             }
         } else {
             for (Long userId : userMap.keySet()) {
                 List<UserFirstTime> firstTimes = userMap.get(userId);
                 if (firstTimes.size() == timeTypes.size()) {
                     //给用户发奖
-                    activityRewardService.sendReward(userId, detail.getId());
+                    sendUserReward(userId, detail.getId(), activityPlanRewardDtos);
                 }
             }
         }
         return true;
     }
 
+    private void sendUserReward(Long userId, Long activityId, List<ActivityPlanRewardDto> activityPlanRewardDtos) {
+        //给用户发奖
+        List<Long> successRewardIds = activityRewardService.sendReward(userId, activityId);
+        List<ActivityUserReward> activityUserRewardList = new ArrayList<>();
+        for (ActivityPlanRewardDto dto : activityPlanRewardDtos) {
+            ActivityUserReward userReward = new ActivityUserReward();
+            userReward.setActivityId(activityId);
+            userReward.setUserId(userId);
+            userReward.setRewardId(dto.getRewardId());
+
+            Optional<Long> first = successRewardIds.stream().filter(o -> o.equals(dto.getRewardId())).findFirst();
+            userReward.setGrantFlag(first.isPresent() ? 1 : 0);
+        }
+
+        activityUserRewardService.saveBatch(activityUserRewardList);
+    }
+
     @Override
     public void successActivity(Long activytyId) {
         //处理活动发奖