瀏覽代碼

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

liujunchi 3 年之前
父節點
當前提交
a1779df6c3
共有 18 個文件被更改,包括 173 次插入98 次删除
  1. 7 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/task/TaskController.java
  2. 0 6
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ActivityPlanDao.java
  3. 0 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlanEvaluation.java
  4. 1 12
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlanStandard.java
  5. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityUserReward.java
  6. 2 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanEvaluationService.java
  7. 7 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanRewardService.java
  8. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanService.java
  9. 3 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanStandardService.java
  10. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityRewardService.java
  11. 32 11
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanEvaluationServiceImpl.java
  12. 16 9
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanRewardServiceImpl.java
  13. 66 43
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanServiceImpl.java
  14. 7 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanStandardServiceImpl.java
  15. 2 4
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityPlanEvaluationMapper.xml
  16. 0 4
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityPlanMapper.xml
  17. 5 3
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityPlanStandardMapper.xml
  18. 2 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityUserRewardMapper.xml

+ 7 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/task/TaskController.java

@@ -94,4 +94,11 @@ public class TaskController extends BaseController {
         activityPlanService.activityState();
         return HttpResponseResult.succeed();
     }
+
+    //活动中定时轮询
+    @PostMapping(value = "/activityIng")
+    public HttpResponseResult<Object> activityIng() {
+        activityPlanService.activityIng();
+        return HttpResponseResult.succeed();
+    }
 }

+ 0 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/ActivityPlanDao.java

@@ -59,11 +59,5 @@ public interface ActivityPlanDao extends BaseMapper<ActivityPlan> {
 	 */
     List<ActivityPlan> activityState();
 
-	/**
-	 * 需要发奖的活动
-	 * @return
-	 */
-    List<ActivityPlan> activityReward();
-
 
 }

+ 0 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlanEvaluation.java

@@ -1,6 +1,5 @@
 package com.yonge.cooleshow.biz.dal.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 12
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityPlanStandard.java

