| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- package com.cyksj.task;
- import cn.hutool.core.date.DateTime;
- import cn.hutool.core.date.DateUtil;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.cyksj.common.constant.Constant;
- import com.cyksj.common.constant.PointsRecordConst;
- import com.cyksj.mapper.manage.statistics.SignStatisticsDataMapper;
- import com.cyksj.mapper.market.sign.SignUserMapper;
- import com.cyksj.mapper.market.sign.UserPointsRecordMapper;
- import com.cyksj.mapper.market.task.TaskFollowPlatVerifyMapper;
- import com.cyksj.mapper.market.task.TaskUserCompleteRecordMapper;
- import com.cyksj.model.entity.SignStatisticsData;
- import com.cyksj.model.entity.SignUser;
- import com.cyksj.model.entity.TaskFollowPlatVerify;
- import com.cyksj.model.entity.TaskUserCompleteRecord;
- import com.cyksj.service.market.MarketFrontService;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.stereotype.Component;
- import java.util.Date;
- import java.util.List;
- /*
- *项目名: netflix
- *文件名: SignStatisticsDataScheduler
- *创建者: JavaZou
- *创建时间:2022/12/27 18:27
- */
- @Component
- @Slf4j
- @RequiredArgsConstructor
- public class SignStatisticsDataScheduler {
- private final SignStatisticsDataMapper signStatisticsDataMapper;
- private final UserPointsRecordMapper userPointsRecordMapper;
- private final SignUserMapper signUserMapper;
- private final TaskFollowPlatVerifyMapper taskFollowPlatVerifyMapper;
- private final TaskUserCompleteRecordMapper taskUserCompleteRecordMapper;
- private final MarketFrontService marketFrontService;
- @Scheduled(cron = "0 0 0 * * ?")
- public void signStatisticsData() {
- Date thisZeroDate = DateUtil.beginOfDay(DateTime.now());
- Date yesZeroDate = DateTime.of(thisZeroDate.getTime() - Constant.DAY_MILLS);
- SignStatisticsData signStatisticsData = new SignStatisticsData();
- //今日签到人数
- Integer todayNumOfSign = signUserMapper.selectCount(Wrappers.lambdaQuery(SignUser.class)
- .between(SignUser::getUpdateTime, yesZeroDate, thisZeroDate));
- signStatisticsData.setTodayNumOfSign(todayNumOfSign);
- //今日发放积分
- Integer todayNumOfPoints = userPointsRecordMapper.getTodayNumOfPoints(yesZeroDate, thisZeroDate);
- signStatisticsData.setTodayNumOfPoints(todayNumOfPoints);
- //累计发放积分
- Integer sumOfPoints = userPointsRecordMapper.getSumOfPoints();
- signStatisticsData.setSumOfPoints(sumOfPoints);
- //今日使用积分
- Integer todayUseOfPoints = userPointsRecordMapper.getTodayUseOfPoints(yesZeroDate, thisZeroDate);
- signStatisticsData.setTodayUseOfPoints(-todayUseOfPoints);
- //累计使用积分
- Integer sumUseOfPoints = userPointsRecordMapper.getSumUseOfPoints();
- signStatisticsData.setSumUseOfPoints(-sumUseOfPoints);
- //今日抽奖次数
- Integer todayNumOfLottery = userPointsRecordMapper.getTodayNumOfLottery(PointsRecordConst.POINTS_LOTTERY, yesZeroDate, thisZeroDate);
- signStatisticsData.setTodayNumOfLottery(todayNumOfLottery);
- //连签2天
- Integer sign2Day = userPointsRecordMapper.getSignDayByCondition(2, yesZeroDate, thisZeroDate);
- signStatisticsData.setT2(sign2Day);
- //连签3天
- Integer sign3Day = userPointsRecordMapper.getSignDayByCondition(3, yesZeroDate, thisZeroDate);
- signStatisticsData.setT3(sign3Day);
- //连签4天
- Integer sign4Day = userPointsRecordMapper.getSignDayByCondition(4, yesZeroDate, thisZeroDate);
- signStatisticsData.setT4(sign4Day);
- //连签5天
- Integer sign5Day = userPointsRecordMapper.getSignDayByCondition(5, yesZeroDate, thisZeroDate);
- signStatisticsData.setT5(sign5Day);
- //连签6天
- Integer sign6Day = userPointsRecordMapper.getSignDayByCondition(6, yesZeroDate, thisZeroDate);
- signStatisticsData.setT6(sign6Day);
- //连签7天
- Integer sign7Day = userPointsRecordMapper.getSignDayByCondition(7, yesZeroDate, thisZeroDate);
- signStatisticsData.setT7(sign7Day);
- signStatisticsData.setStatisticsDate(yesZeroDate);
- signStatisticsDataMapper.insert(signStatisticsData);
- }
- /**
- * 关注任务3天未审核 自动审核成功
- */
- @Scheduled(cron = "0 30 0 * * ?")
- public void autoVerifySuccess() {
- DateTime now = DateTime.now();
- DateTime threeBefore = DateUtil.offsetDay(now, -3);
- List<TaskFollowPlatVerify> taskFollowPlatVerifies = taskFollowPlatVerifyMapper.selectList(Wrappers.lambdaQuery(TaskFollowPlatVerify.class)
- .le(TaskFollowPlatVerify::getCreatedTime, threeBefore)
- .eq(TaskFollowPlatVerify::getStatus, TaskFollowPlatVerify.Status.verifying));
- taskFollowPlatVerifies.forEach(data->{
- data.setStatus(TaskFollowPlatVerify.Status.success);
- TaskUserCompleteRecord record = taskUserCompleteRecordMapper.selectOne(Wrappers.lambdaQuery(TaskUserCompleteRecord.class)
- .eq(TaskUserCompleteRecord::getUserId, data.getUserId())
- .eq(TaskUserCompleteRecord::getTaskId, data.getTaskId())
- .last("limit 1"));
- record.setStatus(TaskUserCompleteRecord.Status.received);
- taskUserCompleteRecordMapper.updateById(record);
- marketFrontService.pointsRecord(record.getUserId(), record.getPoints(), PointsRecordConst.TASK, false);
- });
- }
- }
|