Forráskód Böngészése

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

liujunchi 2 éve
szülő
commit
0fa5d890a8

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanEvaluationServiceImpl.java

@@ -64,6 +64,8 @@ public class ActivityPlanEvaluationServiceImpl extends ServiceImpl<ActivityPlanE
     @Override
     public void successActivity(Long activityId) {
         List<ActivityUserReward> activityUserRewardList = baseMapper.getUserReward(activityId);
+
+        //todo 发奖逻辑
         activityUserRewardService.saveBatch(activityUserRewardList);
     }
 }

+ 26 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanServiceImpl.java

@@ -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;
+    }
+
+
     /**
      * 参与活动消息
      */

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

@@ -99,8 +99,13 @@ public class ActivityRewardServiceImpl extends ServiceImpl<ActivityRewardDao, Ac
             activityReward.setCreateBy(user.getId());
             baseMapper.insert(activityReward);
         } else {
-            activityReward.setUpdateBy(user.getId());
-            baseMapper.updateById(activityReward);
+            DistributedLock.of(redissonClient)
+                    .runIfLockToFunction(CacheNameEnum.LOCK_REWARD_STOCK.getRedisKey(activityReward.getId())
+                            , (param) -> {
+                                param.setUpdateBy(user.getId());
+                                baseMapper.updateById(param);
+                                return true;
+                            }, activityReward, 10l);
         }
         return true;
     }
@@ -125,7 +130,7 @@ public class ActivityRewardServiceImpl extends ServiceImpl<ActivityRewardDao, Ac
     @Transactional(rollbackFor = Exception.class)
     public Boolean updateStock(ActivityRewardChangeStock changeStock) {
         return DistributedLock.of(redissonClient)
-                .runIfLockToFunction(CacheNameEnum.LOCK_EXECUTE_ORDER.getRedisKey(changeStock.getRewardId())
+                .runIfLockToFunction(CacheNameEnum.LOCK_REWARD_STOCK.getRedisKey(changeStock.getRewardId())
                         , (param) -> {
                             ActivityReward activityReward = getById(param.getRewardId());
                             Integer stock = (InOrOutEnum.IN.equals(param.getChangeType()))

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityPlanEvaluationMapper.xml

@@ -41,6 +41,6 @@
             left join activity_evaluation_record b
                 on a.activity_id_ = b.activity_id_ and a.evaluation_id_ = b.evaluation_id_
                 and a.score_ = b.score_ and a.create_time_ = b.create_time_
-            left join activity_reward c on a.activity_id_ = c.activity_id_
+            left join activity_plan_reward c on a.activity_id_ = c.activity_id_
     </select>
 </mapper>

+ 0 - 13
cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityRewardChangeStockMapper.xml

@@ -19,17 +19,4 @@
         , t.create_time_ as createTime
         , t.create_by_ as createBy
         </sql> 
-    
-    <select id="detail" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityRewardChangeStockVo">
-        SELECT
-            <include refid="baseColumns"/>
-        FROM activity_reward_change_stock t
-        where t.id_ = #{id}
-    </select>
-    
-    <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.ActivityRewardChangeStockVo">
-		SELECT         
-        	<include refid="baseColumns" />
-		FROM activity_reward_change_stock t
-	</select>
 </mapper>