Files
stock/README.md
T

109 lines
2.7 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.
# A股工具 · 用户体系
基于 **Go + PostgreSQL + Docker Compose** 的用户权限管理模块,角色覆盖:系统管理员、管理员、用户。前端界面复用 `refer/` 目录下的暗色主题设计语言。
## 技术栈
| 层 | 技术 |
|---|---|
| 后端 | Go 1.25 + Gin + GORM + JWT + bcrypt |
| 数据库 | PostgreSQL 18 |
| 前端 | React 18 + Vite + Tailwind CSS |
| 部署 | Docker Compose |
## 快速启动
```bash
# 1. 复制环境变量
cp .env.example .env
# 2. 启动服务(首次会编译 Go 后端,可能需要几分钟)
docker compose up -d
# 3. 等待数据库健康检查通过后,访问前端
open http://localhost:3018
```
## 默认端口
| 服务 | 端口 |
|---|---|
| 前端 | 3018 |
| 后端 API | 3019 |
| PostgreSQL | 5432 |
## 创建首个系统管理员
系统不内置默认账号。启动后,先注册一个普通用户,再通过 SQL 将其提升为系统管理员:
```bash
docker compose exec db psql -U stock -d stock -c "
UPDATE users SET role_id = (SELECT id FROM roles WHERE name = 'system_admin')
WHERE username = '你的用户名';
"
```
## 角色说明
| 角色 | 权限 |
|---|---|
| 系统管理员 | 管理管理员、用户、系统配置 |
| 管理员 | 管理普通用户 |
| 用户 | 访问业务功能、修改个人资料 |
## 主要 API
| 方法 | 路径 | 说明 | 权限 |
|---|---|---|---|
| POST | /api/auth/register | 注册(默认 user | 公开 |
| POST | /api/auth/login | 登录 | 公开 |
| GET | /api/auth/me | 当前用户 | 需登录 |
| POST | /api/auth/logout | 登出 | 需登录 |
| GET | /api/admin/users | 用户列表 | admin / system_admin |
| POST | /api/admin/users | 创建用户 | admin / system_admin |
| PUT | /api/admin/users/:id | 更新用户/角色 | admin / system_admin |
| DELETE | /api/admin/users/:id | 删除用户 | system_admin |
| GET | /api/admin/roles | 角色列表 | admin / system_admin |
## 目录结构
```
stock/
├── backend/ # Go 后端
│ ├── cmd/api/main.go
│ ├── internal/
│ │ ├── config/
│ │ ├── db/
│ │ ├── handlers/
│ │ ├── middleware/
│ │ ├── models/
│ │ └── routes/
│ ├── go.mod
│ └── Dockerfile
├── frontend/ # React 前端
│ ├── src/
│ ├── package.json
│ └── Dockerfile
├── docker-compose.yml
├── .env.example
└── README.md
```
## 开发
```bash
# 后端本地运行(需先启动 PostgreSQL)
cd backend
go run ./cmd/api
# 前端本地运行
cd frontend
npm install
npm run dev
```
## 注意事项
- 生产环境请务必修改 `JWT_SECRET`
- 首次启动时 GORM 会自动创建表并插入默认角色。