@@ -20,11 +20,8 @@ import org.springframework.format.annotation.DateTimeFormat;
 public class ActivityPlanStandard implements Serializable {
 	private static final long serialVersionUID = 1L;
     @ApiModelProperty("主键 ")
-    @TableId(value = "id_", type = IdType.AUTO)
+    @TableId(value = "id_")
     private Long id;
-    @ApiModelProperty("活动id ")
-	@TableField(value = "activity_id_")
-    private Long activityId;
     @ApiModelProperty("达标条件:ENTRY 达人认证 LIVEING 开通直播 PRACTICE 首次完成陪练课设置 LIVE 首次创建直播课 VIDEO 首次创建视频课 BIND_STUDENT 学员绑定 ")
 	@TableField(value = "condition_")
     private String condition;
@@ -55,15 +52,7 @@ public class ActivityPlanStandard implements Serializable {
     public void setId(Long id) {
         this.id = id;
     }
-    
-	public Long getActivityId() {
-        return activityId;
-    }
 
-    public void setActivityId(Long activityId) {
-        this.activityId = activityId;
-    }
-    
 	public String getCondition() {
         return condition;
     }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/ActivityUserReward.java

@@ -34,6 +34,9 @@ public class ActivityUserReward implements Serializable {
     @ApiModelProperty("奖品id ")
     @TableField(value = "reward_id_")
     private Long rewardId;
+    @ApiModelProperty("是否成功发放 0 否 1 是")
+    @TableField(value = "grant_flag_")
+    private Integer grantFlag;
     @ApiModelProperty("是否领取奖品 0 否 1 是 ")
     @TableField(value = "receive_flag_")
     private Integer receiveFlag;
@@ -88,6 +91,14 @@ public class ActivityUserReward implements Serializable {
         this.rewardId = rewardId;
     }
 
+    public Integer getGrantFlag() {
+        return grantFlag;
+    }
+
+    public void setGrantFlag(Integer grantFlag) {
+        this.grantFlag = grantFlag;
+    }
+
     public Integer getReceiveFlag() {
         return receiveFlag;
     }

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanEvaluationService.java

@@ -13,7 +13,8 @@ public interface ActivityPlanEvaluationService extends IService<ActivityPlanEval
 
 	boolean createOrUpdate(ActivityPlanDto entity);
 
-	void cancelActivity(Long activityId);
+	void closeActivity(Long activytyId);
 
 	void successActivity(Long activityId);
+
 }

+ 7 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanRewardService.java

@@ -58,7 +58,13 @@ public interface ActivityPlanRewardService extends IService<ActivityPlanReward>
      */
     Boolean saveOrUpdateReward(ActivityPlanRewardDto rewardDto);
     /**
-     * 回收活动奖品数
+     * 回收活动奖品
+     * @param activityId
+     * @return
+     */
+    Boolean recoveryReward(Long activityId);
+    /**
+     * 回收活动奖品
      * @param reward
      * @return
      */

+ 6 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanService.java

@@ -96,6 +96,10 @@ public interface ActivityPlanService extends IService<ActivityPlan>  {
 	 * 定时变更活动状态
 	 */
     void activityState();
+	/**
+	 * 活动中定时轮询
+	 */
+	void activityIng();
 
 	/**
 	 * 变更活动奖品
@@ -103,4 +107,6 @@ public interface ActivityPlanService extends IService<ActivityPlan>  {
 	 * @return
 	 */
     Boolean saveOrUpdateReward(List<ActivityPlanRewardDto> updateRewardDtoList);
+
+
 }

+ 3 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanStandardService.java

@@ -13,5 +13,7 @@ public interface ActivityPlanStandardService extends IService<ActivityPlanStanda
 
     boolean createOrUpdate(ActivityPlanDto entity);
 
-    void cancelActivity(Long aLong);
+    void activityIng(Object param);
+
+    void successActivity(Long activytyId);
 }

+ 6 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityRewardService.java

@@ -81,5 +81,11 @@ public interface ActivityRewardService extends IService<ActivityReward>  {
 	 */
 	IPage<ActivityRewardChangeStockVo> selectChangeStockPage(IPage<ActivityRewardChangeStockVo> page, ActivityRewardChangeStockSearch query);
 
+	/**
+	 * 发放获奖奖品
+	 * @param userId 用户id
+	 * @param activityId 活动id
+	 * @return 返回发放成功奖品id
+	 */
 	List<Long> sendReward(Long userId, Long activityId);
 }

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

@@ -4,12 +4,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanDto;
 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.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.ActivityRewardService;
-import com.yonge.cooleshow.biz.dal.service.ActivityUserRewardService;
-import com.yonge.cooleshow.biz.dal.service.UserOrderService;
+import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderVo;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,10 +17,11 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import com.yonge.cooleshow.biz.dal.entity.ActivityPlanEvaluation;
 import com.yonge.cooleshow.biz.dal.dao.ActivityPlanEvaluationDao;
-import com.yonge.cooleshow.biz.dal.service.ActivityPlanEvaluationService;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 
 @Service
@@ -34,11 +34,14 @@ public class ActivityPlanEvaluationServiceImpl extends ServiceImpl<ActivityPlanE
     private ActivityRewardService activityRewardService;
     @Autowired
     private ActivityUserRewardService activityUserRewardService;
+    @Autowired
+    private ActivityPlanRewardService activityPlanRewardService;
 
     @Override
     public boolean createOrUpdate(ActivityPlanDto activityPlan) {
         ActivityPlanEvaluation planExpand = activityPlan.getPlanEvaluation();
-        if (null == activityPlan.getId()) {
+
+        if (null == planExpand.getId()) {
             planExpand.setId(activityPlan.getId());
             planExpand.setCreateBy(activityPlan.getUserId());
             planExpand.setUpdateBy(activityPlan.getUserId());
@@ -51,7 +54,7 @@ public class ActivityPlanEvaluationServiceImpl extends ServiceImpl<ActivityPlanE
     }
 
     @Override
-    public void cancelActivity(Long activytyId) {
+    public void closeActivity(Long activytyId) {
         OrderSearch query = new OrderSearch();
         query.setOrderType(OrderTypeEnum.ACTI_REGIST.getCode());
         query.setGoodType(GoodTypeEnum.ACTI_REGIST.getCode());
@@ -69,13 +72,31 @@ public class ActivityPlanEvaluationServiceImpl extends ServiceImpl<ActivityPlanE
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void successActivity(Long activityId) {
+        //关闭未付款订单
+        closeActivity(activityId);
+
+        //活动需要发放的奖品
         List<ActivityUserReward> activityUserRewardList = baseMapper.getUserReward(activityId);
-        activityUserRewardService.saveBatch(activityUserRewardList);
 
-        //调用奖品发奖逻辑
-        for (ActivityUserReward reward : activityUserRewardList) {
-            //传入用户id和活动id
-            activityRewardService.sendReward(reward.getUserId(),reward.getActivityId());
+        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;
+                    }
+                }
+                o.setGrantFlag(0);
+            });
         }
+        activityUserRewardService.saveBatch(activityUserRewardList);
+
+        //发完奖后将库存归还
+        activityPlanRewardService.recoveryReward(activityId);
     }
 }

