fix(history): 重构特码冷热功能 — 改为弹窗列表展示每期相对于前N期的冷热状态

改为批量查询模式:每期特码相对于它前面N期的出现频率判定冷热
弹窗内以表格形式展示所有期号、特码球、冷热标签、次数、排名
支持调整向前期数(10-100),打开弹窗自动查询
This commit is contained in:
2026-04-24 20:06:37 +08:00
parent efdef3798e
commit 9881f75e59
5 changed files with 187 additions and 199 deletions
@@ -1,35 +1,35 @@
---
description: 在history页面新增特码冷热查询功能 — 选定某一期,向前推算y期,判定该期特码属于冷号还是热号
description: 在history页面新增特码冷热列表功能 — 每期特码相对于它前面N期的冷热状态
status: complete
date: 2026-04-24
---
# Quick Task Summary: 特码冷热查询
# Quick Task Summary: 特码冷热列表
## What was built
新增「特码冷热查询」功能,允许用户选择任意历史期号,设定向前追溯期数(10-100期),系统自动判定该期特码在追溯范围内属于冷号、温号还是热号
新增「特码冷热列表」功能,以弹窗表格形式展示每一期特码相对于它前面 N 期的冷热状态
### 核心逻辑
- 对每一期,取它**前面** N 期(不包含自身)的历史数据
- 统计这 N 期内 49 个号码各自作为特码的出现次数
- 计算平均值(N / 49),对比该期特码的出现次数:
- **热号**:出现次数 > 平均值 × 1.5
- **冷号**:出现次数 < 平均值 × 0.5
- **温号**:介于两者之间
## Changes made
### Backend — Model (`application/admin/model/History.php`)
- 新增 `getSpecialHotColdByExpect($expect, $lookback)` 方法
- 逻辑:根据指定期号找到该期特码,向前取 lookback 期数据,统计49个号码各自的出现次数
- 判定标准:出现次数 > 平均值×1.5 → 热号;< 平均值×0.5 → 冷号;其余为温号
- 返回包含:特码值、出现次数、平均值、冷热状态、频率排名、热号Top5、冷号Top5
### Model (`application/admin/model/History.php`)
- `getSpecialHotColdList($lookback, $limit)` — 批量查询,返回每期的冷热状态数组
### Backend — Controller (`application/admin/controller/History.php`)
- 新增 `specialHotColdAction()` 接口方法
- 接收 `expect`(期号,必填)和 `lookback`(向前期数,默认30,范围10-100)
- 已加入 `noNeedRight` 白名单
### Controller (`application/admin/controller/History.php`)
- `specialHotColdAction()` — AJAX 接口,接收 `lookback`(默认30)和 `limit`(默认100
### Frontend — View (`application/admin/view/history/index.html`)
- 在 toolbar 新增「特码冷热」按钮(红色主题,fa-fire 图标)
### Frontend — JS (`public/assets/js/backend/history.js`)
- 新增 `showSpecialHotColdDialog()` — 弹窗包含:期号下拉选择(加载最近50期)、向前期数输入框、查询按钮
- 新增 `querySpecialHotCold()` — AJAX 请求后端
- 新增 `renderSpecialHotCold()` — 卡片式渲染结果:大号球显示特码、冷热状态标签、统计数据、热号/冷号Top5球
### Frontend (`history.js`)
- `showSpecialHotColdDialog()` — 弹窗,包含向前期数输入框 + 查询按钮
- `querySpecialHotCold()` — AJAX 请求
- `renderSpecialHotCold()` — 表格渲染:期号、特码球(带波色)、冷热标签、出现次数、平均次数、频率排名;热号行淡红背景、冷号行淡蓝背景
## Commit
`2513bbb`
`d4a5c30`