feat(phase-2): add trend chart analysis - grid view of number history

This commit is contained in:
2026-04-21 23:33:39 +08:00
parent f2b432a9f4
commit 616239392a
5 changed files with 203 additions and 1 deletions
+50
View File
@@ -30,6 +30,56 @@ class History extends Model
];
/**
* 获取走势图数据
* @param int $periods 查询最近多少期
* @param string $type 查询类型 all=全部号码 special=仅特码
* @return array {expects: [], data: [[num1,...], ...], colorMap: []}
*/
public function getTrendData($periods = 30, $type = 'all')
{
// 查询波色映射
$num_model = new Num();
$colorMap = $num_model->column('color', 'num');
$history = $this
->field('expect,num1,num2,num3,num4,num5,num6,num7,openTime')
->order('openTime', 'asc')
->limit($periods)
->select();
if (empty($history)) {
return ['expects' => [], 'data' => [], 'colorMap' => []];
}
$expects = [];
$data = [];
foreach ($history as $row) {
$expects[] = (string)$row['expect'];
if ($type === 'special') {
$num = (int)$row['num7'];
$data[] = [
'num7' => $num,
'num7_color' => isset($colorMap[$num]) ? $colorMap[$num] : '—'
];
} else {
$row_data = [];
for ($i = 1; $i <= 7; $i++) {
$num = (int)$row['num' . $i];
$row_data['num' . $i] = $num;
$row_data['num' . $i . '_color'] = isset($colorMap[$num]) ? $colorMap[$num] : '—';
}
$data[] = $row_data;
}
}
return [
'expects' => $expects,
'data' => $data,
'colorMap' => $colorMap
];
}
/**
* 计算遗漏号码
* @param int $periods 查询最近多少期