This commit is contained in:
77
2024-04-22 01:01:02 +08:00
parent 8651be4284
commit 0295814ddb
3 changed files with 61 additions and 4 deletions

View File

@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import java.time.DayOfWeek; import java.time.DayOfWeek;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
@Component @Component
@Slf4j @Slf4j
@@ -48,7 +49,7 @@ public class RankJob {
log.error("保存邀请 日榜失败", e); log.error("保存邀请 日榜失败", e);
} }
DayOfWeek week = now.getDayOfWeek(); DayOfWeek week = now.getDayOfWeek();
if (week.getValue() == 1) { // 天是周一 做一下持久化 if (week.getValue() == 1) { // 天是周一 做一下持久化
LocalDate lastWeekDate = now.plusDays(-7); LocalDate lastWeekDate = now.plusDays(-7);
try { try {
rankService.saveWeekRank(lastWeekDate,1); rankService.saveWeekRank(lastWeekDate,1);

View File

@@ -0,0 +1,50 @@
package com.ruoyi.web.controller.cai.admin.op;
import com.ruoyi.cai.service.RankService;
import com.ruoyi.common.core.domain.R;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.DateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/op/refresh")
@Slf4j
public class RefreshOpController {
@Autowired
private RankService rankService;
@GetMapping("/day")
public R<Void> day(String date,Integer type) {
LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
rankService.saveDayRank(localDate, type);
return R.ok();
}
@GetMapping("/week")
public R<Void> week(String date,Integer type){
LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
rankService.saveWeekRank(localDate,type);
return R.ok();
}
@GetMapping("/month")
public R<Void> month(String date,Integer type){
LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
rankService.saveMonthRank(localDate,type);
return R.ok();
}
}

View File

@@ -93,6 +93,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
} }
boolean exists = this.exists(Wrappers.lambdaQuery(Rank.class) boolean exists = this.exists(Wrappers.lambdaQuery(Rank.class)
.eq(Rank::getType, type) .eq(Rank::getType, type)
.eq(Rank::getDataType, RankDataTypeEnum.DAY.getCode())
.eq(Rank::getRankBeginTime, date)); .eq(Rank::getRankBeginTime, date));
if(exists){ if(exists){
log.error("本期榜单已经持久化 date={},type={}",date,type); log.error("本期榜单已经持久化 date={},type={}",date,type);
@@ -103,6 +104,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
lock.lock(); lock.lock();
exists = this.exists(Wrappers.lambdaQuery(Rank.class) exists = this.exists(Wrappers.lambdaQuery(Rank.class)
.eq(Rank::getType, type) .eq(Rank::getType, type)
.eq(Rank::getDataType, RankDataTypeEnum.DAY.getCode())
.eq(Rank::getRankBeginTime, date)); .eq(Rank::getRankBeginTime, date));
if(exists){ if(exists){
log.error("本期榜单已经持久化 date={},type={}",date,type); log.error("本期榜单已经持久化 date={},type={}",date,type);
@@ -150,6 +152,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
} }
boolean exists = this.exists(Wrappers.lambdaQuery(Rank.class) boolean exists = this.exists(Wrappers.lambdaQuery(Rank.class)
.eq(Rank::getType, type) .eq(Rank::getType, type)
.eq(Rank::getDataType, RankDataTypeEnum.WEEK.getCode())
.eq(Rank::getRankBeginTime, date)); .eq(Rank::getRankBeginTime, date));
if(exists){ if(exists){
log.error("本期榜单已经持久化 date={},type={}",date,type); log.error("本期榜单已经持久化 date={},type={}",date,type);
@@ -160,12 +163,13 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
lock.lock(); lock.lock();
exists = this.exists(Wrappers.lambdaQuery(Rank.class) exists = this.exists(Wrappers.lambdaQuery(Rank.class)
.eq(Rank::getType, type) .eq(Rank::getType, type)
.eq(Rank::getDataType, RankDataTypeEnum.WEEK.getCode())
.eq(Rank::getRankBeginTime, date)); .eq(Rank::getRankBeginTime, date));
if(exists){ if(exists){
log.error("本期榜单已经持久化 date={},type={}",date,type); log.error("本期榜单已经持久化 date={},type={}",date,type);
return; return;
} }
List<Long> rankValue = getRankValue(type, RankDataTypeEnum.DAY.getCode()); List<Long> rankValue = getRankValue(type, RankDataTypeEnum.WEEK.getCode());
List<Rank> res = new ArrayList<>(); List<Rank> res = new ArrayList<>();
LocalDate endDate = date.plusDays(7); LocalDate endDate = date.plusDays(7);
String rankTime = date.format(DateTimeFormatter.ofPattern("yyyyMMdd")) +"-"+endDate.format(DateTimeFormatter.ofPattern("yyyyMMdd")); String rankTime = date.format(DateTimeFormatter.ofPattern("yyyyMMdd")) +"-"+endDate.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
@@ -197,9 +201,9 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
public void saveMonthRank(LocalDate date, Integer type) { public void saveMonthRank(LocalDate date, Integer type) {
List<RankNode> rank; List<RankNode> rank;
if(type == 1){ if(type == 1){
rank = rankManager.getLoveRankDay(date, 30); rank = rankManager.getLoveRankMonth(date, 30);
}else if(type == 2){ }else if(type == 2){
rank = rankManager.getInviteRankDay(date, 30); rank = rankManager.getInviteRankMonth(date, 30);
}else{ }else{
throw new ServiceException("type 参数错误"); throw new ServiceException("type 参数错误");
} }
@@ -208,6 +212,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
} }
boolean exists = this.exists(Wrappers.lambdaQuery(Rank.class) boolean exists = this.exists(Wrappers.lambdaQuery(Rank.class)
.eq(Rank::getType, type) .eq(Rank::getType, type)
.eq(Rank::getDataType, RankDataTypeEnum.MONTH.getCode())
.eq(Rank::getRankBeginTime, date)); .eq(Rank::getRankBeginTime, date));
if(exists){ if(exists){
log.error("本期榜单已经持久化 date={},type={}",date,type); log.error("本期榜单已经持久化 date={},type={}",date,type);
@@ -218,6 +223,7 @@ public class RankServiceImpl extends ServiceImpl<RankMapper,Rank> implements Ran
lock.lock(); lock.lock();
exists = this.exists(Wrappers.lambdaQuery(Rank.class) exists = this.exists(Wrappers.lambdaQuery(Rank.class)
.eq(Rank::getType, type) .eq(Rank::getType, type)
.eq(Rank::getDataType, RankDataTypeEnum.MONTH.getCode())
.eq(Rank::getRankBeginTime, date)); .eq(Rank::getRankBeginTime, date));
if(exists){ if(exists){
log.error("本期榜单已经持久化 date={},type={}",date,type); log.error("本期榜单已经持久化 date={},type={}",date,type);