+ 16 - 9
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanRewardServiceImpl.java

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dao.ActivityRewardChangeStockDao;
 import com.yonge.cooleshow.biz.dal.dto.ActivityPlanRewardDto;
@@ -45,14 +46,6 @@ public class ActivityPlanRewardServiceImpl extends ServiceImpl<ActivityPlanRewar
     @Resource
     private ActivityRewardChangeStockDao changeStockDao;
 
-    //奖品发放
-    public static final Map<RewardTypeEnum, Consumer<Long>> rewardGrant = new HashMap<>();
-
-    @PostConstruct
-    private void init() {
-
-    }
-
     @Override
     public ActivityPlanRewardVo detail(Long id) {
         return baseMapper.detail(id);
@@ -140,6 +133,17 @@ public class ActivityPlanRewardServiceImpl extends ServiceImpl<ActivityPlanRewar
     }
 
     @Override
+    public Boolean recoveryReward(Long activityId) {
+        List<ActivityPlanReward> list = list(Wrappers.<ActivityPlanReward>lambdaQuery()
+                .eq(ActivityPlanReward::getActivityId, activityId)
+                .gt(ActivityPlanReward::getRewardNum, 0));
+        for (ActivityPlanReward activityPlanReward : list) {
+            recoveryReward(activityPlanReward);
+        }
+        return true;
+    }
+
+    @Override
     public Boolean recoveryReward(ActivityPlanReward reward) {
         DistributedLock.of(redissonClient)
                 .runIfLockToFunction(CacheNameEnum.LOCK_ACTIVITY_REWARD_STOCK.getRedisKey(reward.getId())
@@ -162,6 +166,9 @@ public class ActivityPlanRewardServiceImpl extends ServiceImpl<ActivityPlanRewar
 
                                                     detail.setStock(detail.getStock() + old.getRewardNum());
                                                     activityRewardService.updateById(detail);
+
+                                                    old.setRewardNum(0);
+                                                    updateById(old);
                                                 }
                                                 return true;
                                             }, out, 10l);
@@ -172,7 +179,7 @@ public class ActivityPlanRewardServiceImpl extends ServiceImpl<ActivityPlanRewar
 
     @Override
     public int reduceStock(Long activityId, Long rewardId) {
-        return baseMapper.reduceStock(activityId,rewardId);
+        return baseMapper.reduceStock(activityId, rewardId);
     }
 
 }

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

@@ -83,17 +83,17 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
     @Autowired
     private SysMessageService sysMessageService;
 
