# 用户体系 基于 **Go + PostgreSQL + Docker Compose** 的用户权限管理模块,角色覆盖:系统管理员、管理员、用户。 ## 技术栈 | 层 | 技术 | |---|---| | 后端 | 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/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 会自动创建表并插入默认角色。