Skip to content

Commit 9470e5e

Browse files
committed
fix HousingSaleScheduler defect
1 parent cd73655 commit 9470e5e

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

src/main/java/com/phantoms/phantomsbackend/service/scheduler/HousingSaleScheduler.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,14 @@ private void filterAndNotifyNewHouses(List<HousingSale> allHousingSales) {
408408
List<HousingSale> availableHouses = allHousingSales.stream()
409409
.filter(sale -> sale.getPurchaseType() == PURCHASE_TYPE_FCFS || sale.getPurchaseType() == PURCHASE_TYPE_LOTTERY)
410410
.filter(sale -> targetAreas.contains(sale.getArea()))
411+
.filter(sale -> {
412+
// 计算推测的截止时间
413+
OffsetDateTime estimatedEndTime = calculateEstimatedEndTime(sale);
414+
// 获取当前时间
415+
OffsetDateTime now = OffsetDateTime.now();
416+
// 只保留截止时间在当前时间之后的房屋
417+
return estimatedEndTime.isAfter(now);
418+
})
411419
.collect(Collectors.toList());
412420

413421
logger.info("找到 {} 套可购买房屋", availableHouses.size());
@@ -525,6 +533,17 @@ private void sendBriefHouseNotification(String server, List<HousingSale> houses)
525533
// 获取服务器名称
526534
String serverName = SERVER_NAME_MAP.getOrDefault(server, server);
527535

536+
// 对房屋列表进行排序,L房优先于M房
537+
houses.sort((h1, h2) -> {
538+
// L房(SIZE_L=2)排在M房(SIZE_M=1)前面
539+
if (h1.getSize() == SIZE_L && h2.getSize() == SIZE_M) {
540+
return -1;
541+
} else if (h1.getSize() == SIZE_M && h2.getSize() == SIZE_L) {
542+
return 1;
543+
}
544+
return 0;
545+
});
546+
528547
// 优先尝试发送表格图片
529548
try {
530549
// 生成表格图片

0 commit comments

Comments
 (0)