|
@@ -2,27 +2,39 @@ package com.yonge.cooleshow.biz.dal.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
-import com.baomidou.mybatisplus.extension.api.R;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
|
+import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
import com.yonge.cooleshow.biz.dal.dao.ActivityPlanDao;
|
|
|
-import com.yonge.cooleshow.biz.dal.dao.ActivityPlanEvaluationDao;
|
|
|
-import com.yonge.cooleshow.biz.dal.dao.ActivityRewardChangeStockDao;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
|
|
|
+import com.yonge.cooleshow.biz.dal.dto.ActivityPlanPayDto;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.ActivityPlanRewardDto;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.SaveOrUpdateRewardDto;
|
|
|
-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.ActivityPlanEvaluation;
|
|
|
-import com.yonge.cooleshow.biz.dal.dto.ActivityPlanPayDto;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
|
|
|
import com.yonge.cooleshow.biz.dal.dto.search.ActivityPlanSearch;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.*;
|
|
|
-import com.yonge.cooleshow.biz.dal.enums.*;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.*;
|
|
|
-import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
|
|
|
-import com.yonge.cooleshow.biz.dal.vo.*;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluation;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluationRecord;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.ActivityPlanReward;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.ActivityRegistration;
|
|
|
+import com.yonge.cooleshow.biz.dal.entity.ActivityReward;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationRecordService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.ActivityPlanEvaluationService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.ActivityPlanRewardService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.ActivityPlanService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.ActivityPlanStandardService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.ActivityRegistrationService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.ActivityRewardService;
|
|
|
+import com.yonge.cooleshow.biz.dal.service.SysMessageService;
|
|
|
+import com.yonge.cooleshow.biz.dal.vo.ActivityMusicVo;
|
|
|
+import com.yonge.cooleshow.biz.dal.vo.ActivityPlanVo;
|
|
|
+import com.yonge.cooleshow.biz.dal.vo.MusicActivityVo;
|
|
|
+import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
|
|
|
import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
|
import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
|
|
@@ -32,24 +44,24 @@ import com.yonge.toolset.base.exception.BizException;
|
|
|
import com.yonge.toolset.base.util.StringUtil;
|
|
|
import com.yonge.toolset.payment.util.DistributedLock;
|
|
|
import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
|
|
|
-import org.redisson.api.RedissonClient;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.redisson.api.RedissonClient;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
-import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
|
|
|
-import com.yonge.cooleshow.biz.dal.service.ActivityPlanService;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.PostConstruct;
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
-
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
import java.util.Optional;
|
|
|
import java.util.function.Consumer;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -155,11 +167,16 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
|
|
|
throw new BizException("参数异常");
|
|
|
}
|
|
|
|
|
|
+ // 活动ID
|
|
|
+ long activityId;
|
|
|
if (null == activityPlan.getId()) {
|
|
|
activityPlan.setDraftFlag(1);
|
|
|
activityPlan.setCreateBy(activityPlan.getUserId());
|
|
|
activityPlan.setUpdateBy(activityPlan.getUserId());
|
|
|
save(activityPlan);
|
|
|
+
|
|
|
+ // 更新分享活动奖品信息
|
|
|
+ activityId = activityPlan.getId();
|
|
|
} else {
|
|
|
ActivityPlan old = getById(activityPlan.getId());
|
|
|
//启用状态,只能修改活动结束时间
|
|
@@ -173,6 +190,15 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
|
|
|
activityPlan.setUpdateBy(activityPlan.getUserId());
|
|
|
updateById(activityPlan);
|
|
|
}
|
|
|
+
|
|
|
+ // 更新活动ID
|
|
|
+ activityId = old.getId();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分享活动-奖品信息
|
|
|
+ if (CollectionUtils.isNotEmpty(activityPlan.getRewardItems())) {
|
|
|
+
|
|
|
+ insertActivityRewardSelectiveInfo(activityPlan, activityId);
|
|
|
}
|
|
|
|
|
|
//修改拓展信息
|
|
@@ -183,6 +209,55 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
|
|
|
return activityPlan;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 分享活动奖品信息
|
|
|
+ * @param activityPlan ActivityPlanDto
|
|
|
+ * @param activityId 活动ID
|
|
|
+ */
|
|
|
+ private void insertActivityRewardSelectiveInfo(ActivityPlanDto activityPlan, long activityId) {
|
|
|
+
|
|
|
+ for (ActivityPlanDto.RewardItem item : activityPlan.getRewardItems()) {
|
|
|
+ // 更新活动ID
|
|
|
+ item.setActivityId(activityId);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Long> deleteRewardIds = activityPlanRewardService.getBaseMapper().selectBatchIds(Lists.newArrayList(activityId)).stream()
|
|
|
+ .map(ActivityPlanReward::getRewardId).distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 删除原始活动奖品映射关系
|
|
|
+ activityPlanRewardService.getBaseMapper().delete(Wrappers.<ActivityPlanReward>lambdaQuery().eq(ActivityPlanReward::getActivityId, activityId));
|
|
|
+
|
|
|
+ // 删除原始活动奖品信息
|
|
|
+ if (CollectionUtils.isNotEmpty(deleteRewardIds)) {
|
|
|
+
|
|
|
+ activityRewardService.getBaseMapper().deleteBatchIds(deleteRewardIds);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 重新插入奖品信息
|
|
|
+ List<ActivityReward> rewards = JSON.parseArray(JSON.toJSONString(activityPlan.getRewardItems()), ActivityReward.class);
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(rewards)) {
|
|
|
+
|
|
|
+ activityRewardService.saveBatch(rewards, 30);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 重新插入活动奖品映射关系
|
|
|
+ List<ActivityPlanDto.ActivityRewardRecord> records = Lists.newArrayList();
|
|
|
+
|
|
|
+ for (ActivityReward item : rewards) {
|
|
|
+
|
|
|
+ records.add(ActivityPlanDto.ActivityRewardRecord.builder()
|
|
|
+ .activityId(activityId)
|
|
|
+ .rewardId(item.getId())
|
|
|
+ .rewardNum(1)
|
|
|
+ .build());
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(records)) {
|
|
|
+
|
|
|
+ activityPlanRewardService.saveBatch(JSON.parseArray(JSON.toJSONString(records), ActivityPlanReward.class), 30);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public Boolean updateActivityState(Long activityId, Integer activityState, Long id) {
|
|
|
ActivityPlanVo detail = detail(activityId);
|