-    @Resource
-    private ActivityRewardChangeStockDao changeStockDao;
-
-    @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>> startActivity = new HashMap<>();
+    //开启活动(开启活动按钮)
+    private static final Map<ActivityTypeEnum, Consumer<Long>> openActivity = new HashMap<>();
+    //关闭活动(关闭活动按钮)
+    private static final Map<ActivityTypeEnum, Consumer<Long>> closeActivity = new HashMap<>();
+    //活动中定时轮询
+    private static final Map<ActivityTypeEnum, Consumer<Object>> activityIng = new HashMap<>();
+    //活动完成(活动截止时间到触发)
     private static final Map<ActivityTypeEnum, Consumer<Long>> successActivity = new HashMap<>();
 
     @PostConstruct
@@ -103,13 +103,21 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
         saveOrUpdateExpand.put(ActivityTypeEnum.EVALUATION, activityPlanEvaluationService::createOrUpdate);
         //达标赠送活动
         saveOrUpdateExpand.put(ActivityTypeEnum.STANDARD_GIFT, activityPlanStandardService::createOrUpdate);
+        /**********开始活动(活动刚开始触发)******************/
+
+        /**********开启活动(开启活动按钮)******************/
 
-        /**********取消活动******************/
+        /**********关闭活动(关闭活动按钮)******************/
         //评测活动
-        cancelActivity.put(ActivityTypeEnum.EVALUATION, activityPlanEvaluationService::cancelActivity);
-        /**********活动完成(结束)******************/
+        closeActivity.put(ActivityTypeEnum.EVALUATION, activityPlanEvaluationService::closeActivity);
+        /**********活动中定时轮询******************/
+        //达标赠送活动
+        activityIng.put(ActivityTypeEnum.STANDARD_GIFT, activityPlanStandardService::activityIng);
+        /**********活动完成(活动截止时间到触发)******************/
         //评测活动
         successActivity.put(ActivityTypeEnum.EVALUATION, activityPlanEvaluationService::successActivity);
+        //达标赠送活动
+        successActivity.put(ActivityTypeEnum.STANDARD_GIFT, activityPlanStandardService::successActivity);
     }
 
     @Override
@@ -142,14 +150,6 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
             throw new BizException("参数异常");
         }
 
-        if (ActivityTypeEnum.EVALUATION.equals(activityPlan.getActivityType())) {
-            activityPlan.setActivityClient(ClientEnum.STUDENT);
-        } else {
-            if (null == activityPlan.getActivityClient()) {
-                throw new BizException("活动客户端不能为空");
-            }
-        }
-
         if (null == activityPlan.getId()) {
             activityPlan.setDraftFlag(1);
             activityPlan.setCreateBy(activityPlan.getUserId());
@@ -193,10 +193,15 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
                 activityPlan.setActivityStart(now);
             }
             activityPlan.setActivityState(activityState);
+            //开启活动
+            Consumer<Long> afterFunction = openActivity.get(activityPlan.getActivityType());
+            if (!Objects.isNull(afterFunction)) {
+                afterFunction.accept(activityPlan.getId());
+            }
         } else {
             activityPlan.setActivityState(2);
-            //取消活动
-            Consumer<Long> afterFunction = cancelActivity.get(activityPlan.getActivityType());
+            //关闭活动
+            Consumer<Long> afterFunction = closeActivity.get(activityPlan.getActivityType());
             if (!Objects.isNull(afterFunction)) {
                 afterFunction.accept(activityPlan.getId());
             }
@@ -225,8 +230,9 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
             return false;
         }
 
