library-picturebook-activity/docs/legacy/SCHOOL_MODULES.md
aid 418aa57ea8 Day4: 超管端设计优化 + UGC绘本创作社区P0实现
一、超管端设计优化
- 文档管理SOP体系建立,docs目录重组
- 统一用户管理:跨租户全局视角,合并用户管理+公众用户
- 活动监管全模块重构:全部活动(统计卡片+阶段筛选+SuperDetail详情页)、报名数据/作品数据/评审进度(两层合一扁平列表)、成果发布(去Tab+统计+隐藏写操作)
- 菜单精简:移除评委管理/评审规则/通知管理
- Bug修复:租户编辑丢失隐藏菜单、pageSize限制、主色统一

二、UGC绘本创作社区P0
- 数据库:10张新表(user_works/user_work_pages/work_tags等)
- 子女账号独立化:Child升级为独立User,家长切换+独立登录
- 用户作品库:CRUD+发布审核,8个API
- AI创作流程:提交→生成→保存到作品库,4个API
- 作品广场:首页改造为推荐流,标签+搜索+排序
- 内容审核(超管端):作品审核+作品管理+标签管理
- 活动联动:WorkSelector作品选择器
- 布局改造:底部5Tab(发现/创作/活动/作品库/我的)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 22:20:25 +08:00

5.9 KiB
Raw Blame History

学校管理模块

1. 功能概述

学校管理模块提供完整的学校组织架构和人员管理功能,包括学校信息、年级、班级、部门、教师和学生的管理。

2. 核心功能

2.1 学校信息管理

功能描述

  • 管理学校基本信息(地址、电话、校长、建校时间等)
  • 上传学校 Logo
  • 设置学校网站

用户角色

  • 超级管理员:创建和管理所有学校
  • 学校管理员:管理本学校信息

业务规则

  • 每个租户对应一个学校
  • 学校信息与租户信息一对一关联

2.2 年级管理

功能描述

  • 创建和管理年级(一年级、二年级等)
  • 设置年级级别(用于排序)
  • 年级编码唯一性校验

用户角色

  • 学校管理员:管理本学校年级

业务规则

  • 年级编码在租户内唯一
  • 年级级别在租户内唯一(用于排序)
  • 删除年级前需先删除所有班级

2.3 班级管理

功能描述

  • 创建和管理班级(行政班级和兴趣班)
  • 设置班级容量
  • 管理班级学生

用户角色

  • 学校管理员:管理所有班级
  • 班主任:管理本班级学生

业务规则

  • 行政班级type=1
    • 学生必须属于一个行政班级
    • 一个学生只能属于一个行政班级
  • 兴趣班type=2
    • 学生可以加入多个兴趣班
    • 通过多对多关联表管理

2.4 部门管理

功能描述

  • 创建和管理部门(支持树形结构)
  • 设置部门层级关系
  • 管理部门教师

用户角色

  • 学校管理员:管理所有部门

业务规则

  • 部门支持多级嵌套(树形结构)
  • 教师必须归属于一个部门
  • 删除部门前需先转移或删除该部门下的所有教师

2.5 教师管理

功能描述

  • 创建教师账号(自动创建 User 记录)
  • 管理教师信息(工号、部门、科目、职称等)
  • 教师账号激活/停用

用户角色

  • 学校管理员:管理所有教师
  • 部门负责人:查看本部门教师

业务规则

  • 教师账号与 User 表一对一关联
  • 工号在租户内唯一
  • 教师必须归属于一个部门
  • 删除教师账号时,级联删除 User 记录

2.6 学生管理

功能描述

  • 创建学生账号(自动创建 User 记录)
  • 管理学生信息(学号、班级、家长信息等)
  • 学生账号激活/停用
  • 管理学生兴趣班

用户角色

  • 学校管理员:管理所有学生
  • 班主任:管理本班级学生

业务规则

  • 学生账号与 User 表一对一关联
  • 学号在租户内唯一
  • 学生必须属于一个行政班级
  • 学生可以加入多个兴趣班
  • 删除学生账号时,级联删除 User 记录

3. 数据模型

Tenant (租户/学校)
├── School (学校信息) [1:1]
├── Grade (年级) [1:N]
│   └── Class (班级) [1:N]
│       ├── Student (学生) [1:N, 仅行政班级]
│       └── StudentInterestClass [N:M, 仅兴趣班]
├── Department (部门) [1:N, 树形结构]
│   └── Teacher (教师) [1:N]
└── User (用户) [1:N]
    ├── Teacher [1:1]
    └── Student [1:1]

技术架构

4. 关键业务规则

  1. 数据隔离:所有数据通过 tenantId 实现租户隔离
  2. 用户统一:教师和学生都基于 User 表,通过扩展表存储特定信息
  3. 级联删除:删除租户时,级联删除所有相关数据
  4. 限制删除:删除部门/班级前,需先处理关联的教师/学生

1. 后端架构

backend/
├── src/
│   ├── school/              # 学校管理模块
│   │   ├── schools/
│   │   ├── grades/
│   │   ├── classes/
│   │   ├── departments/
│   │   ├── teachers/
│   │   └── students/

2. 前端架构

frontend/
├── src/
│   ├── views/
│   │   ├── school/          # 学校管理页面
│   │   │   ├── schools/
│   │   │   ├── grades/
│   │   │   ├── classes/
│   │   │   ├── departments/
│   │   │   ├── teachers/
│   │   │   └── students/

权限设计

1. 角色规划

学校管理员school_admin

  • 学校管理school:*
  • 年级管理grade:*
  • 班级管理class:*
  • 部门管理department:*
  • 教师管理teacher:*
  • 学生管理student:*

教师teacher

  • 比赛查看contest:read
  • 比赛报名contest:register
  • 作品提交work:submit
  • 作品查看work:read
  • 学生管理student:read本班级

学生student

  • 比赛查看contest:read
  • 比赛报名contest:register
  • 作品提交work:submit
  • 作品查看work:read自己的作品
  • 结果查看result:read

2. 权限编码

2.1 学校管理权限

school:create      # 创建学校
school:read        # 查看学校
school:update      # 更新学校
school:delete      # 删除学校

grade:create       # 创建年级
grade:read         # 查看年级
grade:update       # 更新年级
grade:delete       # 删除年级

class:create       # 创建班级
class:read         # 查看班级
class:update       # 更新班级
class:delete       # 删除班级

department:create  # 创建部门
department:read    # 查看部门
department:update  # 更新部门
department:delete  # 删除部门

teacher:create     # 创建教师
teacher:read       # 查看教师
teacher:update     # 更新教师
teacher:delete     # 删除教师

student:create     # 创建学生
student:read       # 查看学生
student:update     # 更新学生
student:delete     # 删除学生