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

245 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 学校管理模块
### 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 # 删除学生
```