cosmo_backend/ADMIN_PROGRESS.md

122 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 后台管理系统 - 进度报告
## 已完成的工作
### 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 表控制
- 当前已创建管理员用户,可直接登录测试