推送给招商

This commit is contained in:
houhuan committed 2025-12-07 21:04:24 +08:00
commit 1f669e1a1f
14 files changed
+1383

No files matched your search

+75
View File
@@ -0,0 +1,75 @@
# 自动化营业额数据推送与展示系统 技术架构
## 技术栈
- 后端:FastAPI(Python)
- 定时:APScheduler(内嵌)/ Celery(可选)
- 数据库:SQLite(开发默认)/ PostgreSQL(生产)
- 前端:React + Tailwind(或 Vue + Tailwind)
- 部署:Docker + Docker Compose
## 系统架构
```
[Generator & Scheduler] -> [FastAPI REST] -> [DB]
|
-> [Web UI]
-> [Notifier]
```
## 数据模型
- 表:`turnover`
- `id` INTEGER PK
- `date` DATE UNIQUE
- `amount` DECIMAL(12,2)
- `created_at` TIMESTAMP
- 表:`config`
- `key` TEXT PK
- `value` TEXT
## API 契约
- `GET /api/turnover/today` 返回当日数据
- `GET /api/turnover/range?start=YYYY-MM-DD&end=YYYY-MM-DD` 区间查询
- `GET /api/turnover/export.csv` 导出 CSV
- `POST /api/admin/recompute?date=YYYY-MM-DD` 重新生成指定日期(管理员)
## 定时方案
- APScheduler `cron` 每日 `00:05` 触发生成任务
- 任务幂等:同日重复执行将覆盖/更新当日记录
## 容器化
- `backend`:FastAPI + APScheduler
- `frontend`:静态构建产物挂载到 `nginx` 或 `vite preview`
- `db`:SQLite 挂载卷 / 可切换 PostgreSQL 服务
- `notifier`:邮件/Webhook 可选模块
## Docker Compose 示例
```yaml
services:
backend:
build: ./backend
env_file: .env
volumes:
- ./data:/app/data
ports:
- "8000:8000"
frontend:
build: ./frontend
ports:
- "3000:3000"
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: example
volumes:
- ./pgdata:/var/lib/postgresql/data
ports:
- "5432:5432"
```
## 异常与告警
- 生成失败:记录日志并触发邮件/Webhook(启用时)
- API 错误:统一异常处理中返回标准错误响应
## 安全与配置
- `.env` 管理数据库与通知凭据
- 简易登录:基于环境变量开关,默认关闭