幸运24-我的排名
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
package com.accompany.scheduler.task.luckyBag;
|
||||
|
||||
import com.accompany.business.message.GiftMessage;
|
||||
import com.accompany.business.message.Lucky24Message;
|
||||
import com.accompany.business.service.gift.Lucky24MessageService;
|
||||
import com.accompany.business.service.lucky.Lucky24RecordService;
|
||||
|
@@ -0,0 +1,47 @@
|
||||
package com.accompany.scheduler.task.luckyBag;
|
||||
|
||||
import com.accompany.business.service.lucky.rank.Lucky24SendWeekRankService;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.model.PartitionInfo;
|
||||
import com.accompany.core.service.partition.PartitionInfoService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.DayOfWeek;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class Lucky24WeekRankTask {
|
||||
|
||||
@Autowired
|
||||
private PartitionInfoService partitionInfoService;
|
||||
@Resource(name = "bizExecutor")
|
||||
private ThreadPoolExecutor bizExecutor;
|
||||
@Autowired
|
||||
private Lucky24SendWeekRankService service;
|
||||
|
||||
@Scheduled(cron = "0 1 * * * ? ")
|
||||
public void lucky24WeekRankSettlement() {
|
||||
Date now = new Date();
|
||||
List<PartitionInfo> partitionInfoList = partitionInfoService.listAll();
|
||||
for (PartitionInfo partitionInfo : partitionInfoList) {
|
||||
ZonedDateTime zdt = DateTimeUtil.convertWithZoneId(now, partitionInfo.getZoneId());
|
||||
ZonedDateTime hourAgo = zdt.minusHours(1L);
|
||||
log.info("[lucky24WeekRankSettlement] zdt {} hourAgo {}, zdtDay {} hourAgoDay {}",
|
||||
zdt, hourAgo, zdt.getDayOfWeek(), hourAgo.getDayOfWeek());
|
||||
if (!zdt.getDayOfWeek().equals(DayOfWeek.MONDAY) || !hourAgo.getDayOfWeek().equals(DayOfWeek.SUNDAY)){
|
||||
continue;
|
||||
}
|
||||
bizExecutor.execute(() -> {
|
||||
service.settlement(partitionInfo.getId(), hourAgo);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user