Files
stock/README.md
T

108 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 |
## 默认系统管理员
系统启动时会自动创建一个系统管理员账号(仅当不存在时):
| 用户名 | 密码 |
|---|---|
| `system_admin` | `system_admin` |
整个系统只能有一个系统管理员账号,无法通过管理后台再创建或提升其他系统管理员。
## 角色说明
| 角色 | 权限 |
|---|---|
| 系统管理员 | 管理管理员、用户、系统配置 |
| 管理员 | 管理普通用户 |
| 用户 | 访问业务功能、修改个人资料 |
## 主要 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 会自动创建表并插入默认角色。