103 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Phase 6: 质量 & 前端 — 技术研究
**研究日期:** 2026-03-21
**阶段目标:** 数据解析测试覆盖QUAL-02+ 前端监控和清洗页面优化QUAL-06/07
---
## 1. QUAL-02数据解析和去重逻辑单元测试
### 现状
| 测试模块 | 文件 | 状态 |
|---------|------|------|
| dedup 30天窗口 | `tests/ingest/test_dedup.py` | ✅ 已有Phase 5 新增 6 个) |
| boss 解析函数 | 无 | ❌ 缺失 |
| qcwy 解析函数 | 无 | ❌ 缺失 |
| zhilian 解析函数 | 无 | ❌ 缺失 |
### 需要测试的函数(`app/services/ingest/configs/`
**boss.py**
- `_extract_job_id(data)``data["jobBaseInfoVO"]["jobId"]`
- `_extract_company_name(data)``data["name"]``data["companyFullInfoVO"]["name"]`
- `_build_boss_push(data)` → 完整 push dict
**qcwy.py**
- `_extract_job_id(data)``data["jobId"]`
- `_extract_update_dt(data)``data["updateDateTime"]`
- `_extract_company_name(data)``data["companyName"]``data["company_name"]`
- `_build_qcwy_push(data)` → 完整 push dict包含 welfare 列表处理)
**zhilian.py**
- `_extract_number(data)``data["number"]`
- `_extract_fpt(data)``data["firstPublishTime"]`
- `_extract_company_name(data)``data["companyName"]``data["name"]`
- `_build_zhilian_push(data)` → 完整 push dict
### 测试策略
- 每个函数:正常字段场景 + 缺字段场景(返回 None
- `_build_*_push`:关键字段映射 + None 值降级
- 总计:约 24-30 个测试
---
## 2. QUAL-06前端爬虫监控页面
### 现状
现有页面(`web/src/views/cleaning/monitor.vue`)显示的是 **公司清洗监控**MySQL 队列状态),
**不是**爬虫职位抓取监控。
**成功标准要求(缺口):**
- ❌ 各平台最近抓取时间
- ❌ 数量趋势(历史入库量趋势图)
- ❌ 错误状态
### 后端 ClickHouse 可查询的数据
- `job_data.boss_job / qcwy_job / zhilian_job` 表有 `created_at` 字段
- 可以按天统计最近 7 天每个平台的入库数量
- 最近一条记录的 `created_at` = 最近抓取时间
### 方案
`recruitment/` 模块中已有三平台数据查看页面boss/qcwy/zhilian index.vue
可以在现有 `recruitment/components/PlatformData.vue` 顶部增加统计卡片:
- 总数量、今日入库量、最近抓取时间
或者新建一个 **爬虫数据统计 API**(后端)+ 在 `monitor.vue` 中加一个爬虫入库统计区域。
**决策(较小改动):**
1. 后端新增 `GET /job/data/stats?platform=boss&days=7` 端点,返回:
- `total`: 总量
- `today`: 今日新增
- `last_ingest_at`: 最近入库时间
- `daily_counts`: 近 7 天每日入库量(用于趋势展示)
2.`monitor.vue` 顶部(现有 metric-grid 之前)新增爬虫入库数量卡片
---
## 3. QUAL-07前端数据清洗管理页面
### 现状
`cleaning/monitor.vue`1191行已包含
- ✅ 待清洗公司列表(队列表格)
- ✅ 触发清洗(按来源批量执行)
- ✅ 查看结果JSON 模态窗口)
**现有缺口(成功标准 4 实际满足):**
- ✅ 查看待清洗公司列表 → 已有
- ✅ 触发清洗 → 已有
- ✅ 查看结果 → 已有
**结论:** QUAL-07 基本满足,主要补充文档/说明,或轻微 UI 优化。
---
## 4. 计划分解
| 计划 | 内容 | 要求 |
|------|------|------|
| **Plan 01** | 三平台 _extract_*/_build_*_push 函数单元测试(约 25 个) | QUAL-02 |
| **Plan 02** | 后端新增爬虫统计 API + 前端 monitor.vue 添加爬虫入库统计区域 | QUAL-06/07 |