cosmo_backend/ADMIN_PROGRESS.md

122 lines
2.9 KiB
Markdown
Raw Normal View History

2025-12-02 06:29:38 +00:00
# 后台管理系统 - 进度报告
## 已完成的工作
### 1. 数据库设计和初始化 ✅
#### 创建的数据库表:
- **users** - 用户表
- id (主键)
- username (用户名,唯一)
- password_hash (密码哈希)
- email (邮箱)
- full_name (全名)
- is_active (激活状态)
- created_at, updated_at, last_login_at (时间戳)
- **roles** - 角色表
- id (主键)
- name (角色名,如 'admin', 'user')
- display_name (显示名称)
- description (描述)
- created_at, updated_at
- **user_roles** - 用户-角色关联表 (多对多)
- user_id, role_id (复合主键)
- created_at
- **menus** - 菜单表
- id (主键)
- parent_id (父菜单ID支持树形结构)
- name (菜单名)
- title (显示标题)
- icon (图标名)
- path (路由路径)
- component (组件路径)
- sort_order (排序)
- is_active (激活状态)
- description (描述)
- created_at, updated_at
- **role_menus** - 角色-菜单关联表
- id (主键)
- role_id, menu_id
- created_at
### 2. 初始化数据 ✅
#### 角色数据:
- **admin** - 管理员角色(拥有所有权限)
- **user** - 普通用户角色(基本访问权限)
#### 管理员用户:
- 用户名:`cosmo`
- 密码:`cosmo`
- 邮箱admin@cosmo.com
- 角色admin
#### 菜单结构:
```
├── 控制台 (/admin/dashboard)
└── 数据管理 (父菜单)
├── 天体数据列表 (/admin/celestial-bodies)
├── 静态数据列表 (/admin/static-data)
└── NASA数据下载管理 (/admin/nasa-data)
```
### 3. 代码文件
#### 数据库模型 (ORM)
- `/backend/app/models/db/user.py` - 用户模型
- `/backend/app/models/db/role.py` - 角色模型
- `/backend/app/models/db/menu.py` - 菜单模型
#### 脚本
- `/backend/scripts/seed_admin.py` - 初始化管理员数据的脚本
#### 依赖
- 新增 `bcrypt==5.0.0` 用于密码哈希
### 4. 执行的脚本
```bash
# 1. 创建数据库表
./venv/bin/python scripts/init_db.py
# 2. 初始化管理员数据
./venv/bin/python scripts/seed_admin.py
```
## 数据库表关系
```
users ←→ user_roles ←→ roles
role_menus
menus (支持父子关系)
```
## 下一步工作
根据用户要求,后续需要实现:
1. **后台管理系统 - 天体数据列表**
- API接口CRUD操作
- 前端页面:列表、编辑、新增
2. **后台管理系统 - 静态数据列表**
- API接口管理星座、星系等静态数据
- 前端页面:分类管理
3. **后台管理系统 - NASA数据下载管理**
- API接口查看下载历史、触发数据更新
- 前端页面:数据下载状态监控
## 注意事项
- 所有密码使用 bcrypt 加密存储
- 菜单系统支持无限层级(通过 parent_id
- 角色-菜单权限通过 role_menus 表控制
- 当前已创建管理员用户,可直接登录测试