From 43cb6dc9012c2d7ebb9a3234c259539090da90e4 Mon Sep 17 00:00:00 2001 From: Derran Date: Tue, 2 Apr 2024 09:18:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/AcquireGiftRightTask.java | 66 +++++++++++++++---- 1 file changed, 53 insertions(+), 13 deletions(-) diff --git a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/task/AcquireGiftRightTask.java b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/task/AcquireGiftRightTask.java index 8465b55..3504e47 100644 --- a/dating-agency-mall-server/src/main/java/com/qniao/dam/application/task/AcquireGiftRightTask.java +++ b/dating-agency-mall-server/src/main/java/com/qniao/dam/application/task/AcquireGiftRightTask.java @@ -17,6 +17,7 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.YearMonth; import java.util.List; @Component @@ -30,28 +31,67 @@ public class AcquireGiftRightTask { @Resource private RightAcquireRecordDao rightAcquireRecordDao; +// /** +// * 每月给资料赠送修改头像权益 人数多不能这么领取,用户自己领取就行 +// */ +// @Scheduled(cron = "0 0 0 * * *") // 每天凌晨执行 +// public void handle() { +// try { +// log.error("赠送权益任务开始"); +// //一个月整前的资料赠送权益 +// LocalDate date = LocalDate.now().minusMonths(1); +// LocalDateTime startTime = date.atTime(0, 0, 0); +// LocalDateTime endTime = date.atTime(23, 59, 59); +// LocalDateTime todayStartTime = LocalDate.now().atTime(0, 0, 0); +// LocalDateTime todayEndTime = LocalDate.now().atTime(23, 59, 59); +// int count = userMarriageInformationDao.selectCount(new LambdaQueryWrapper() +// .ge(UserMarriageInformation::getCreateTime, startTime) +// .le(UserMarriageInformation::getCreateTime, endTime)); +// if (count > 0) { +// int num = 100; +// for (int i = 0; i < count; i += num) { +// List list = userMarriageInformationDao.selectList(new LambdaQueryWrapper() +// .ge(UserMarriageInformation::getCreateTime, startTime) +// .le(UserMarriageInformation::getCreateTime, endTime) +// .last("limit " + i + "," + num)); +// if (CollUtil.isNotEmpty(list)) { +// for (UserMarriageInformation userMarriageInformation : list) { +// //判断资料是否领取过免费权益 +// if (rightAcquireRecordDao.selectCount(new LambdaQueryWrapper() +// .eq(RightAcquireRecord::getUserId, userMarriageInformation.getUserId()) +// .eq(RightAcquireRecord::getMiId, userMarriageInformation.getMiId()) +// .eq(RightAcquireRecord::getAcquireType, RightAcquireEnum.GIFT) +// .ge(RightAcquireRecord::getCreateTime, todayStartTime) +// .le(RightAcquireRecord::getCreateTime, todayEndTime)) == 0) { +// rightApplicationService.acquireNewMIRight(userMarriageInformation.getUserId(), userMarriageInformation.getMiId()); +// } +// } +// } +// } +// log.error("赠送权益任务结束"); +// } +// } catch (Exception e) { +// log.error("赠送权益任务异常", e); +// } +// } + + /** * 每月给资料赠送修改头像权益 人数多不能这么领取,用户自己领取就行 */ - @Scheduled(cron = "0 0 0 * * *") // 每天凌晨执行 + @Scheduled(cron = "0 * 0 * * *") // 每月1号凌晨执行 public void handle() { try { log.error("赠送权益任务开始"); //一个月整前的资料赠送权益 - LocalDate date = LocalDate.now().minusMonths(1); - LocalDateTime startTime = date.atTime(0, 0, 0); - LocalDateTime endTime = date.atTime(23, 59, 59); - LocalDateTime todayStartTime = LocalDate.now().atTime(0, 0, 0); - LocalDateTime todayEndTime = LocalDate.now().atTime(23, 59, 59); - int count = userMarriageInformationDao.selectCount(new LambdaQueryWrapper() - .ge(UserMarriageInformation::getCreateTime, startTime) - .le(UserMarriageInformation::getCreateTime, endTime)); + LocalDate now = LocalDate.now(); + LocalDateTime monthStartTime = YearMonth.from(now).atDay(1).atTime(0, 0, 0); + LocalDateTime monthEndTime = YearMonth.from(now).plusMonths(1).atDay(1).minusDays(1).atTime(23, 59, 59); + int count = userMarriageInformationDao.selectCount(new LambdaQueryWrapper()); if (count > 0) { int num = 100; for (int i = 0; i < count; i += num) { List list = userMarriageInformationDao.selectList(new LambdaQueryWrapper() - .ge(UserMarriageInformation::getCreateTime, startTime) - .le(UserMarriageInformation::getCreateTime, endTime) .last("limit " + i + "," + num)); if (CollUtil.isNotEmpty(list)) { for (UserMarriageInformation userMarriageInformation : list) { @@ -60,8 +100,8 @@ public class AcquireGiftRightTask { .eq(RightAcquireRecord::getUserId, userMarriageInformation.getUserId()) .eq(RightAcquireRecord::getMiId, userMarriageInformation.getMiId()) .eq(RightAcquireRecord::getAcquireType, RightAcquireEnum.GIFT) - .ge(RightAcquireRecord::getCreateTime, todayStartTime) - .le(RightAcquireRecord::getCreateTime, todayEndTime)) == 0) { + .ge(RightAcquireRecord::getCreateTime, monthStartTime) + .le(RightAcquireRecord::getCreateTime, monthEndTime)) == 0) { rightApplicationService.acquireNewMIRight(userMarriageInformation.getUserId(), userMarriageInformation.getMiId()); } }