Files
maxf 563052575a 阶段一(MVP 全栈)**全部完成**。最终交付如下:
## ✅ 完整系统已可运行

```
F:\coding\oil-price-monitoring\
├─ cmd/server/main.go           入口(DB + cron + HTTP)
├─ internal/
│  ├─ api/        A1-A17 全部接口 + 路由 + 前端挂载
│  ├─ auth/       bcrypt / 会话 / auth+admin 中间件
│  ├─ crawler/    三路采集器(sina/ndrc/qiyoujiage)+ 测试
│  ├─ cron/       T1-T6 调度 + 预测 + 推送 + 工作日计算
│  ├─ db/         schema.sql(8 表)+ 迁移 + 测试
│  ├─ model/      领域模型
│  ├─ push/       飞书/企微/钉钉/SMTP 发送器 + 测试
│  ├─ service/    共享 impact / province 服务
│  └─ web/        前端 6 页面(embed 进二进制)
├─ Dockerfile + docker-compose.yml + .gitignore
└─ docs/          10.概要设计 + 20-24.详细设计(6 份)
```

## 🚀 运行方式

```bash
# 本地
go run ./cmd/server           # 打开 http://localhost:8080

# 服务器(Docker)
docker compose up -d --build  # 单镜像 ~20MB,数据挂载 ./data
```

## ✅ 真实数据链路验证(本次开发实测)

| 链路 | 结果 |
|---|---|
| 新浪原油 | `Brent=99.45 WTI=93.24`(实时) |
| 发改委今日调控 | 汽 **+395 元/吨(应调+830)** 柴 +385(应调+800),生效 9/25 00:00 |
| 31 省价格 | 北京 92#=8.29 / 95#=8.83 / 98#=10.33 / 0#=8.02 |
| API 端到端 | dashboard/provinces/history/vehicles CRUD/settings/auth 全部通过 |
| 前端页面 | 6 页全部 200,静态资源正常 |

## 📌 系统能力速览

- **匿名访客**:看行情 / 省份切换(最近 5 省 LRU)/ 历史调价 / 浏览器定位(Geolocation→高德逆编码)
- **登录用户**:车辆管理(CRUD + 调价成本测算 + 加油建议)、个人推送渠道配置
- **后台自动**:每日 05:00 原油采集→05:05 预测;调价日 16-18 点高频监测发改委→入库→重算预测→同步 31 省→按用户推送(飞书/企微/钉钉/SMTP)
- **admin**:首用户自动成为管理员,可配高德 Key / SMTP 服务器
2026-09-24 21:13:58 +08:00

27 lines
773 B
AMPL

module oil-price-monitor
go 1.27.1
require (
github.com/PuerkitoBio/goquery v1.13.0
github.com/go-chi/chi/v5 v5.3.2
github.com/robfig/cron/v3 v3.0.1
golang.org/x/crypto v0.57.0
golang.org/x/text v0.42.0
modernc.org/sqlite v1.59.0
)
require (
github.com/andybalholm/cascadia v1.3.4 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/mattn/go-isatty v0.0.24 // indirect
github.com/ncruces/go-strftime v1.0.0 // indirect
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
golang.org/x/net v0.58.0 // indirect
golang.org/x/sys v0.48.0 // indirect
modernc.org/libc v1.75.7 // indirect
modernc.org/mathutil v1.7.1 // indirect
modernc.org/memory v1.12.1 // indirect
)