|
@@ -4,12 +4,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.req.OrderPayReq;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.search.OrderSearch;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.ActivityPlanReward;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.ActivityUserReward;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.GoodTypeEnum;
|
|
|
import com.yonge.cooleshow.biz.dal.enums.OrderTypeEnum;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.ActivityRewardService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.ActivityUserRewardService;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.UserOrderService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.*;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.UserOrderVo;
|
|
|
import org.apache.poi.ss.formula.functions.T;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -18,10 +17,11 @@ import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import com.yonge.cooleshow.biz.dal.entity.ActivityPlanEvaluation;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.ActivityPlanEvaluationDao;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.ActivityPlanEvaluationService;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.List;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
@Service
|
|
@@ -34,6 +34,8 @@ public class ActivityPlanEvaluationServiceImpl extends ServiceImpl<ActivityPlanE
|
|
|
private ActivityRewardService activityRewardService;
|
|
|
@Autowired
|
|
|
private ActivityUserRewardService activityUserRewardService;
|
|
|
+ @Autowired
|
|
|
+ private ActivityPlanRewardService activityPlanRewardService;
|
|
|
|
|
|
@Override
|
|
|
public boolean createOrUpdate(ActivityPlanDto activityPlan) {
|
|
@@ -73,14 +75,28 @@ public class ActivityPlanEvaluationServiceImpl extends ServiceImpl<ActivityPlanE
|
|
|
//关闭未付款订单
|
|
|
closeActivity(activityId);
|
|
|
|
|
|
- //活动发奖
|
|
|
+ //活动需要发放的奖品
|
|
|
List<ActivityUserReward> activityUserRewardList = baseMapper.getUserReward(activityId);
|
|
|
- activityUserRewardService.saveBatch(activityUserRewardList);
|
|
|
|
|
|
- //调用奖品发奖逻辑
|
|
|
- for (ActivityUserReward reward : activityUserRewardList) {
|
|
|
- //传入用户id和活动id
|
|
|
- activityRewardService.sendReward(reward.getUserId(),reward.getActivityId());
|
|
|
+ Set<Long> userIds = activityUserRewardList.stream().map(ActivityUserReward::getUserId).collect(Collectors.toSet());
|
|
|
+
|
|
|
+ for (Long userId : userIds) {
|
|
|
+ //给用户发放奖品 传入用户id和活动id
|
|
|
+ List<Long> successRewardIds = activityRewardService.sendReward(userId, activityId);
|
|
|
+
|
|
|
+ activityUserRewardList.stream().filter(o -> o.getUserId().equals(userId)).forEach(o -> {
|
|
|
+ for (Long successRewardId : successRewardIds) {
|
|
|
+ if(o.getRewardId().equals(successRewardId)){
|
|
|
+ o.setGrantFlag(1);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ o.setGrantFlag(0);
|
|
|
+ });
|
|
|
}
|
|
|
+ activityUserRewardService.saveBatch(activityUserRewardList);
|
|
|
+
|
|
|
+ //发完奖后将库存归还
|
|
|
+ activityPlanRewardService.recoveryReward(activityId);
|
|
|
}
|
|
|
}
|