101 lines
3.2 KiB
Java
101 lines
3.2 KiB
Java
package com.ruoyi.job;
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.ruoyi.cai.cache.AnchorCountTotalCache;
|
|
import com.ruoyi.cai.service.AnchorService;
|
|
import com.ruoyi.cai.service.DayIncomeStatisticsService;
|
|
import com.ruoyi.cai.service.RankService;
|
|
import com.ruoyi.cai.service.UserService;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
|
import java.time.DayOfWeek;
|
|
import java.time.LocalDate;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.temporal.TemporalAdjusters;
|
|
|
|
@Component
|
|
@Slf4j
|
|
public class RankJob {
|
|
|
|
@Autowired
|
|
private RankService rankService;
|
|
@Autowired
|
|
private DayIncomeStatisticsService dayIncomeStatisticsService;
|
|
@Autowired
|
|
private AnchorCountTotalCache anchorCountTotalCache;
|
|
@Autowired
|
|
private UserService userService;
|
|
@Autowired
|
|
private AnchorService anchorService;
|
|
|
|
|
|
// 凌晨0点1分执行一次
|
|
@Scheduled(cron = "0 1 0 * * ? ")
|
|
public void persistentDb() {
|
|
LocalDate now = LocalDate.now();
|
|
LocalDate date = now.plusDays(-1);
|
|
try {
|
|
rankService.saveDayRank(date,1);
|
|
} catch (Exception e) {
|
|
log.error("保存魅力 日榜失败", e);
|
|
}
|
|
try {
|
|
rankService.saveDayRank(date,2);
|
|
} catch (Exception e) {
|
|
log.error("保存邀请 日榜失败", e);
|
|
}
|
|
DayOfWeek week = now.getDayOfWeek();
|
|
if (week.getValue() == 1) { // 今天是周一 做一下持久化
|
|
LocalDate lastWeekDate = now.plusDays(-7);
|
|
try {
|
|
rankService.saveWeekRank(lastWeekDate,1);
|
|
} catch (Exception e) {
|
|
log.error("保存魅力 周榜失败", e);
|
|
}
|
|
try {
|
|
rankService.saveWeekRank(lastWeekDate,2);
|
|
} catch (Exception e) {
|
|
log.error("保存邀请 周榜失败", e);
|
|
}
|
|
}
|
|
int month = now.getDayOfMonth();
|
|
if (month == 1) { // 昨天是1号
|
|
LocalDate lastMonthDate = now.plusMonths(-1);
|
|
try {
|
|
rankService.saveMonthRank(lastMonthDate,1);
|
|
} catch (Exception e) {
|
|
log.error("保存魅力 月榜失败", e);
|
|
}
|
|
try {
|
|
rankService.saveMonthRank(lastMonthDate,2);
|
|
} catch (Exception e) {
|
|
log.error("保存邀请 月榜失败", e);
|
|
}
|
|
}
|
|
try {
|
|
dayIncomeStatisticsService.refreshByDate(date);
|
|
}catch (Exception e){
|
|
log.error("更新昨日收益统计失败!",e);
|
|
}
|
|
|
|
try {
|
|
userService.refreshByAge();
|
|
}catch (Exception e){
|
|
log.error("刷新用户年龄失败!",e);
|
|
}
|
|
try {
|
|
long anchorNum = anchorService.count(Wrappers.emptyWrapper());
|
|
anchorCountTotalCache.set(date,anchorNum);
|
|
}catch (Exception e){
|
|
log.error("报错昨日主播统计失败!",e);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
}
|