cosmo/backend/ADMIN_PROGRESS.md

2.9 KiB
Raw Permalink Blame History

后台管理系统 - 进度报告

已完成的工作

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. 执行的脚本

# 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 表控制
  • 当前已创建管理员用户,可直接登录测试