一个基于 Go + Vue 的 Web 端基金管理系统,提供实时看板、持仓管理、交易记录和 AI 投资建议等功能。
- 实时看板:基金行情、持仓收益、今日盈亏等实时展示
- 持仓管理:多基金持仓跟踪、成本收益计算
- 交易记录:买入/卖出记录管理
- 智能分析:基于大模型的个性化投资建议
- 多用户支持:家庭成员共享使用
- 框架: Gin
- ORM: GORM
- 数据库: PostgreSQL
- 缓存: Redis
- WebSocket: gorilla/websocket
- 定时任务: robfig/cron
- 日志: zap
- 配置管理: Viper
- 框架: Vue 3
- UI 组件: Element Plus
- 图表: ECharts
stock/
├── cmd/
│ ├── api/main.go # API服务入口
│ └── crawler/main.go # 爬虫服务入口
├── internal/
│ ├── app/ # 应用程序
│ ├── config/ # 配置管理
│ ├── models/ # 数据模型
│ ├── repository/ # 数据访问层
│ ├── service/ # 业务逻辑层
│ ├── crawler/ # 数据爬取模块
│ ├── ai/ # 大模型接口
│ ├── websocket/ # WebSocket推送
│ ├── handler/ # HTTP处理器
│ ├── router/ # 路由配置
│ └── scheduler/ # 定时任务
├── web/ # 前端资源
├── configs/
│ └── config.yaml
├── Dockerfile
├── docker-compose.yml
└── README.md
- Go 1.21+
- PostgreSQL 13+
- Redis 6+
- Node.js 16+ (前端开发)
cd /Users/bytedance/go/src/daily/stock编辑 configs/config.yaml,修改数据库和 Redis 连接信息:
database:
host: localhost
port: 5432
user: postgres
password: "${DB_PASSWORD}"
dbname: fund_management
redis:
host: localhost
port: 6379
password: "${REDIS_PASSWORD}"docker-compose up -d postgres redisgo run cmd/api/main.go首次运行会自动创建数据库表。
go run cmd/api/main.go服务将在 http://localhost:8080 启动。
go run cmd/crawler/main.go| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/v1/auth/register |
用户注册 |
| POST | /api/v1/auth/login |
用户登录 |
| GET | /api/v1/user/profile |
获取用户信息 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/v1/funds |
获取基金列表 |
| GET | /api/v1/funds/search |
搜索基金 |
| GET | /api/v1/funds/:code |
获取基金详情 |
| GET | /api/v1/funds/:code/history |
获取历史净值 |
| GET | /api/v1/funds/:code/realtime |
获取实时估值 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/v1/transactions |
获取交易记录 |
| POST | /api/v1/transactions |
创建交易 |
| GET | /api/v1/transactions/:id |
获取交易详情 |
| DELETE | /api/v1/transactions/:id |
删除交易 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/v1/positions |
获取持仓列表 |
| GET | /api/v1/positions/:code |
获取持仓详情 |
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/v1/dashboard/overview |
看板总览 |
| GET | /api/v1/dashboard/profit |
收益汇总 |
| GET | /api/v1/dashboard/advice |
AI投资建议 |
| POST | /api/v1/dashboard/chat |
AI对话 |
系统配置了以下定时任务:
- 盘中每分钟 (9:00-15:00): 更新实时估值
- 每天晚上8点: 更新昨日净值
- 每天晚上9点: 更新历史净值
系统使用天天基金网的免费 API 接口:
- 实时估值:
http://fundgz.1234567.com.cn/js/{基金代码}.js - 基金详情:
http://fundf10.eastmoney.com/F10DataApi.aspx - 历史净值:
http://fund.eastmoney.com/f10/F10DataApi.aspx
go test ./...go build -o bin/api cmd/api/main.go
go build -o bin/crawler cmd/crawler/main.go# 构建镜像
docker build -t fund-management:latest .
# 使用 docker-compose 启动
docker-compose up -dMIT