@@ -67,8 +67,8 @@ public class HousingSaleScheduler {
6767 @ Value ("${housing.sale.notify.areas:0,1,2,3,4}" )
6868 private String notifyAreas ;
6969
70- // 每天0点执行
71- @ Scheduled (cron = "0 0 0 * * ?" )
70+ // UTC+8每天23:05执行
71+ @ Scheduled (cron = "0 5 15 * * ?" )
7272// @Scheduled(fixedRate = 60000) // 每分钟执行一次
7373 public void fetchAndProcessHousingSales () {
7474 try {
@@ -179,18 +179,6 @@ private String generateHouseDescription(HousingSale house) {
179179 return "优质房产" ;
180180 }
181181
182- /**
183- * 生成房屋描述文案
184- * 根据房屋特征生成吸引人的描述
185- */
186- private String generateBriefHouseDescription (HousingSale house ) {
187- String areaName = getAreaName (house .getArea ());
188- String sizeName = getSizeName (house .getSize ());
189- String purchaseType = house .getPurchaseType () == PURCHASE_TYPE_LOTTERY ? "抽" : "抢" ;
190-
191- return String .format ("%s%s房 %s" , areaName , sizeName , purchaseType );
192- }
193-
194182 /**
195183 * 房屋数据保存方法 - 优先批量保存,失败则降级为逐个保存
196184 */
@@ -526,28 +514,32 @@ private void sendBriefHouseNotification(String server, List<HousingSale> houses)
526514 HousingSale house = houses .get (i );
527515
528516 // 生成精简描述
529- String briefDesc = generateBriefHouseDescription (house );
530517 String areaName = getAreaName (house .getArea ());
531518 String sizeName = getSizeName (house .getSize ());
532519 String purchaseType = house .getPurchaseType () == PURCHASE_TYPE_LOTTERY ? "抽签" : "抢购" ;
533520 String regionType = getRegionTypeName (house .getRegionType ());
534521
522+ // 计算推测截止时间
523+ OffsetDateTime estimatedEndTime = calculateEstimatedEndTime (house );
524+
535525 // 构建单行房屋信息
536526 message .append (i + 1 ).append (". " )
537- .append (briefDesc ).append (" | " )
527+ .append (sizeName ).append (" | " )
538528 .append (areaName ).append (house .getSlot () + 1 ).append ("区" ).append (house .getId ()).append ("号 | " )
539- .append (formatPrice (house .getPrice ()));
529+ .append (formatPrice (house .getPrice ())).append (" | " )
530+ .append (regionType ).append (" | " )
531+ .append (formatTime (estimatedEndTime )).append ("截止" );
540532
541533 // 如果是抽签类型,显示参与人数
542534 if (house .getPurchaseType () == PURCHASE_TYPE_LOTTERY && house .getParticipate () != null ) {
543- message .append (" | " ).append (house .getParticipate ()).append ("人参与 " );
535+ message .append (" | " ).append (house .getParticipate ()).append ("参与 " );
544536 }
545537
546538 message .append ("\n " );
547539 }
548540
549541 // 添加底部提示
550- message .append ("\n 🔥 现正火热预约中!" );
542+ // message.append("\n🔥 现正火热预约中!");
551543
552544 // 发送单条合并消息
553545 oneBotService .sendGroupMessage (message .toString (), "595883141" );
@@ -673,7 +665,7 @@ private String getRegionTypeName(Integer regionType) {
673665
674666 private String formatPrice (Long price ) {
675667 if (price >= 10000 ) {
676- return String .format ("%.1f万 " , price / 10000.0 );
668+ return String .format ("%.1fw " , price / 10000.0 );
677669 }
678670 return price .toString ();
679671 }
0 commit comments