|
|
@@ -2,10 +2,13 @@ package com.zhongzheng.modules.activity.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
|
|
import com.zhongzheng.common.utils.DateUtils;
|
|
|
import com.zhongzheng.modules.activity.bo.ActivityTaskUserAddBo;
|
|
|
import com.zhongzheng.modules.activity.service.IActivityGradeService;
|
|
|
+import com.zhongzheng.modules.activity.service.IActivityTaskService;
|
|
|
import com.zhongzheng.modules.activity.vo.ActivityGradeVo;
|
|
|
+import com.zhongzheng.modules.activity.vo.ActivityTaskVo;
|
|
|
import com.zhongzheng.modules.user.service.IUserService;
|
|
|
import com.zhongzheng.modules.user.vo.UserVo;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -20,7 +23,9 @@ import com.zhongzheng.modules.activity.domain.ActivityTaskUser;
|
|
|
import com.zhongzheng.modules.activity.mapper.ActivityTaskUserMapper;
|
|
|
import com.zhongzheng.modules.activity.vo.ActivityTaskUserVo;
|
|
|
import com.zhongzheng.modules.activity.service.IActivityTaskUserService;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
+import java.util.Calendar;
|
|
|
import java.util.Collection;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -40,6 +45,9 @@ public class ActivityTaskUserServiceImpl extends ServiceImpl<ActivityTaskUserMap
|
|
|
@Autowired
|
|
|
private IActivityGradeService activityGradeService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IActivityTaskService activityTaskService;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public ActivityTaskUserVo queryById(Long userId){
|
|
|
@@ -119,8 +127,7 @@ public class ActivityTaskUserServiceImpl extends ServiceImpl<ActivityTaskUserMap
|
|
|
add.setUpdateTime(DateUtils.getNowTime());
|
|
|
//增加用户积分,并判断是否达到对应等级,更新等级
|
|
|
UserVo userVo = userService.queryById(bo.getUserId());
|
|
|
- ActivityGradeVo activityGradeVo = activityGradeService.queryById(bo.getTaskId());
|
|
|
-
|
|
|
+ ActivityTaskVo activityTaskVo = activityTaskService.queryById(bo.getTaskId());
|
|
|
|
|
|
return this.save(add);
|
|
|
}
|
|
|
@@ -129,8 +136,72 @@ public class ActivityTaskUserServiceImpl extends ServiceImpl<ActivityTaskUserMap
|
|
|
switch (bo.getTaskType()){
|
|
|
//每日签到逻辑,当日有领取即无法签到
|
|
|
case 0:
|
|
|
-
|
|
|
+ LambdaQueryChainWrapper<ActivityTaskUser> lqw = lambdaQuery();
|
|
|
+ lqw.eq(bo.getTaskType() !=null,ActivityTaskUser::getTaskType,bo.getTaskType());
|
|
|
+ lqw.eq(bo.getUserId() !=null,ActivityTaskUser::getUserId,bo.getUserId());
|
|
|
+ lqw.between(ActivityTaskUser::getCreateTime,getTimesmorning(),getTimesnight());
|
|
|
+ List<ActivityTaskUser> list = this.list(lqw);
|
|
|
+ if (!CollectionUtils.isEmpty(list) && list.size() > 0){
|
|
|
+ throw new IllegalArgumentException("已签到请勿重复签到");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ //完善信息 按照百分比求得乘以分数得到奖励分数
|
|
|
+ case 1:
|
|
|
+ LambdaQueryChainWrapper<ActivityTaskUser> useWan = lambdaQuery();
|
|
|
+ useWan.eq(bo.getTaskType() !=null,ActivityTaskUser::getTaskType,bo.getTaskType());
|
|
|
+ useWan.eq(bo.getUserId() !=null,ActivityTaskUser::getUserId,bo.getUserId());
|
|
|
+ List<ActivityTaskUser> listWan = this.list(useWan);
|
|
|
+ if (!CollectionUtils.isEmpty(listWan) && listWan.size() > 0){
|
|
|
+ throw new IllegalArgumentException("已完善信息领取完成,无法再次领取");
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ LambdaQueryChainWrapper<ActivityTaskUser> useMei = lambdaQuery();
|
|
|
+ useMei.eq(bo.getTaskType() !=null,ActivityTaskUser::getTaskType,bo.getTaskType());
|
|
|
+ useMei.eq(bo.getUserId() !=null,ActivityTaskUser::getUserId,bo.getUserId());
|
|
|
+ List<ActivityTaskUser> listMei = this.list(useMei);
|
|
|
+ ActivityTaskVo activityTaskVo = activityTaskService.queryById(bo.getTaskId());
|
|
|
+ if (!CollectionUtils.isEmpty(listMei) && listMei.size() > 0){
|
|
|
+ throw new IllegalArgumentException("");
|
|
|
+ }
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ //获得今天时间的0点
|
|
|
+ public static int getTimesmorning(){
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
+
|
|
|
+ cal.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+
|
|
|
+ cal.set(Calendar.SECOND, 0);
|
|
|
+
|
|
|
+ cal.set(Calendar.MINUTE, 0);
|
|
|
+
|
|
|
+ cal.set(Calendar.MILLISECOND, 0);
|
|
|
+
|
|
|
+ return (int) (cal.getTimeInMillis()/1000);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //获得当天24点时间
|
|
|
+ public static int getTimesnight(){
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
+
|
|
|
+ cal.set(Calendar.HOUR_OF_DAY, 24);
|
|
|
+
|
|
|
+ cal.set(Calendar.SECOND, 0);
|
|
|
+
|
|
|
+ cal.set(Calendar.MINUTE, 0);
|
|
|
+
|
|
|
+ cal.set(Calendar.MILLISECOND, 0);
|
|
|
+
|
|
|
+ return (int) (cal.getTimeInMillis()/1000);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|