Files
amlhc/.planning/quick/260424-roj-history-y/260424-roj-PLAN.md
T
916117771 efdef3798e feat(history): 新增特码冷热查询功能 — 选定某一期向前y期判定冷热号
在history页面添加「特码冷热」按钮,用户可选择指定期号并设定向前期数
系统统计该期特码在向前范围内的出现频率,与平均值对比判定冷/温/热号
2026-04-24 20:07:00 +08:00

49 lines
2.3 KiB
Markdown

---
description: 在history页面新增特码冷热号查询功能 — 选定某一期,向前推算y期,判断该期特码属于冷号还是热号
tasks: 3
must_haves:
- 后端接口接收 expect(期号) 和 lookback(向前期数) 参数
- 计算逻辑: 从指定期号往前lookback期, 统计该期特码在lookback范围内的出现频率, 判定冷热
- 前端弹窗: 选择期号 + 输入向前期数 + 展示冷热判定结果
plan_model: quick
---
# Quick Plan: 在history页面新增特码冷热号查询功能
## Task 1: 后端 Model — 添加 getSpecialHotColdByExpect 方法
**Files:** `application/admin/model/History.php`
**Action:** 新增方法 `getSpecialHotColdByExpect($expect, $lookback)`
- 根据指定期号 `expect` 查询到该期数据,获取该期特码 `num7`
- 从该期往前数 `lookback` 期(不包含该期本身),统计这期间每个号码的出现次数
- 计算该特码在 lookback 范围内的出现次数和频率
- 根据频率分布判定冷热:将该号码的出现次数与所有号码的平均值比较
- 高于平均值 1.5 倍以上 → 热号
- 低于平均值 0.5 倍以下 → 冷号
- 介于之间 → 温号
- 返回结构化数据:`{expect, specialNum, lookback, count, avgCount, status, rank, totalPeriods}`
## Task 2: 后端 Controller — 添加 specialHotColdAction 方法
**Files:** `application/admin/controller/History.php`
**Action:** 新增 `specialHotColdAction()` 方法
- 接收 AJAX GET 参数:`expect`(期号,必填), `lookback`(向前期数,默认30,范围10-100)
- 参数校验后调用 Model 方法
- 返回 JSON 响应
## Task 3: 前端 JS — 添加按钮、弹窗和渲染
**Files:** `application/admin/view/history/index.html`, `public/assets/js/backend/history.js`
**Action:**
-`index.html` 的 toolbar 添加一个「特码冷热」按钮
-`history.js``index` 方法中绑定点击事件
-`api` 对象中添加:
- `showSpecialHotColdDialog()` — 展示弹窗,包含:当前最新期号显示、期号选择下拉框、向前期数输入框、查询按钮、结果展示区
- `querySpecialHotCold(expect, lookback, layero)` — AJAX 请求后端接口
- `renderSpecialHotCold(data, layero)` — 渲染冷热判定结果,用颜色区分冷/温/热