|
@@ -5,12 +5,16 @@ import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.ActivityPlanRewardDto;
|
|
|
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.ActivityEvaluation;
|
|
|
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.*;
|
|
|
+import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
|
|
|
+import com.yonge.cooleshow.biz.dal.vo.ActivityRankingVo;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.UserOrderVo;
|
|
|
+import com.yonge.cooleshow.common.enums.ActivityResourceEnum;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.poi.ss.formula.functions.T;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -21,10 +25,7 @@ import com.yonge.cooleshow.biz.dal.entity.ActivityPlanEvaluation;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.ActivityPlanEvaluationDao;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@@ -41,6 +42,15 @@ public class ActivityPlanEvaluationServiceImpl extends ServiceImpl<ActivityPlanE
|
|
|
@Autowired
|
|
|
private ActivityPlanRewardService activityPlanRewardService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ActivityPlanService activityPlanService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ActivityEvaluationRecordService activityEvaluationRecordService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ActivityEvaluationService activityEvaluationService;
|
|
|
+
|
|
|
@Override
|
|
|
public boolean createOrUpdate(ActivityPlanDto activityPlan) {
|
|
|
ActivityPlanEvaluation planExpand = activityPlan.getPlanEvaluation();
|
|
@@ -58,11 +68,11 @@ public class ActivityPlanEvaluationServiceImpl extends ServiceImpl<ActivityPlanE
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void closeActivity(Long activytyId) {
|
|
|
+ public void closeActivity(Long activityId) {
|
|
|
OrderSearch query = new OrderSearch();
|
|
|
query.setOrderType(OrderTypeEnum.ACTI_REGIST.getCode());
|
|
|
query.setGoodType(GoodTypeEnum.ACTI_REGIST.getCode());
|
|
|
- query.setBizId(activytyId);
|
|
|
+ query.setBizId(activityId);
|
|
|
List<UserOrderVo> userOrderVos = userOrderService.selectAllList(query);
|
|
|
for (UserOrderVo userOrderVo : userOrderVos) {
|
|
|
OrderPayReq payReq = new OrderPayReq();
|
|
@@ -79,31 +89,59 @@ public class ActivityPlanEvaluationServiceImpl extends ServiceImpl<ActivityPlanE
|
|
|
//关闭未付款订单
|
|
|
closeActivity(activityId);
|
|
|
|
|
|
+ ActivityPlanVo detail = activityPlanService.detail(activityId);
|
|
|
+ List<ActivityUserReward> activityUserRewardList = new ArrayList<>();
|
|
|
+
|
|
|
+ List<ActivityEvaluation> activityEvaluationList = activityEvaluationService.lambdaQuery()
|
|
|
+ .eq(ActivityEvaluation::getActivityId, activityId)
|
|
|
+ .list();
|
|
|
+
|
|
|
//活动需要发放的奖品
|
|
|
- List<ActivityPlanRewardDto> activityPlanRewardDtos = activityPlanRewardService.queryActivityPlanReward(
|
|
|
- activityId);
|
|
|
- Map<String, List<Long>> collect = activityPlanRewardDtos.stream()
|
|
|
- .collect(Collectors.groupingBy(ActivityPlanReward::getGroup,));
|
|
|
-
|
|
|
- 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;
|
|
|
+ Map<String, List<ActivityPlanRewardDto>> rewardMap = detail.getActivityRewardList().stream()
|
|
|
+ .collect(Collectors.groupingBy(
|
|
|
+ ActivityPlanReward::getGroup));
|
|
|
+ for (ActivityEvaluation activityEvaluation : activityEvaluationList) {
|
|
|
+
|
|
|
+ List<ActivityRankingVo> activityRankingVos = activityEvaluationRecordService.queryRankingList(activityId,
|
|
|
+ activityEvaluation.getId(),detail.getRanking());
|
|
|
+ for (int i = 0; i < activityRankingVos.size(); i++) {
|
|
|
+
|
|
|
+ ActivityRankingVo activityRankingVo = activityRankingVos.get(i);
|
|
|
+
|
|
|
+ List<ActivityPlanRewardDto> activityPlanRewardDtos = rewardMap.get(i + 1 + "");
|
|
|
+ if (CollectionUtils.isEmpty(activityPlanRewardDtos)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Long> rewardIdList = activityPlanRewardDtos.stream()
|
|
|
+ .map(activityPlanRewardDto -> activityPlanRewardDto.getActivityReward().getId())
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ //给用户发放奖品 传入用户id和活动id
|
|
|
+ List<Long> successRewardIds = activityRewardService.sendReward(activityRankingVo.getUserId(), activityId,rewardIdList);
|
|
|
+
|
|
|
+ // 保存奖品发放记录
|
|
|
+ for (Long rewardId : rewardIdList) {
|
|
|
+ ActivityUserReward activityUserReward = new ActivityUserReward();
|
|
|
+ activityUserReward.setActivityId(activityId);
|
|
|
+ activityUserReward.setBizId(activityEvaluation.getId());
|
|
|
+ activityUserReward.setUserId(activityRankingVo.getUserId());
|
|
|
+ activityUserReward.setRankingRule(detail.getRankingRule());
|
|
|
+ activityUserReward.setRanking(i+1);
|
|
|
+ activityUserReward.setCreateTime(new Date());
|
|
|
+ activityUserReward.setUpdateTime(new Date());
|
|
|
+ activityUserReward.setRewardId(rewardId);
|
|
|
+ if (successRewardIds.contains(rewardId)) {
|
|
|
+ activityUserReward.setGrantFlag(1);
|
|
|
}
|
|
|
+ activityUserRewardList.add(activityUserReward);
|
|
|
}
|
|
|
- o.setGrantFlag(0);
|
|
|
- });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!CollectionUtils.isEmpty(activityUserRewardList)) {
|
|
|
+ activityUserRewardService.saveBatch(activityUserRewardList);
|
|
|
}
|
|
|
- activityUserRewardService.saveBatch(activityUserRewardList);
|
|
|
-
|
|
|
//发完奖后将库存归还
|
|
|
- activityPlanRewardService.recoveryReward(activityId);
|
|
|
+ // activityPlanRewardService.recoveryReward(activityId);
|
|
|
}
|
|
|
}
|