Kaynağa Gözat

调整评测奖品库存流程

Eric 2 yıl önce
ebeveyn
işleme
ad8a8a951a

+ 35 - 12
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityEvaluationServiceImpl.java

@@ -1,17 +1,5 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -25,9 +13,11 @@ import com.yonge.cooleshow.biz.dal.dto.search.ActivityEvaluationSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicSheetSearch;
 import com.yonge.cooleshow.biz.dal.entity.ActivityEvaluation;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlan;
+import com.yonge.cooleshow.biz.dal.entity.ActivityPlanReward;
 import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationRecordService;
 import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationService;
+import com.yonge.cooleshow.biz.dal.service.ActivityPlanRewardService;
 import com.yonge.cooleshow.biz.dal.service.ActivityPlanService;
 import com.yonge.cooleshow.biz.dal.service.SubjectService;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
@@ -40,6 +30,18 @@ import com.yonge.cooleshow.common.enums.ActivityResourceEnum;
 import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
 import com.yonge.cooleshow.common.enums.EStatus;
 import com.yonge.toolset.base.exception.BizException;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.stream.Collectors;
 
 @Service
 public class ActivityEvaluationServiceImpl extends ServiceImpl<ActivityEvaluationDao, ActivityEvaluation> implements ActivityEvaluationService {
@@ -53,6 +55,12 @@ public class ActivityEvaluationServiceImpl extends ServiceImpl<ActivityEvaluatio
     @Autowired
     private ActivityEvaluationRecordService activityEvaluationRecordService;
 
+    @Autowired
+    private ActivityEvaluationService activityEvaluationService;
+
+    @Autowired
+    private ActivityPlanRewardService activityPlanRewardService;
+
     @Override
     public ActivityEvaluationVo detail(Long id) {
         return baseMapper.detail(id);
@@ -68,6 +76,7 @@ public class ActivityEvaluationServiceImpl extends ServiceImpl<ActivityEvaluatio
         return baseMapper.selectAll(query);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public Boolean addBatch(ActivityEvaluationDto param, SysUser user) {
 
@@ -149,6 +158,20 @@ public class ActivityEvaluationServiceImpl extends ServiceImpl<ActivityEvaluatio
                     .eq(ActivityPlan::getId,param.getActivityId())
             );
         }
+
+        // 更新评测活动奖品数
+        if (ActivityTypeEnum.EVALUATION == activity.getActivityType()) {
+
+            // 当前活动曲目数
+            int ret = activityEvaluationService.count(Wrappers.<ActivityEvaluation>lambdaQuery()
+                    .eq(ActivityEvaluation::getActivityId, activity.getId())
+                    .eq(ActivityEvaluation::getResourceType, ActivityResourceEnum.MUSIC_SHEET));
+
+            activityPlanRewardService.update(Wrappers.<ActivityPlanReward>lambdaUpdate()
+                            .set(ActivityPlanReward::getRewardNum, ret)
+                    .eq(ActivityPlanReward::getActivityId, activity.getId()));
+        }
+
         return true;
     }
 

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

@@ -85,6 +85,9 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
     private ActivityPlanRewardService activityPlanRewardService;
 
     @Autowired
+    private ActivityPlanDao activityPlanDao;
+
+    @Autowired
     private ActivityRewardService activityRewardService;
 
     @Resource
@@ -621,9 +624,42 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
             updateRewardDtoList = new ArrayList<>();
         }
 
+        // 活动信息
+        ActivityPlan activityPlan = activityPlanDao.selectById(activityId);
+        if (Objects.isNull(activityPlan)) {
+            throw new BizException("无效的活动ID");
+        }
+
+        int ret = 0;
+        if (ActivityTypeEnum.EVALUATION == activityPlan.getActivityType()) {
+
+            // 当前活动曲目数
+            ret = activityEvaluationService.count(Wrappers.<ActivityEvaluation>lambdaQuery()
+                    .eq(ActivityEvaluation::getActivityId, activityId)
+                    .eq(ActivityEvaluation::getResourceType, ActivityResourceEnum.MUSIC_SHEET));
+        }
+
+        ActivityPlanReward planReward;
+        for (ActivityPlanRewardDto item : updateRewardDtoList) {
+            // activityPlanRewardService.saveOrUpdateReward(item);
 
-        for (ActivityPlanRewardDto rewardDto : updateRewardDtoList) {
-            activityPlanRewardService.saveOrUpdateReward(rewardDto);
+            // 评测活动
+            if (ActivityTypeEnum.EVALUATION == activityPlan.getActivityType()) {
+                item.setRewardNum(ret);
+            }
+            planReward = activityPlanRewardService.detailByActivityIdAndRewardId(item.getActivityId(), item.getRewardId());
+
+            if (Objects.isNull(planReward)) {
+
+                // 新增
+                activityPlanRewardService.save(item);
+            } else {
+
+                // 更新
+                item.setId(planReward.getId());
+
+                activityPlanRewardService.updateById(item);
+            }
         }
 
         //还有删除的

+ 2 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityPlanMapper.xml

@@ -43,6 +43,8 @@
         , t.registration_price_ as registrationPrice
         , t.share_rate_ as shareRate
         , t.share_type_ as shareType
+        , t.ranking_ as ranking
+        , t.ranking_rule_ as rankingRule
         , t.draft_flag_ as draftFlag
         , if(t.activity_state_ = 1, 1, 0) as activityState
         , t.create_time_ as createTime

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

@@ -135,7 +135,7 @@
         SELECT t1.reward_id_ AS id, COUNT(DISTINCT t1.id_) AS total FROM activity_plan_reward t1
         <where>
             <if test="rewardIds != null">
-                AND t1.coupon_id_ IN (<foreach collection="rewardIds" separator="," item="item">#{item}</foreach>)
+                AND t1.reward_id_ IN (<foreach collection="rewardIds" separator="," item="item">#{item}</foreach>)
             </if>
         </where>
         GROUP BY t1.reward_id_