From 82a34ff1ab0f5c2dd8b77ed2d7377cbf3c217005 Mon Sep 17 00:00:00 2001 From: Mars Date: Mon, 14 Jul 2025 15:07:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=91=A8=E5=85=AD=E6=8A=95?= =?UTF-8?q?=E6=B3=A8=E5=91=A8=E6=97=A5=E4=B8=AD=E5=A5=96=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/scheduler.py | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/backend/scheduler.py b/backend/scheduler.py index 0b75ba7..c2e262b 100644 --- a/backend/scheduler.py +++ b/backend/scheduler.py @@ -216,31 +216,44 @@ class LotteryScheduler: yesterday = datetime.now() - timedelta(days=1) target_date = yesterday.strftime('%Y-%m-%d') current_weekday = datetime.now().isoweekday() - if current_weekday == 6: # 周六 - logger.info("周六休息,不推送中奖检查") - return - if current_weekday in [1, 3, 5, 7]: - lottery_type = 'ssq' - BetModel = SSQLotteryBetRecord - LotteryModel = SSQLottery - fixed_numbers = {'red': [4, 6, 7, 12, 18, 19], 'blue': [9]} - else: + + # 移除错误的周六休息逻辑 - 周六投注的大乐透在周日需要检查中奖 + # 根据昨天的日期确定彩票类型 + yesterday_weekday = yesterday.isoweekday() + + if yesterday_weekday in [1, 3, 6]: # 昨天是周一、三、六,投注的是大乐透 lottery_type = 'dlt' BetModel = DLTLotteryBetRecord LotteryModel = DLTLottery fixed_numbers = {'red': [4, 6, 9, 18, 19], 'blue': [7, 12]} + elif yesterday_weekday in [2, 4, 7]: # 昨天是周二、四、日,投注的是双色球 + lottery_type = 'ssq' + BetModel = SSQLotteryBetRecord + LotteryModel = SSQLottery + fixed_numbers = {'red': [4, 6, 7, 12, 18, 19], 'blue': [9]} + else: # 昨天是周五,休息日,没有投注 + logger.info("昨日是周五休息日,没有投注记录,跳过中奖检查") + return + db = SessionLocal() try: target_batch_id_pattern = f"{yesterday.strftime('%Y%m%d')}%" bet_records = db.query(BetModel).filter( BetModel.batch_id.like(target_batch_id_pattern) ).all() + + # 先执行中奖检查更新 self.updater.check_and_update_bet_wins(lottery_type, db) + + # 重新查询更新后的记录 updated_records = db.query(BetModel).filter( BetModel.batch_id.like(target_batch_id_pattern) ).all() + + # 查询昨天的开奖数据 last_draw = db.query(LotteryModel).filter( LotteryModel.open_time == yesterday.date()).first() + open_code_str = "" if last_draw: if lottery_type == 'ssq': @@ -258,6 +271,7 @@ class LotteryScheduler: red_str = ' '.join(f"{n:02d}" for n in open_red) blue_str = ' '.join(f"{n:02d}" for n in open_blue) open_code_str = f"{red_str} | {blue_str}" + # 固定号码开奖比对 fixed_result = None if last_draw: