diff --git a/novel-front/src/main/java/com/java2nb/novel/core/schedule/DailyIncomeStaSchedule.java b/novel-front/src/main/java/com/java2nb/novel/core/schedule/DailyIncomeStaSchedule.java index f97fd5a..241f3b9 100644 --- a/novel-front/src/main/java/com/java2nb/novel/core/schedule/DailyIncomeStaSchedule.java +++ b/novel-front/src/main/java/com/java2nb/novel/core/schedule/DailyIncomeStaSchedule.java @@ -47,6 +47,9 @@ public class DailyIncomeStaSchedule { //获取昨天的结束时间 Date endTime = DateUtil.getDateEndTime(yesterday); + + //每次查询作家的最后一个主键id + long lastAuthorId = -1; //每次查询的作家数量 int needAuthorNumber = 10; //查询出来的真实作家数量 @@ -55,8 +58,15 @@ public class DailyIncomeStaSchedule { Date maxAuthorCreateTime = new Date(); do { //1.查询作家列表 - List authors = authorService.queryAuthorList(needAuthorNumber, maxAuthorCreateTime); + List authors = authorService.queryAuthorList(needAuthorNumber, maxAuthorCreateTime, lastAuthorId); + //本次查询到的真实作者数量 realAuthorNumber = authors.size(); + //本次查询到的作者最后一个id,用于下次查询传入 + if(realAuthorNumber != 0){ + Author author = authors.get(realAuthorNumber - 1); + lastAuthorId = author.getId(); + } + for (Author author : authors) { maxAuthorCreateTime = author.getCreateTime(); Long authorId = author.getId(); diff --git a/novel-front/src/main/java/com/java2nb/novel/core/schedule/MonthIncomeStaSchedule.java b/novel-front/src/main/java/com/java2nb/novel/core/schedule/MonthIncomeStaSchedule.java index 554d835..d61c362 100644 --- a/novel-front/src/main/java/com/java2nb/novel/core/schedule/MonthIncomeStaSchedule.java +++ b/novel-front/src/main/java/com/java2nb/novel/core/schedule/MonthIncomeStaSchedule.java @@ -41,6 +41,9 @@ public class MonthIncomeStaSchedule { Date startTime = DateUtil.getLastMonthStartTime(); Date endTime = DateUtil.getLastMonthEndTime(); + + //每次查询作家的最后一个主键id + long lastAuthorId = -1; //每次查询的作家数量 int needAuthorNumber = 10; //查询出来的真实作家数量 @@ -49,8 +52,14 @@ public class MonthIncomeStaSchedule { Date maxAuthorCreateTime = new Date(); do { //1.查询作家列表 - List authors = authorService.queryAuthorList(needAuthorNumber, maxAuthorCreateTime); + List authors = authorService.queryAuthorList(needAuthorNumber, maxAuthorCreateTime, lastAuthorId); + //本次查询到的真实作者数量 realAuthorNumber = authors.size(); + //本次查询到的作者最后一个id,用于下次查询传入 + if(realAuthorNumber != 0){ + Author author = authors.get(realAuthorNumber - 1); + lastAuthorId = author.getId(); + } for (Author author : authors) { maxAuthorCreateTime = author.getCreateTime(); Long authorId = author.getId(); diff --git a/novel-front/src/main/java/com/java2nb/novel/service/AuthorService.java b/novel-front/src/main/java/com/java2nb/novel/service/AuthorService.java index 3c42acd..6547710 100644 --- a/novel-front/src/main/java/com/java2nb/novel/service/AuthorService.java +++ b/novel-front/src/main/java/com/java2nb/novel/service/AuthorService.java @@ -48,8 +48,9 @@ public interface AuthorService { * @return 作家列表 * @param limit 查询条数 * @param maxAuthorCreateTime 最大申请时间 + * @param fromAuthorId 从第几个id开始查询(不包含此id) */ - List queryAuthorList(int limit, Date maxAuthorCreateTime); + List queryAuthorList(int limit, Date maxAuthorCreateTime, long fromAuthorId); /** * 查询收入日统计是否入库 diff --git a/novel-front/src/main/java/com/java2nb/novel/service/impl/AuthorServiceImpl.java b/novel-front/src/main/java/com/java2nb/novel/service/impl/AuthorServiceImpl.java index 499e257..a25f29e 100644 --- a/novel-front/src/main/java/com/java2nb/novel/service/impl/AuthorServiceImpl.java +++ b/novel-front/src/main/java/com/java2nb/novel/service/impl/AuthorServiceImpl.java @@ -101,11 +101,11 @@ public class AuthorServiceImpl implements AuthorService { } @Override - public List queryAuthorList(int needAuthorNumber, Date maxAuthorCreateTime) { + public List queryAuthorList(int needAuthorNumber, Date maxAuthorCreateTime, long lastAuthorId) { return authorMapper.selectMany(select(AuthorDynamicSqlSupport.id, AuthorDynamicSqlSupport.userId) .from(AuthorDynamicSqlSupport.author) + .where(AuthorDynamicSqlSupport.id, isGreaterThan(lastAuthorId)) .where(AuthorDynamicSqlSupport.createTime, isLessThan(maxAuthorCreateTime)) - .orderBy(AuthorDynamicSqlSupport.createTime.descending()) .limit(needAuthorNumber) .build() .render(RenderingStrategies.MYBATIS3));