From 0295814ddb88f7fb2f3a7021c989190ecbed5d88 Mon Sep 17 00:00:00 2001 From: 77 <77@77.com> Date: Mon, 22 Apr 2024 01:01:02 +0800 Subject: [PATCH] 123 --- .../src/main/java/com/ruoyi/job/RankJob.java | 3 +- .../cai/admin/op/RefreshOpController.java | 50 +++++++++++++++++++ .../cai/service/impl/RankServiceImpl.java | 12 +++-- 3 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/op/RefreshOpController.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/job/RankJob.java b/ruoyi-admin/src/main/java/com/ruoyi/job/RankJob.java index 3fecd538..c86e637c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/job/RankJob.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/job/RankJob.java @@ -15,6 +15,7 @@ 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 @@ -48,7 +49,7 @@ public class RankJob { log.error("保存邀请 日榜失败", e); } DayOfWeek week = now.getDayOfWeek(); - if (week.getValue() == 1) { // 昨天是周一 做一下持久化 + if (week.getValue() == 1) { // 今天是周一 做一下持久化 LocalDate lastWeekDate = now.plusDays(-7); try { rankService.saveWeekRank(lastWeekDate,1); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/op/RefreshOpController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/op/RefreshOpController.java new file mode 100644 index 00000000..d8cd2ea0 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/cai/admin/op/RefreshOpController.java @@ -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 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 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 month(String date,Integer type){ + LocalDate localDate = LocalDate.parse(date, DateTimeFormatter.ofPattern("yyyy-MM-dd")); + rankService.saveMonthRank(localDate,type); + return R.ok(); + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/RankServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/RankServiceImpl.java index 951103c2..831e875a 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/RankServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/RankServiceImpl.java @@ -93,6 +93,7 @@ public class RankServiceImpl extends ServiceImpl implements Ran } boolean exists = this.exists(Wrappers.lambdaQuery(Rank.class) .eq(Rank::getType, type) + .eq(Rank::getDataType, RankDataTypeEnum.DAY.getCode()) .eq(Rank::getRankBeginTime, date)); if(exists){ log.error("本期榜单已经持久化 date={},type={}",date,type); @@ -103,6 +104,7 @@ public class RankServiceImpl extends ServiceImpl implements Ran lock.lock(); exists = this.exists(Wrappers.lambdaQuery(Rank.class) .eq(Rank::getType, type) + .eq(Rank::getDataType, RankDataTypeEnum.DAY.getCode()) .eq(Rank::getRankBeginTime, date)); if(exists){ log.error("本期榜单已经持久化 date={},type={}",date,type); @@ -150,6 +152,7 @@ public class RankServiceImpl extends ServiceImpl implements Ran } boolean exists = this.exists(Wrappers.lambdaQuery(Rank.class) .eq(Rank::getType, type) + .eq(Rank::getDataType, RankDataTypeEnum.WEEK.getCode()) .eq(Rank::getRankBeginTime, date)); if(exists){ log.error("本期榜单已经持久化 date={},type={}",date,type); @@ -160,12 +163,13 @@ public class RankServiceImpl extends ServiceImpl implements Ran lock.lock(); exists = this.exists(Wrappers.lambdaQuery(Rank.class) .eq(Rank::getType, type) + .eq(Rank::getDataType, RankDataTypeEnum.WEEK.getCode()) .eq(Rank::getRankBeginTime, date)); if(exists){ log.error("本期榜单已经持久化 date={},type={}",date,type); return; } - List rankValue = getRankValue(type, RankDataTypeEnum.DAY.getCode()); + List rankValue = getRankValue(type, RankDataTypeEnum.WEEK.getCode()); List res = new ArrayList<>(); LocalDate endDate = date.plusDays(7); String rankTime = date.format(DateTimeFormatter.ofPattern("yyyyMMdd")) +"-"+endDate.format(DateTimeFormatter.ofPattern("yyyyMMdd")); @@ -197,9 +201,9 @@ public class RankServiceImpl extends ServiceImpl implements Ran public void saveMonthRank(LocalDate date, Integer type) { List rank; if(type == 1){ - rank = rankManager.getLoveRankDay(date, 30); + rank = rankManager.getLoveRankMonth(date, 30); }else if(type == 2){ - rank = rankManager.getInviteRankDay(date, 30); + rank = rankManager.getInviteRankMonth(date, 30); }else{ throw new ServiceException("type 参数错误"); } @@ -208,6 +212,7 @@ public class RankServiceImpl extends ServiceImpl implements Ran } boolean exists = this.exists(Wrappers.lambdaQuery(Rank.class) .eq(Rank::getType, type) + .eq(Rank::getDataType, RankDataTypeEnum.MONTH.getCode()) .eq(Rank::getRankBeginTime, date)); if(exists){ log.error("本期榜单已经持久化 date={},type={}",date,type); @@ -218,6 +223,7 @@ public class RankServiceImpl extends ServiceImpl implements Ran lock.lock(); exists = this.exists(Wrappers.lambdaQuery(Rank.class) .eq(Rank::getType, type) + .eq(Rank::getDataType, RankDataTypeEnum.MONTH.getCode()) .eq(Rank::getRankBeginTime, date)); if(exists){ log.error("本期榜单已经持久化 date={},type={}",date,type);