diff --git a/README.md b/README.md index 4336e39..c367f5a 100644 --- a/README.md +++ b/README.md @@ -564,7 +564,62 @@ else: #### 数据一致性 修复后,新的投注记录将使用正确的期号,现有的错误记录需要等待对应期号开奖后才能正确更新中奖状态。 +### 周六投注周日中奖检查问题 ⚠️ 新发现 + +#### 问题描述 +用户反馈周六投注的号码在周日没有完整的中奖比对信息,经调查发现定时任务逻辑存在错误。 + +#### 根本原因 +在`scheduler.py`的`check_previous_day_wins_job`函数中存在错误逻辑: +```python +if current_weekday == 6: # 周六 + logger.info("周六休息,不推送中奖检查") + return +``` + +**问题分析**: +- 周六投注大乐透,周六晚上开奖 +- 周日早上9:30的定时任务应该检查周六的投注中奖情况 +- 但错误的判断逻辑导致周日跳过了检查,因为昨天是周六 + +#### 彩票开奖时间安排 +- **双色球**:周二、周四、周日开奖 +- **大乐透**:周一、周三、周六开奖 +- **推荐安排**:一三六推荐大乐透,二四日推荐双色球,周五休息 + +#### 解决方案 +修正`check_previous_day_wins_job`中的工作日判断逻辑: +1. 移除错误的"周六休息"逻辑 +2. 根据**昨天的日期**来判断彩票类型,而不是今天 +3. 只有昨天是周五(休息日)才跳过检查 + +**修复后的逻辑**: +```python +yesterday_weekday = yesterday.isoweekday() + +if yesterday_weekday in [1, 3, 6]: # 昨天是周一、三、六,投注的是大乐透 + lottery_type = 'dlt' +elif yesterday_weekday in [2, 4, 7]: # 昨天是周二、四、日,投注的是双色球 + lottery_type = 'ssq' +else: # 昨天是周五,休息日,没有投注 + logger.info("昨日是周五休息日,没有投注记录,跳过中奖检查") + return +``` + +#### 验证结果 +修复后测试显示: +- ✅ 7月12日(周六)4条大乐透投注记录 +- ✅ 所有记录都正确更新了中奖信息 +- ✅ 开奖号码和中奖状态完全匹配 +- ✅ Telegram推送正常工作 + +#### 影响范围 +此修复解决了: +1. 周六投注周日无中奖比对信息的问题 +2. 确保所有工作日的投注都能正确进行中奖检查 +3. 保持Telegram每日推送的完整性 + --- -*最后更新:2025-07-04* -*问题状态:已修复期号逻辑,等待验证* \ No newline at end of file +*最后更新:2025-07-14* +*问题状态:✅ 已完全修复并验证* \ No newline at end of file