|
@@ -2,6 +2,7 @@ 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.extension.service.impl.ServiceImpl;
|
|
|
import com.yonge.cooleshow.auth.api.entity.SysUser;
|
|
|
import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
|
|
@@ -22,10 +23,13 @@ import com.yonge.cooleshow.biz.dal.vo.*;
|
|
|
import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
|
|
|
import com.yonge.cooleshow.common.entity.HttpResponseResult;
|
|
|
import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
|
|
|
+import com.yonge.cooleshow.common.enums.CacheNameEnum;
|
|
|
import com.yonge.cooleshow.common.enums.RegistrationMethodEnum;
|
|
|
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.slf4j.Logger;
|
|
@@ -77,12 +81,16 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
|
|
|
@Autowired
|
|
|
private SysMessageService sysMessageService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RedissonClient redissonClient;
|
|
|
+
|
|
|
//保存/更新拓展字段
|
|
|
private static final Map<ActivityTypeEnum, Consumer<ActivityPlanDto>> saveOrUpdateExpand = new HashMap<>();
|
|
|
//取消活动
|
|
|
private static final Map<ActivityTypeEnum, Consumer<Long>> cancelActivity = new HashMap<>();
|
|
|
//活动完成(结束)
|
|
|
private static final Map<ActivityTypeEnum, Consumer<Long>> successActivity = new HashMap<>();
|
|
|
+
|
|
|
@PostConstruct
|
|
|
private void init() {
|
|
|
/**********保存/更新拓展字段******************/
|
|
@@ -129,10 +137,10 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
|
|
|
throw new BizException("参数异常");
|
|
|
}
|
|
|
|
|
|
- if(ActivityTypeEnum.EVALUATION.equals(activityPlan.getActivityType())){
|
|
|
+ if (ActivityTypeEnum.EVALUATION.equals(activityPlan.getActivityType())) {
|
|
|
activityPlan.setActivityClient(ClientEnum.STUDENT);
|
|
|
- }else{
|
|
|
- if(null == activityPlan.getActivityClient()){
|
|
|
+ } else {
|
|
|
+ if (null == activityPlan.getActivityClient()) {
|
|
|
throw new BizException("活动客户端不能为空");
|
|
|
}
|
|
|
}
|
|
@@ -400,17 +408,28 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
|
|
|
if (!Objects.isNull(afterFunction)) {
|
|
|
afterFunction.accept(activityPlan.getId());
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean saveOrUpdateReward(List<ActivityPlanRewardDto> updateRewardDtoList) {
|
|
|
- return null;
|
|
|
+ for (ActivityPlanRewardDto rewardDto : updateRewardDtoList) {
|
|
|
+ DistributedLock.of(redissonClient)
|
|
|
+ .runIfLockToFunction(CacheNameEnum.LOCK_ACTIVITY_REWARD_STOCK.getRedisKey(rewardDto.getId())
|
|
|
+ , this::dosaveOrUpdateReward, rewardDto, 10l);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
+ private Boolean dosaveOrUpdateReward(ActivityPlanRewardDto rewardDto) {
|
|
|
+ //奖品
|
|
|
+ ActivityRewardVo detail = activityRewardService.detail(rewardDto.getRewardId());
|
|
|
+
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 参与活动消息
|
|
|
*/
|