-        if(!ActivityTypeEnum.STANDARD_GIFT.equals(activityPlan.getActivityType())){
-            if(null == activityPlan.getRegistrationMethod()){
+        if (!ActivityTypeEnum.STANDARD_GIFT.equals(activityPlan.getActivityType())) {
+
+            if (null == activityPlan.getRegistrationMethod()) {
                 throw new BizException("报名缴费方式不能为空");
             }
             if (RegistrationMethodEnum.CHARGE.equals(activityPlan.getRegistrationMethod())
@@ -237,25 +243,42 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
                     && (null == activityPlan.getShareRate())) {
                 throw new BizException("活动收费时,分润比例不能为空");
             }
-            if(StringUtil.isEmpty(activityPlan.getSubjectUrl())){
+            if (StringUtil.isEmpty(activityPlan.getSubjectUrl())) {
                 throw new BizException("主题图片不能为空");
             }
-            if(StringUtil.isEmpty(activityPlan.getBackgroundUrl())){
+            if (StringUtil.isEmpty(activityPlan.getBackgroundUrl())) {
                 throw new BizException("平铺背景不能为空");
             }
-            if(StringUtil.isEmpty(activityPlan.getShareUrl())){
+            if (StringUtil.isEmpty(activityPlan.getShareUrl())) {
                 throw new BizException("分享图片不能为空");
             }
-            if(StringUtil.isEmpty(activityPlan.getRuleDescribe())){
+            if (StringUtil.isEmpty(activityPlan.getRuleDescribe())) {
                 throw new BizException("活动规则不能为空");
             }
         }
 
         if (ActivityTypeEnum.EVALUATION.equals(activityPlan.getActivityType())) {
-            if(null == activityPlan.getPlanEvaluation() || null == activityPlan.getPlanEvaluation().getEvaluationDifficulty()){
+            activityPlan.setActivityClient(ClientEnum.STUDENT);
+            if (null == activityPlan.getPlanEvaluation() || null == activityPlan.getPlanEvaluation().getEvaluationDifficulty()) {
                 throw new BizException("活动类型为评测活动时,评测难度不能为空");
             }
         }
+
+        if (ActivityTypeEnum.STANDARD_GIFT.equals(activityPlan.getActivityType())) {
+            if (null == activityPlan.getPlanStandard()) {
+                throw new BizException("缺少达标赠送参数");
+            }
+            if (StringUtil.isEmpty(activityPlan.getPlanStandard().getCondition())) {
+                throw new BizException("达标条件不能为空");
+            }
+            if (StringUtil.isEmpty(activityPlan.getPlanStandard().getCalculationMethod())) {
+                throw new BizException("计算方式不能为空");
+            }
+        }
+
+        if (null == activityPlan.getActivityClient()) {
+            throw new BizException("活动客户端不能为空");
+        }
         return true;
     }
 
@@ -410,30 +433,30 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
             if (activityPlan.getActivityState() == 0) {
                 activityPlan.setActivityState(1);
                 baseMapper.updateById(activityPlan);
+
+                //开始活动
+                Consumer<Long> afterFunction = startActivity.get(activityPlan.getActivityType());
+                if (!Objects.isNull(afterFunction)) {
+                    afterFunction.accept(activityPlan.getId());
+                }
             } else {
                 activityPlan.setActivityState(0);
+                activityPlan.setRewardFlag(1);
                 baseMapper.updateById(activityPlan);
 
-                //关闭活动
-                Consumer<Long> afterFunction = cancelActivity.get(activityPlan.getActivityType());
+                //完成活动
+                Consumer<Long> afterFunction = successActivity.get(activityPlan.getActivityType());
                 if (!Objects.isNull(afterFunction)) {
                     afterFunction.accept(activityPlan.getId());
                 }
             }
         }
+    }
 
-        //活动完成
-        List<ActivityPlan> rewardList = baseMapper.activityReward();
-        for (ActivityPlan activityPlan : rewardList) {
-            //活动置为已发奖(已完成)
-            activityPlan.setRewardFlag(1);
-            updateById(activityPlan);
-
-            //完成活动
-            Consumer<Long> afterFunction = successActivity.get(activityPlan.getActivityType());
-            if (!Objects.isNull(afterFunction)) {
-                afterFunction.accept(activityPlan.getId());
-            }
+    @Override
+    public void activityIng() {
+        for (ActivityTypeEnum activityTypeEnum : activityIng.keySet()) {
+            activityIng.get(activityTypeEnum).accept(null);
         }
     }
 

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

@@ -17,7 +17,7 @@ public class ActivityPlanStandardServiceImpl extends ServiceImpl<ActivityPlanSta
     @Override
     public boolean createOrUpdate(ActivityPlanDto activityPlan) {
         ActivityPlanStandard planExpand = activityPlan.getPlanStandard();
-        if (null == activityPlan.getId()) {
+        if (null == planExpand.getId()) {
             planExpand.setId(activityPlan.getId());
             planExpand.setCreateBy(activityPlan.getUserId());
             planExpand.setUpdateBy(activityPlan.getUserId());
@@ -30,7 +30,12 @@ public class ActivityPlanStandardServiceImpl extends ServiceImpl<ActivityPlanSta
     }
 
     @Override
-    public void cancelActivity(Long aLong) {
+    public void activityIng(Object param) {
+
+    }
+
+    @Override
+    public void successActivity(Long activytyId) {
 
     }
 }

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

@@ -28,7 +28,7 @@
                 c.id_ as rewardId
             from (
                 select
-                    a.activity_id_,a.evaluation_id_,a.score_,min(b.create_time_) as create_time_
+                    a.activity_id_,a.evaluation_id_,a.score_,min(b.id_) as id_
                 from(
                     select
                     activity_id_,evaluation_id_, max(score_) as score_
@@ -38,9 +38,7 @@
                 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_
                 GROUP BY a.activity_id_,a.evaluation_id_,a.score_
             ) a
-            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_evaluation_record b on a.id_ = b.id_
             left join activity_plan_reward c on a.activity_id_ = c.activity_id_
     </select>
 </mapper>

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

@@ -106,8 +106,4 @@
             or (t.activity_end_ &lt;= now() and activity_state_ = 1)
         )
     </select>
-
-    <select id="activityReward" resultType="com.yonge.cooleshow.biz.dal.entity.ActivityPlan">
-        select <include refid="baseColumns"/> from activity_plan t where t.reward_flag_ = 0 and t.activity_end_ &lt;= now()
-    </select>
 </mapper>

+ 5 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityPlanStandardMapper.xml

@@ -3,21 +3,23 @@
 <mapper namespace="com.yonge.cooleshow.biz.dal.dao.ActivityPlanStandardDao">
 	<resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.ActivityPlanStandard">
             <result column="id_" property="id" />
-	        <result column="activity_id_" property="activityId" />
 	        <result column="condition_" property="condition" />
 	        <result column="calculation_method" property="calculationMethod" />
 	        <result column="create_time_" property="createTime" />
 	        <result column="create_by_" property="createBy" />
+            <result column="update_time_" property="updateTime" />
+            <result column="update_by_" property="updateBy" />
 		</resultMap>  
     
     <!-- 表字段 -->
     <sql id="baseColumns">
          t.id_ as id
-        , t.activity_id_ as activityId
-        , t.condition_ as condition
+        , t.condition_ as `condition`
         , t.calculation_method as calculationMethod
         , t.create_time_ as createTime
         , t.create_by_ as createBy
+        , t.update_time_ as updateTime
+        , t.update_by_ as updateBy
         </sql> 
 
 </mapper>

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

@@ -7,6 +7,7 @@
         <result column="biz_id_" property="bizId" />
         <result column="user_id_" property="userId" />
         <result column="reward_id_" property="rewardId" />
+        <result column="grant_flag_" property="grantFlag" />
         <result column="receive_flag_" property="receiveFlag" />
         <result column="create_time_" property="createTime" />
         <result column="update_time_" property="updateTime" />
@@ -19,6 +20,7 @@
         , t.biz_id_ as bizId
         , t.user_id_ as userId
         , t.reward_id_ as rewardId
+        , t.grant_flag_ as grantFlag
         , t.receive_flag_ as receiveFlag
         , t.create_time_ as createTime
         , t.update_time_ as updateTime