Browse Source

临时提交

master
王泽彦 8 months ago
parent
commit
5697c3187f
  1. 482
      学员端开发计划-前端任务.md
  2. 410
      学员端开发计划-后端任务.md
  3. 553
      学员端开发需求整合确认文档.md

482
学员端开发计划-前端任务.md

@ -0,0 +1,482 @@
# 学员端开发计划 - 前端任务
## 📱 **技术栈和环境**
- **框架**:UniApp + Vue2
- **平台**:微信小程序
- **UI组件**:uni-ui + 自定义组件
- **状态管理**:Vuex
- **网络请求**:uni.request封装
## ⚠️ **重要:分包配置要求**
**背景**:当前UniApp打包微信小程序容量已接近2M上限
**解决方案**:采用分包架构
- **主包**:只包含登录页和学员端落地页(控制在1.5M以内)
- **分包**:所有功能页面都放在student-pages分包中
- **目标**:确保小程序能正常发布和使用
---
## 📋 **前端开发任务清单**
### 🔧 **基础架构任务**
#### 1. **项目配置和环境搭建**
**负责人**:前端开发者
**工期**:1天
**任务内容**:
- [ ] 配置微信小程序开发环境
- [ ] 设置API基础URL和请求拦截器
- [ ] 配置token存储和自动携带
- [ ] 设置页面路由和tabBar配置
- [ ] 配置腾讯云COS上传参数
- [ ] **重要:配置分包结构,控制主包大小**
**分包配置要求**:
```json
// pages.json 分包配置
{
"pages": [
"pages/login/login", // 登录页 - 主包
"pages/home/home" // 学员端落地页 - 主包
],
"subPackages": [
{
"root": "student-pages",
"name": "student",
"pages": [
"profile/profile", // 个人信息页
"physical-test/list", // 体测数据页
"physical-test/detail", // 体测详情页
"course-schedule/list", // 课程安排页
"course-booking/list", // 课程预约页
"order/list", // 订单管理页
"contract/list", // 合同管理页
"knowledge/list", // 知识库页
"message/list" // 消息管理页
]
}
]
}
```
**主包内容(控制在1.5M以内)**:
- 登录页面
- 学员端落地页(个人信息概览+功能入口)
- 公共组件(必需的)
- 基础工具类
**分包内容**:
- 所有功能页面
- 页面专用组件
- 页面相关资源
**验收标准**:
- ✅ 小程序可正常启动和预览
- ✅ API请求能正确携带token
- ✅ 路由跳转正常
- ✅ 开发环境配置完整
- ✅ **主包大小控制在1.5M以内**
- ✅ **分包加载正常**
#### 2. **公共组件开发**
**负责人**:前端开发者
**工期**:2天
**任务内容**:
- [ ] 学员选择组件(支持多孩子切换)
- [ ] 头像上传组件(支持裁剪和压缩)
- [ ] PDF预览组件(uni.openDocument封装)
- [ ] 图片分享组件(PDF转图片分享)
- [ ] 消息渲染组件(5种消息类型)
- [ ] 趋势图组件(身高体重折线图)
**验收标准**:
- ✅ 所有组件功能完整可复用
- ✅ 组件接口设计合理
- ✅ 支持数据双向绑定
- ✅ 异常情况处理完善
---
### 📄 **页面开发任务**
#### 3. **登录页面**
**负责人**:前端开发者
**工期**:1天
**任务内容**:
- [ ] 手机号+密码登录表单
- [ ] 微信一键登录按钮
- [ ] 登录状态验证和跳转
- [ ] 首次登录密码设置提示
**API接口依赖**:
- `POST /api/login/unified` - 统一登录接口
- `POST /api/login/wechat` - 微信登录接口
**验收标准**:
- ✅ 手机号格式验证正确
- ✅ 密码长度验证正确
- ✅ 微信登录流程完整
- ✅ 登录成功后正确跳转
- ✅ 错误提示信息准确
#### 4. **学员端落地页(主包)**
**负责人**:前端开发者
**工期**:1天
**任务内容**:
- [ ] 用户欢迎信息展示(姓名+星期+入会时间)
- [ ] 学员选择卡片(多孩子切换)
- [ ] 功能模块入口导航
- [ ] 快捷信息概览
**页面结构**:
```
[用户信息区域]
- {name} 你好,今天是星期{x}
- 入会时间:{create_year_month}
- 年龄:{age}
[学员选择卡片]
- 学员下拉选择/切换按钮
- 当前选中学员信息
[功能入口区域]
- 个人信息管理 → 跳转分包页面
- 体测数据 → 跳转分包页面
- 课程安排 → 跳转分包页面
- 课程预约 → 跳转分包页面
- 订单管理 → 跳转分包页面
- 合同管理 → 跳转分包页面
- 知识库 → 跳转分包页面
- 消息管理 → 跳转分包页面
```
**API接口依赖**:
- `GET /api/student/list` - 获取学员列表
- `GET /api/student/summary/{id}` - 获取学员概览信息
**验收标准**:
- ✅ 用户信息正确计算和显示
- ✅ 学员切换功能正常
- ✅ 功能入口跳转正常
- ✅ 页面加载速度快
- ✅ **页面大小控制合理**
#### 5. **个人信息管理页面(分包)**
**负责人**:前端开发者
**工期**:1.5天
**任务内容**:
- [ ] 学员详细信息展示
- [ ] 学员基本信息编辑表单
- [ ] 头像上传功能
- [ ] 信息保存和验证
**页面结构**:
```
[学员详细信息]
- 头像显示/上传
- 基本信息表单
- 家庭信息表单
- 保存按钮
```
**API接口依赖**:
- `GET /api/student/info/{id}` - 获取学员详情
- `PUT /api/student/update/{id}` - 更新学员信息
- `POST /api/upload/avatar` - 头像上传
**验收标准**:
- ✅ 学员信息正确显示
- ✅ 头像上传压缩到2M以下
- ✅ 表单验证完整
- ✅ 保存成功提示
- ✅ **分包页面加载正常**
#### 6. **体测数据页面(分包)**
**负责人**:前端开发者
**工期**:2天
**任务内容**:
- [ ] 体测记录列表展示
- [ ] 身高体重数据显示
- [ ] 体测报告PDF预览
- [ ] 身高体重趋势图
- [ ] PDF转图片分享功能
**页面结构**:
```
[体测记录列表]
- 测试日期
- 身高/体重数据
- 体测报告图标
[体测详情]
- 身高体重数值
- 趋势折线图
- PDF预览/分享按钮
```
**API接口依赖**:
- `GET /api/physical-test/list/{student_id}` - 获取体测记录
- `GET /api/physical-test/detail/{id}` - 获取体测详情
- `POST /api/physical-test/share/{id}` - PDF转图片分享
**验收标准**:
- ✅ 体测数据正确显示
- ✅ 趋势图渲染正常
- ✅ PDF预览功能正常
- ✅ 分享功能正常
- ✅ 无数据状态处理
#### 6. **课程安排页面**
**负责人**:前端开发者
**工期**:1.5天
**任务内容**:
- [ ] 课程安排列表展示
- [ ] 课程状态标识
- [ ] 课程详情查看
- [ ] 日期筛选功能
**页面结构**:
```
[筛选区域]
- 日期选择器
- 状态筛选
[课程列表]
- 课程名称/时间
- 教练/地点信息
- 课程状态标识
```
**API接口依赖**:
- `GET /api/course-schedule/list/{student_id}` - 获取课程安排
- `GET /api/course-schedule/detail/{id}` - 获取课程详情
**验收标准**:
- ✅ 课程列表正确显示
- ✅ 状态标识准确
- ✅ 筛选功能正常
- ✅ 详情页面完整
#### 7. **课程预约页面**
**负责人**:前端开发者
**工期**:2天
**任务内容**:
- [ ] 可预约课程列表
- [ ] 预约确认弹窗
- [ ] 预约冲突检测
- [ ] 我的预约列表
- [ ] 取消预约功能
**页面结构**:
```
[可预约课程]
- 课程信息卡片
- 预约按钮
- 剩余名额显示
[我的预约]
- 预约记录列表
- 取消预约按钮
- 取消原因填写
```
**API接口依赖**:
- `GET /api/course-booking/available/{student_id}` - 获取可预约课程
- `POST /api/course-booking/create` - 创建预约
- `GET /api/course-booking/my-list/{student_id}` - 我的预约列表
- `PUT /api/course-booking/cancel/{id}` - 取消预约
**验收标准**:
- ✅ 可预约课程正确显示
- ✅ 预约冲突检测正常
- ✅ 预约确认流程完整
- ✅ 取消预约功能正常
- ✅ 6小时限制检查正确
#### 8. **订单管理页面**
**负责人**:前端开发者
**工期**:2天
**任务内容**:
- [ ] 订单列表展示
- [ ] 订单状态标识
- [ ] 支付功能集成
- [ ] 订单筛选功能
- [ ] 订单详情查看
**页面结构**:
```
[筛选区域]
- 课程类型筛选
- 时间范围筛选
[订单列表]
- 订单基本信息
- 支付状态
- 支付按钮
```
**API接口依赖**:
- `GET /api/order/list/{student_id}` - 获取订单列表
- `GET /api/order/detail/{id}` - 获取订单详情
- `POST /api/payment/create` - 创建支付
- `GET /api/payment/status/{order_id}` - 查询支付状态
**验收标准**:
- ✅ 订单列表正确显示
- ✅ 支付流程完整
- ✅ 支付状态更新及时
- ✅ 筛选功能正常
- ✅ 异常处理完善
#### 9. **合同管理页面**
**负责人**:前端开发者
**工期**:2天
**任务内容**:
- [ ] 合同列表展示
- [ ] 合同状态标识
- [ ] 合同详情查看
- [ ] 合同签署流程
- [ ] 合同下载功能
**页面结构**:
```
[合同列表]
- 合同名称
- 签署状态
- 签署时间
[合同签署]
- 合同内容展示
- 表单信息填写
- 签名上传
- 提交确认
```
**API接口依赖**:
- `GET /api/contract/list/{student_id}` - 获取合同列表
- `GET /api/contract/detail/{id}` - 获取合同详情
- `POST /api/contract/sign` - 提交合同签署
- `GET /api/contract/download/{id}` - 下载合同
**验收标准**:
- ✅ 合同列表正确显示
- ✅ 签署流程完整
- ✅ 表单验证正确
- ✅ 签名上传正常
- ✅ 下载功能正常
#### 10. **知识库页面**
**负责人**:前端开发者
**工期**:1.5天
**任务内容**:
- [ ] 知识内容列表
- [ ] 分类筛选功能
- [ ] 富文本内容渲染
- [ ] 权限控制显示
**页面结构**:
```
[分类筛选]
- 课程类型筛选
- 内容类型筛选
[内容列表]
- 标题/封面
- 内容摘要
- 查看详情
```
**API接口依赖**:
- `GET /api/knowledge/list/{student_id}` - 获取知识内容
- `GET /api/knowledge/detail/{id}` - 获取内容详情
- `GET /api/knowledge/categories` - 获取分类列表
**验收标准**:
- ✅ 内容列表正确显示
- ✅ 权限控制正确
- ✅ 富文本渲染正常
- ✅ 分类筛选功能正常
#### 11. **消息管理页面**
**负责人**:前端开发者
**工期**:2天
**任务内容**:
- [ ] 消息列表展示
- [ ] 5种消息类型渲染
- [ ] 已读/未读状态
- [ ] 消息详情查看
- [ ] 消息交互功能
**页面结构**:
```
[消息列表]
- 消息标题/时间
- 未读标识
- 消息类型图标
[消息详情]
- 根据类型渲染内容
- 相关操作按钮
- 已读状态更新
```
**API接口依赖**:
- `GET /api/message/list/{student_id}` - 获取消息列表
- `GET /api/message/detail/{id}` - 获取消息详情
- `PUT /api/message/read/{id}` - 标记已读
**验收标准**:
- ✅ 消息列表正确显示
- ✅ 5种类型渲染正确
- ✅ 已读状态更新正常
- ✅ 交互功能完整
- ✅ 推送消息处理正常
---
## 📊 **前端开发进度计划**
### 第1周(5天)
- 天1:基础架构搭建
- 天2-3:公共组件开发
- 天4:登录页面
- 天5:个人信息页面(第1天)
### 第2周(5天)
- 天1:个人信息页面(第2天)
- 天2-3:体测数据页面
- 天4:课程安排页面
- 天5:课程预约页面(第1天)
### 第3周(5天)
- 天1:课程预约页面(第2天)
- 天2-3:订单管理页面
- 天4-5:合同管理页面
### 第4周(3天)
- 天1:知识库页面
- 天2-3:消息管理页面
**总工期:18天**
---
## 🔍 **质量控制和验收标准**
### 代码质量要求
- [ ] 代码规范符合ESLint配置
- [ ] 组件复用性良好
- [ ] 异常处理完善
- [ ] 性能优化到位
### 功能验收要求
- [ ] 所有页面功能完整可用
- [ ] 数据交互正确无误
- [ ] 用户体验流畅
- [ ] 兼容性测试通过
### 测试要求
- [ ] 单元测试覆盖率>80%
- [ ] 集成测试通过
- [ ] 用户验收测试通过
- [ ] 性能测试达标

410
学员端开发计划-后端任务.md

@ -0,0 +1,410 @@
# 学员端开发计划 - 后端任务
## 🔧 **技术栈和环境**
- **框架**:PHP ThinkPHP 6.0
- **数据库**:MySQL 8.0
- **缓存**:Redis
- **文件存储**:腾讯云COS
- **支付**:微信支付
- **文档处理**:phpoffice/phpword + dompdf/dompdf
## 📋 **数据库准备工作**
### 1. **数据表字段修改**
**负责人**:后端开发者
**工期**:0.5天
**任务内容**:
```sql
-- 1. 消息表添加已读状态字段
ALTER TABLE `school_chat_messages` ADD COLUMN `is_read` tinyint(1) DEFAULT 0 COMMENT '是否已读 0-未读 1-已读';
ALTER TABLE `school_chat_messages` ADD COLUMN `read_time` timestamp NULL DEFAULT NULL COMMENT '已读时间';
-- 2. 课程安排表添加取消原因字段
ALTER TABLE `school_person_course_schedule` ADD COLUMN `cancel_reason` varchar(255) DEFAULT NULL COMMENT '取消预约原因';
-- 3. 订单表修改支付类型枚举
ALTER TABLE `school_order_table` MODIFY COLUMN `payment_type`
enum('cash','scan_code','subscription','wxpay_online') NOT NULL
COMMENT '付款类型: cash-现金支付, scan_code-扫码支付, subscription-订阅支付, wxpay_online-微信在线代付';
-- 4. 检查合同签署表字段(如果不存在则添加)
-- ALTER TABLE `school_contract_sign` ADD COLUMN `form_data` text COMMENT '签署时填写的表单数据JSON';
-- ALTER TABLE `school_contract_sign` ADD COLUMN `signature_image` varchar(500) COMMENT '签名图片路径';
-- ALTER TABLE `school_contract_sign` ADD COLUMN `signed_document` varchar(500) COMMENT '已签署文档路径';
```
### 2. **数据字典配置**
**负责人**:后端开发者
**工期**:0.5天
**任务内容**:
```sql
-- 插入7个数据字典配置
INSERT INTO `school_sys_dict` (`name`, `key`, `dictionary`) VALUES
('订单类型', 'order_type', '[{"name":"新订单","value":"1"},{"name":"续费订单","value":"2"},{"name":"内部员工订单","value":"3"},{"name":"转校","value":"4"},{"name":"客户内转课订单","value":"5"}]'),
('订单状态', 'order_status', '[{"name":"待支付","value":"pending"},{"name":"已支付","value":"paid"},{"name":"待签约","value":"signed"},{"name":"已完成","value":"completed"},{"name":"转学","value":"transfer"}]'),
('支付类型', 'payment_type', '[{"name":"现金支付","value":"cash"},{"name":"扫码支付","value":"scan_code"},{"name":"订阅支付","value":"subscription"},{"name":"微信在线代付","value":"wxpay_online"}]'),
('知识库分类', 'knowledge_table_type', '[{"name":"课程教学大纲","value":"1"},{"name":"跳绳教案库","value":"2"},{"name":"增高教案库","value":"3"},{"name":"篮球教案库","value":"4"},{"name":"强化教案库","value":"5"},{"name":"空中忍者教案库","value":"6"},{"name":"少儿安防教案库","value":"7"},{"name":"体能教案库","value":"8"},{"name":"热身动作库","value":"9"},{"name":"体能动作库","value":"10"},{"name":"趣味游戏库","value":"11"},{"name":"放松动作库","value":"12"},{"name":"训练内容","value":"13"},{"name":"训练视频","value":"14"},{"name":"课后作业","value":"15"},{"name":"优秀一堂课","value":"16"}]'),
('消息发送类型', 'message_from_type', '[{"name":"员工","value":"personnel"},{"name":"学生(客户)","value":"customer"},{"name":"系统消息","value":"system"}]'),
('消息内容类型', 'message_type', '[{"name":"文本消息","value":"text"},{"name":"图片消息","value":"img"},{"name":"订单消息","value":"order"},{"name":"学员课程变动消息","value":"student_courses"},{"name":"课程安排消息","value":"person_course_schedule"}]'),
('课程状态', 'course_schedule_status', '[{"name":"待开始","value":"pending"},{"name":"即将开始","value":"upcoming"},{"name":"进行中","value":"ongoing"},{"name":"已结束","value":"completed"}]');
```
**验收标准**:
- ✅ 所有SQL语句执行成功
- ✅ 数据字典配置正确
- ✅ 字段类型和约束正确
---
## 🔌 **API接口开发任务**
### 3. **用户认证模块**
**负责人**:后端开发者
**工期**:1天
**任务内容**:
- [ ] 统一登录接口(手机号+密码)
- [ ] 微信登录接口(openid绑定)
- [ ] token生成和验证
- [ ] 登录状态检查中间件
**API接口清单**:
```php
POST /api/login/unified // 统一登录
POST /api/login/wechat // 微信登录
POST /api/logout // 退出登录
GET /api/auth/check // 检查登录状态
```
**核心业务逻辑**:
- 手机号+密码验证
- 微信openid绑定到school_customer_resources
- JWT token生成和验证
- 登录失败次数限制
**验收标准**:
- ✅ 登录验证逻辑正确
- ✅ token生成和验证正常
- ✅ 微信登录流程完整
- ✅ 异常处理完善
### 4. **学员信息管理模块**
**负责人**:后端开发者
**工期**:1.5天
**任务内容**:
- [ ] 获取学员列表(支持多孩子)
- [ ] 获取学员详情信息
- [ ] 更新学员基本信息
- [ ] 头像上传处理
**API接口清单**:
```php
GET /api/student/list // 获取当前用户的学员列表
GET /api/student/summary/{id} // 获取学员概览信息(落地页用)
GET /api/student/info/{id} // 获取学员详细信息
PUT /api/student/update/{id} // 更新学员信息
POST /api/upload/avatar // 头像上传
```
**核心业务逻辑**:
- 通过member_id关联查询学员列表
- 学员信息权限验证(只能查看自己的孩子)
- 头像上传到腾讯云COS
- 信息修改日志记录
**验收标准**:
- ✅ 学员列表查询正确
- ✅ 权限控制严格
- ✅ 头像上传功能正常
- ✅ 数据验证完整
### 5. **体测数据模块**
**负责人**:后端开发者
**工期**:1.5天
**任务内容**:
- [ ] 获取体测记录列表
- [ ] 获取体测详情数据
- [ ] PDF转图片分享功能
- [ ] 体测趋势数据计算
**API接口清单**:
```php
GET /api/physical-test/list/{student_id} // 获取体测记录列表
GET /api/physical-test/detail/{id} // 获取体测详情
POST /api/physical-test/share/{id} // PDF转图片分享
GET /api/physical-test/trend/{student_id} // 获取趋势数据
```
**核心业务逻辑**:
- 按学员ID查询体测记录
- 只返回身高、体重、PDF报告
- 使用imagick将PDF转换为图片
- 计算身高体重趋势数据
**第三方库需求**:
```bash
composer require spatie/pdf-to-image
# 或使用imagick扩展
```
**验收标准**:
- ✅ 体测数据查询正确
- ✅ PDF转图片功能正常
- ✅ 趋势计算准确
- ✅ 权限控制严格
### 6. **课程安排模块**
**负责人**:后端开发者
**工期**:1天
**任务内容**:
- [ ] 获取学员课程安排
- [ ] 课程详情查询
- [ ] 课程状态筛选
**API接口清单**:
```php
GET /api/course-schedule/list/{student_id} // 获取课程安排列表
GET /api/course-schedule/detail/{id} // 获取课程详情
```
**核心业务逻辑**:
- 查询school_person_course_schedule表
- 关联课程、教练、场地信息
- 支持按日期、状态筛选
- 课程状态枚举处理
**验收标准**:
- ✅ 课程列表查询正确
- ✅ 关联数据完整
- ✅ 筛选功能正常
- ✅ 状态显示准确
### 7. **课程预约模块**
**负责人**:后端开发者
**工期**:2天
**任务内容**:
- [ ] 获取可预约课程列表
- [ ] 创建课程预约
- [ ] 获取我的预约列表
- [ ] 取消课程预约
- [ ] 预约冲突检测
**API接口清单**:
```php
GET /api/course-booking/available/{student_id} // 获取可预约课程
POST /api/course-booking/create // 创建预约
GET /api/course-booking/my-list/{student_id} // 我的预约列表
PUT /api/course-booking/cancel/{id} // 取消预约
```
**核心业务逻辑**:
- 预约数据存储在school_person_course_schedule表,course_type=3
- 预约冲突检测(同一时间段不能重复预约)
- 取消预约设置deleted_at字段
- 6小时取消限制检查
- 预约成功发送消息通知
**验收标准**:
- ✅ 预约创建逻辑正确
- ✅ 冲突检测准确
- ✅ 取消预约功能正常
- ✅ 时间限制检查正确
- ✅ 消息通知发送成功
### 8. **订单管理模块**
**负责人**:后端开发者
**工期**:2天
**任务内容**:
- [ ] 获取订单列表
- [ ] 获取订单详情
- [ ] 创建支付订单
- [ ] 支付状态查询
- [ ] 订单筛选功能
**API接口清单**:
```php
GET /api/order/list/{student_id} // 获取订单列表
GET /api/order/detail/{id} // 获取订单详情
POST /api/payment/create // 创建支付
GET /api/payment/status/{order_id} // 查询支付状态
POST /api/payment/callback // 支付回调处理
```
**核心业务逻辑**:
- 查询school_order_table表
- 支持按课程类型、时间筛选
- 集成微信支付API
- 支付状态实时更新
- 支付成功后订单状态变更
**第三方集成**:
```php
// 微信支付SDK
composer require wechatpay/wechatpay-guzzle-middleware
```
**验收标准**:
- ✅ 订单列表查询正确
- ✅ 支付流程完整
- ✅ 支付回调处理正确
- ✅ 状态更新及时
- ✅ 筛选功能正常
### 9. **合同管理模块**
**负责人**:后端开发者
**工期**:2.5天
**任务内容**:
- [ ] 获取合同列表
- [ ] 获取合同详情
- [ ] 合同签署处理
- [ ] 合同文档下载
- [ ] Word转PDF功能
**API接口清单**:
```php
GET /api/contract/list/{student_id} // 获取合同列表
GET /api/contract/detail/{id} // 获取合同详情
POST /api/contract/sign // 提交合同签署
GET /api/contract/download/{id} // 下载合同
```
**核心业务逻辑**:
- 查询school_contract和school_contract_sign表
- 合同签署表单数据存储
- 签名图片上传处理
- Word文档转PDF功能
- 已签署合同下载
**第三方库需求**:
```bash
composer require phpoffice/phpword
composer require dompdf/dompdf
# 或者
composer require tecnickcom/tcpdf
```
**验收标准**:
- ✅ 合同列表查询正确
- ✅ 签署流程完整
- ✅ 文档转换功能正常
- ✅ 下载功能正常
- ✅ 数据存储正确
### 10. **知识库模块**
**负责人**:后端开发者
**工期**:1.5天
**任务内容**:
- [ ] 获取知识内容列表
- [ ] 获取内容详情
- [ ] 权限控制处理
- [ ] 分类筛选功能
**API接口清单**:
```php
GET /api/knowledge/list/{student_id} // 获取知识内容列表
GET /api/knowledge/detail/{id} // 获取内容详情
GET /api/knowledge/categories // 获取分类列表
```
**核心业务逻辑**:
- 查询school_lesson_course_teaching表
- 通过student_ids字段控制权限(逗号分割)
- 富文本内容处理
- 按table_type分类筛选
**验收标准**:
- ✅ 内容列表查询正确
- ✅ 权限控制严格
- ✅ 富文本渲染正常
- ✅ 分类筛选功能正常
### 11. **消息管理模块**
**负责人**:后端开发者
**工期**:2天
**任务内容**:
- [ ] 获取消息列表
- [ ] 获取消息详情
- [ ] 标记消息已读
- [ ] 5种消息类型处理
- [ ] 消息推送功能
**API接口清单**:
```php
GET /api/message/list/{student_id} // 获取消息列表
GET /api/message/detail/{id} // 获取消息详情
PUT /api/message/read/{id} // 标记已读
POST /api/message/send // 发送消息(系统用)
```
**核心业务逻辑**:
- 查询school_chat_messages表
- 5种消息类型的不同处理逻辑
- 已读状态更新
- 消息推送到微信小程序
- 消息内容JSON格式处理
**验收标准**:
- ✅ 消息列表查询正确
- ✅ 5种类型处理正确
- ✅ 已读状态更新正常
- ✅ 推送功能正常
- ✅ JSON数据格式正确
---
## 📊 **后端开发进度计划**
### 第1周(5天)
- 天1:数据库准备工作(0.5天)+ 用户认证模块(0.5天)
- 天2:用户认证模块完成 + 学员信息管理模块(0.5天)
- 天3:学员信息管理模块完成 + 体测数据模块(0.5天)
- 天4:体测数据模块完成 + 课程安排模块
- 天5:课程预约模块(第1天)
### 第2周(5天)
- 天1:课程预约模块完成
- 天2-3:订单管理模块
- 天4-5:合同管理模块(第1-2天)
### 第3周(3.5天)
- 天1:合同管理模块完成(第3天)
- 天2:知识库模块
- 天3-4:消息管理模块
**总工期:13.5天**
---
## 🔍 **质量控制和验收标准**
### 代码质量要求
- [ ] 代码规范符合PSR-12标准
- [ ] 数据库操作使用ORM
- [ ] 异常处理完善
- [ ] 日志记录完整
- [ ] 安全防护到位
### API接口要求
- [ ] 统一的响应格式
- [ ] 完整的参数验证
- [ ] 权限控制严格
- [ ] 错误码规范
- [ ] 接口文档完整
### 性能要求
- [ ] 数据库查询优化
- [ ] 缓存策略合理
- [ ] 文件处理高效
- [ ] 并发处理能力
### 安全要求
- [ ] SQL注入防护
- [ ] XSS攻击防护
- [ ] 权限验证严格
- [ ] 敏感数据加密
- [ ] 接口访问限制
### 测试要求
- [ ] 单元测试覆盖率>80%
- [ ] 接口测试通过
- [ ] 压力测试达标
- [ ] 安全测试通过

553
学员端开发需求整合确认文档.md

@ -0,0 +1,553 @@
# 学员端开发需求整合确认文档
## 📋 **基于需求文档和数据库分析的整合确认**
我已经分析了《学员端开发需求文档.md》,并通过Docker命令直接查询了数据库表结构,获取了完整的字段定义和枚举值。现在整理出完整的技术规范和需要您确认的业务逻辑问题。
### 🔧 **数据库操作方法**
```bash
# 数据库连接信息
数据库:niucloud
用户名:niucloud
密码:niucloud123
# Docker命令查询示例
docker exec niucloud_mysql mysql -u niucloud -pniucloud123 -D niucloud -e "SHOW CREATE TABLE 表名;"
docker exec niucloud_mysql mysql -u niucloud -pniucloud123 -D niucloud -e "SELECT * FROM 表名 LIMIT 10;"
```
---
## 🔍 **已明确的需求信息**
### 1. **用户认证和登录** ✅ 已明确
- **登录方式**:手机号+密码,支持微信一键登录
- **数据关联**:`school_customer_resources` 主表,通过 `member_id` 关联 `member`
- **微信绑定**:需要获取小程序和公众号openid,绑定到对应字段
- **首次登录**:可提示设置密码但不强制
### 2. **个人信息管理** ✅ 已明确
- **用户信息**:只展示姓名和欢迎语,不可修改
- **学员信息**:可修改学员的基本信息
- **头像上传**:支持,存储在 `headimg` 字段,腾讯云COS,2M以下
### 3. **体测数据功能** ✅ 已明确
- **数据来源**:`school_physical_test` 表
- **展示内容**:身高、体重、体测报告PDF
- **趋势图**:折线图展示身高体重趋势
### 4. **课程预约功能** ✅ 已明确
- **预约规则**:只能预约等待位课程,取消需提前6小时
- **数据表**:`school_person_course_schedule` 插入等待位记录
- **冲突处理**:同一时间段只能预约一节课
### 5. **支付功能** ✅ 已明确
- **支付方式**:微信支付、微信扫码支付
- **订单表**:`school_order_table`
### 6. **知识库功能** ✅ 已明确
- **数据表**:`school_lesson_course_teaching`
- **内容渲染**:富文本方式
- **权限控制**:根据 `student_id` 字段(逗号分割)
### 7. **消息管理功能** ✅ 已明确
- **数据表**:`school_chat_messages`
- **消息推送**:公众号模板消息推送
---
## ✅ **数据库表字段枚举值已确认**
### 1. **订单类型枚举** (`school_order_table.order_type`)
**已确认的枚举值**:
```
order_type 字段注释:'订单类型1新订单2续费订单3内部员工订单4 转校 5 客户内转课订单'
- 1:新订单
- 2:续费订单
- 3:内部员工订单
- 4:转校
- 5:客户内转课订单
```
### 2. **知识库分类枚举** (`school_lesson_course_teaching.table_type`)
**已确认的枚举值**:
```
table_type 字段注释:'类型 1课程教学大纲 2跳绳教案库 3增高教案库 4篮球教案库 5强化教案库 6空中忍者教案库 7少儿安防教案库 8体能教案库 9热身动作库 10体能动作库 11趣味游戏库 12放松动作库 13训练内容 14训练视频 15课后作业 16优秀一堂课 17空中忍者 18篮球动作 19跳绳动作 20跑酷动作 21安防动作 22标准化动作 233-6岁体测 247+体测 253-6岁体测讲解—解读 267+岁体测讲解—解读 27互动游戏 28套圈游戏 29鼓励方式'
主要分类:
- 1:课程教学大纲
- 2:跳绳教案库
- 3:增高教案库
- 4:篮球教案库
- 5:强化教案库
- 6:空中忍者教案库
- 7:少儿安防教案库
- 8:体能教案库
- 9:热身动作库
- 10:体能动作库
- 11:趣味游戏库
- 12:放松动作库
- 13:训练内容
- 14:训练视频
- 15:课后作业
- 16:优秀一堂课
- 17-22:各种动作库
- 23-26:体测相关
- 27-29:游戏和鼓励方式
```
### 3. **消息类型枚举** (`school_chat_messages`)
**已确认的枚举值**:
**`from_type` 字段**:
```sql
enum('personnel','customer','system')
注释:'发送者类型|personnel=员工,customer=学生(客户)system(系统消息)'
- personnel:员工
- customer:学生(客户)
- system:系统消息
```
**`message_type` 字段**:
```sql
enum('text','img','order','student_courses','person_course_schedule')
注释:'消息类型|text=文本,img=图片消息,订单'消息order'学员课程变动消息student_courses'课程安排消息person_course_schedule'
- text:文本消息
- img:图片消息
- order:订单消息
- student_courses:学员课程变动消息
- person_course_schedule:课程安排消息
```
### 4. **课程状态枚举** (`school_course_schedule.status`)
**已确认的枚举值**:
```sql
enum('pending','upcoming','ongoing','completed')
注释:'课程状态: pending-待开始, upcoming-即将开始, ongoing-进行中, completed-已结束'
- pending:待开始
- upcoming:即将开始
- ongoing:进行中
- completed:已结束
```
### 5. **订单状态枚举** (`school_order_table.order_status`)
**已确认的枚举值**:
```sql
enum('pending','paid','signed','completed','transfer')
注释:'订单状态: pending-待支付, paid-已支付,signed待签约,completed已完成,transfer转学'
- pending:待支付
- paid:已支付
- signed:待签约
- completed:已完成
- transfer:转学
```
### 6. **支付类型枚举** (`school_order_table.payment_type`)
**已确认的枚举值**:
```sql
enum('cash','scan_code','subscription')
注释:'付款类型: cash-现金支付, scan_code-扫码支付, subscription-订阅支付wxpay_online微信在线代付'
- cash:现金支付
- scan_code:扫码支付
- subscription:订阅支付
- wxpay_online:微信在线代付(注释中提到但enum中未包含)
```
## ✅ **数据表结构已确认**
### 1. **体测数据表字段** (`school_physical_test`)
**完整字段结构**:
```sql
CREATE TABLE `school_physical_test` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '体测编号',
`resource_id` int NOT NULL COMMENT '资源ID',
`student_id` int DEFAULT NULL COMMENT '学员ID',
`age` int NOT NULL DEFAULT '0' COMMENT '学员年龄',
`height` decimal(5,2) NOT NULL COMMENT '身高',
`weight` decimal(5,2) NOT NULL COMMENT '体重',
`coach_id` int DEFAULT NULL COMMENT '教练ID',
`seated_forward_bend` decimal(5,2) DEFAULT NULL COMMENT '坐位体前屈',
`sit_ups` decimal(5,2) DEFAULT NULL COMMENT '仰卧卷腹',
`push_ups` decimal(5,2) DEFAULT NULL COMMENT '九十度仰卧撑',
`flamingo_balance` decimal(5,2) DEFAULT NULL COMMENT '火烈鸟平衡测试',
`thirty_sec_jump` decimal(5,2) DEFAULT NULL COMMENT '三十秒双脚连续跳',
`standing_long_jump` decimal(5,2) DEFAULT NULL COMMENT '立定跳远',
`agility_run` decimal(5,2) DEFAULT NULL COMMENT '4乘10m灵敏折返跑',
`balance_beam` decimal(5,2) DEFAULT NULL COMMENT '走平衡木',
`tennis_throw` decimal(5,2) DEFAULT NULL COMMENT '网球掷远',
`ten_meter_shuttle_run` decimal(5,2) DEFAULT NULL COMMENT '十米往返跑',
`physical_test_report` text COMMENT '体测报告附件(多文件)',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
);
```
**体测指标分类**:
- **基础指标**:身高、体重、年龄
- **柔韧性测试**:坐位体前屈
- **力量测试**:仰卧卷腹、九十度仰卧撑
- **平衡性测试**:火烈鸟平衡测试、走平衡木
- **爆发力测试**:三十秒双脚连续跳、立定跳远、网球掷远
- **敏捷性测试**:4乘10m灵敏折返跑、十米往返跑
- **体测报告**:PDF附件(多文件,逗号分割)
### 2. **订单表字段** (`school_order_table`)
**完整字段结构**:
```sql
CREATE TABLE `school_order_table` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '订单编号',
`payment_id` varchar(255) DEFAULT NULL COMMENT '支付编号',
`order_type` varchar(255) DEFAULT NULL COMMENT '订单类型1新订单2续费订单3内部员工订单4 转校 5 客户内转课订单',
`order_status` enum('pending','paid','signed','completed','transfer') DEFAULT 'pending' COMMENT '订单状态',
`payment_type` enum('cash','scan_code','subscription') NOT NULL COMMENT '付款类型',
`order_amount` decimal(10,2) NOT NULL COMMENT '订单金额',
`discount_amount` decimal(10,2) DEFAULT NULL COMMENT '优惠金额',
`course_id` int NOT NULL COMMENT '课程ID',
`class_id` int DEFAULT NULL COMMENT '班级ID',
`staff_id` int NOT NULL COMMENT '人员ID|员工表school_personnel.id',
`resource_id` int NOT NULL COMMENT '资源ID|客户资源表school_customer_resources.id',
`student_id` int NOT NULL COMMENT '学员 id',
`campus_id` int NOT NULL COMMENT '校区ID',
`course_plan_id` int DEFAULT NULL COMMENT '课程计划 id',
`gift_id` int DEFAULT NULL COMMENT '赠品 id',
`after_sales_status` varchar(50) DEFAULT NULL COMMENT '售后状态',
`after_sales_reason` text COMMENT '售后原因',
`after_sales_time` timestamp NULL DEFAULT NULL COMMENT '售后时间',
`payment_time` timestamp NULL DEFAULT NULL COMMENT '支付时间',
`subscription_payment_time` timestamp NULL DEFAULT NULL COMMENT '订阅支付生成时间',
`accounting_time` timestamp NULL DEFAULT NULL COMMENT '核算时间',
`remark` varchar(512) DEFAULT NULL COMMENT '订单备注',
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`id`)
);
```
### 3. **业务逻辑确认**
#### 3.1 学员选择逻辑
**问题**:一个家长可能有多个孩子,学员端如何处理?
**需要确认**:
- 登录后是否需要选择孩子?
- 如何在不同孩子之间切换?
- 数据展示是否需要按孩子分别显示?
#### 3.2 收藏功能
**问题**:是否需要收藏功能?
**如果需要,请确认**:
- 可以收藏哪些内容?(知识库文章、课程等)
- 是否需要创建 `school_student_favorites` 表?
#### 3.3 合同状态管理
**问题**:合同状态的具体定义
**需要确认**:
```
school_contract_sign.status 字段的枚举值:
- 待签署:pending?
- 已签署:signed?
- 已生效:active?
- 已到期:expired?
```
### 4. **页面功能细节确认**
#### 4.1 个人信息页面
**基于您的说明,确认页面结构**:
```
[用户信息区域]
- 显示:{name} 你好,今天是星期{x}
- 入会时间:{create_year_month}
- 年龄:{age} (根据最新学员生日计算)
[学员信息区域] - 可编辑
- 学员选择下拉框 (如果有多个孩子)
- 学员基本信息编辑
- 头像上传功能
[体测数据区域] - 只读
- 身高、体重显示
- 体测报告PDF预览/下载
```
#### 4.2 消息页面渲染
**基于 `message_type` 字段,确认渲染方式**:
- 不同 `message_type` 对应的页面渲染方式?
- 消息列表和详情页的展示差异?
---
## 📝 **需要创建的数据字典**
基于数据库表结构分析,需要在 `school_sys_dict` 表中存储以下枚举数据:
### 1. 订单类型字典
```sql
INSERT INTO `school_sys_dict` (`name`, `key`, `dictionary`) VALUES
('订单类型', 'order_type', '[
{"name":"新订单","value":"1"},
{"name":"续费订单","value":"2"},
{"name":"内部员工订单","value":"3"},
{"name":"转校","value":"4"},
{"name":"客户内转课订单","value":"5"}
]');
```
### 2. 订单状态字典
```sql
INSERT INTO `school_sys_dict` (`name`, `key`, `dictionary`) VALUES
('订单状态', 'order_status', '[
{"name":"待支付","value":"pending"},
{"name":"已支付","value":"paid"},
{"name":"待签约","value":"signed"},
{"name":"已完成","value":"completed"},
{"name":"转学","value":"transfer"}
]');
```
### 3. 支付类型字典
```sql
INSERT INTO `school_sys_dict` (`name`, `key`, `dictionary`) VALUES
('支付类型', 'payment_type', '[
{"name":"现金支付","value":"cash"},
{"name":"扫码支付","value":"scan_code"},
{"name":"订阅支付","value":"subscription"},
{"name":"微信在线代付","value":"wxpay_online"}
]');
```
### 4. 知识库分类字典
```sql
INSERT INTO `school_sys_dict` (`name`, `key`, `dictionary`) VALUES
('知识库分类', 'knowledge_table_type', '[
{"name":"课程教学大纲","value":"1"},
{"name":"跳绳教案库","value":"2"},
{"name":"增高教案库","value":"3"},
{"name":"篮球教案库","value":"4"},
{"name":"强化教案库","value":"5"},
{"name":"空中忍者教案库","value":"6"},
{"name":"少儿安防教案库","value":"7"},
{"name":"体能教案库","value":"8"},
{"name":"热身动作库","value":"9"},
{"name":"体能动作库","value":"10"},
{"name":"趣味游戏库","value":"11"},
{"name":"放松动作库","value":"12"},
{"name":"训练内容","value":"13"},
{"name":"训练视频","value":"14"},
{"name":"课后作业","value":"15"},
{"name":"优秀一堂课","value":"16"}
]');
```
### 5. 消息发送类型字典
```sql
INSERT INTO `school_sys_dict` (`name`, `key`, `dictionary`) VALUES
('消息发送类型', 'message_from_type', '[
{"name":"员工","value":"personnel"},
{"name":"学生(客户)","value":"customer"},
{"name":"系统消息","value":"system"}
]');
```
### 6. 消息内容类型字典
```sql
INSERT INTO `school_sys_dict` (`name`, `key`, `dictionary`) VALUES
('消息内容类型', 'message_type', '[
{"name":"文本消息","value":"text"},
{"name":"图片消息","value":"img"},
{"name":"订单消息","value":"order"},
{"name":"学员课程变动消息","value":"student_courses"},
{"name":"课程安排消息","value":"person_course_schedule"}
]');
```
### 7. 课程状态字典
```sql
INSERT INTO `school_sys_dict` (`name`, `key`, `dictionary`) VALUES
('课程状态', 'course_schedule_status', '[
{"name":"待开始","value":"pending"},
{"name":"即将开始","value":"upcoming"},
{"name":"进行中","value":"ongoing"},
{"name":"已结束","value":"completed"}
]');
```
---
## ✅ **业务逻辑已确认**
### 1. **多孩子处理逻辑**
- **登录流程**:登录后获取孩子列表,默认选择最新添加的孩子
- **切换方式**:在孩子信息卡片处设置切换按钮
- **数据展示**:所有数据根据选中的孩子ID查询
- **页面结构**:孩子选择卡片下方显示各功能模块入口
### 2. **收藏功能**
- **不需要收藏功能**:知识内容由工作人员分享给学员,学员只能查看
### 3. **体测数据展示**
- **展示指标**:只显示身高和体重
- **趋势图**:展示身高和体重的变化趋势
- **体测报告**
- 显示"体测附件"或"体测记录"图标
- 点击可在应用内预览PDF
- 支持将PDF转换为图片分享
### 4. **消息页面渲染规则**
- **text消息**:纯文本显示
- **img消息**:缩略图+点击放大
- **order消息**:显示订单号、金额、状态、购买课程信息,支付成功后显示"查看合同"或"签署合同"按钮
- **student_courses消息**:课程变动通知(停课、签到核销等),样式与文本消息有差别,无交互
- **person_course_schedule消息**:预约课程生效通知,显示时间地点,点击查看课程详情
- **已读/未读状态**:需要添加数据库字段支持
### 5. **支付功能**
- **支付流程**:简化为一键支付,直接唤起支付
- **支付成功**:更新订单列表状态
- **支付失败**:提示失败,不修改数据库
- **订单管理**:只显示订单记录,支持按课程、时间筛选
### 6. **课程预约**
- **预约确认**:无需人工确认,可发消息通知教练和教务
- **冲突处理**:相同时间段已有预约时提示不能重复预约
- **取消原因**:可填写但非必填,需检查数据库字段
### 7. **合同管理**
- **显示信息**:合同名称、签署状态、签署时间
- **签署流程**:查看合同 → 填写信息 → 上传签名 → 提交
- **文档下载**:已签署合同可下载,需将Word转换为PDF或图片
### 8. **知识库权限**
- **内容显示**:只显示当前选中孩子可访问的内容
- **学习记录**:不需要,仅支持浏览
## 🔧 **需要的技术实现和数据库修改**
### 1. **需要重新设计的数据表**
#### 1.1 **课程预约功能** - 修改现有表
**方案**:使用现有的 `school_person_course_schedule` 表,通过 `course_type=3` 标识等待位预约
**需要添加的字段**:
```sql
-- 检查并添加取消原因字段
ALTER TABLE `school_person_course_schedule` ADD COLUMN `cancel_reason` varchar(255) DEFAULT NULL COMMENT '取消预约原因';
-- 确保有软删除字段(如果没有的话)
-- ALTER TABLE `school_person_course_schedule` ADD COLUMN `deleted_at` int DEFAULT 0 COMMENT '删除时间,0为未删除';
```
**预约数据管理逻辑**:
- **新预约**:插入记录,设置 `course_type=3`(等待位)
- **预约生效**:员工将 `course_type` 改为正式课程类型
- **取消预约**:设置 `deleted_at` 为当前时间戳,可选填写 `cancel_reason`
- **预约查询**:查询 `course_type=3``deleted_at=0` 的记录
#### 1.2 **消息已读状态** - 需要修改现有表
**问题**:`school_chat_messages` 表缺少已读状态字段
**解决方案**:添加字段
```sql
ALTER TABLE `school_chat_messages` ADD COLUMN `is_read` tinyint(1) DEFAULT 0 COMMENT '是否已读 0-未读 1-已读';
ALTER TABLE `school_chat_messages` ADD COLUMN `read_time` timestamp NULL DEFAULT NULL COMMENT '已读时间';
```
#### 1.3 **合同签署数据** - 需要修改现有表
**问题**:合同签署可能需要存储填写的表单数据
**解决方案**:检查并补充字段
```sql
-- 检查 school_contract_sign 表是否有以下字段,如果没有需要添加:
ALTER TABLE `school_contract_sign` ADD COLUMN `form_data` text COMMENT '签署时填写的表单数据JSON';
ALTER TABLE `school_contract_sign` ADD COLUMN `signature_image` varchar(500) COMMENT '签名图片路径';
ALTER TABLE `school_contract_sign` ADD COLUMN `signed_document` varchar(500) COMMENT '已签署文档路径';
```
#### 1.4 **支付类型枚举** - 需要修改现有表
**问题**:`school_order_table.payment_type` 枚举中缺少 `wxpay_online`
**解决方案**:修改枚举值
```sql
ALTER TABLE `school_order_table` MODIFY COLUMN `payment_type`
enum('cash','scan_code','subscription','wxpay_online') NOT NULL
COMMENT '付款类型: cash-现金支付, scan_code-扫码支付, subscription-订阅支付, wxpay_online-微信在线代付';
```
### 2. **不需要新建表的功能**
#### 2.1 **收藏功能** - 不需要
**原因**:您明确表示不需要收藏功能
#### 2.2 **体测数据** - 现有表足够
**原因**:`school_physical_test` 表已包含所需的身高、体重和PDF报告字段
#### 2.3 **知识库** - 现有表足够
**原因**:`school_lesson_course_teaching` 表已有 `student_ids` 字段控制权限
#### 2.4 **订单管理** - 现有表足够
**原因**:`school_order_table` 表字段完整,只需要修改支付类型枚举
#### 2.5 **个人信息** - 现有表足够
**原因**:`school_student` 和 `school_customer_resources` 表已满足需求
### 2. **Word文档转换库需求**
**合同下载需要Word转PDF/图片功能,需要检查后端是否有以下库:**
- **PHP Word转PDF**:`phpoffice/phpword` + `dompdf/dompdf``tecnickcom/tcpdf`
- **Word转图片**:需要 `imagick` 扩展 或 `LibreOffice` 命令行工具
- **推荐方案**:使用 `phpoffice/phpword` + `dompdf/dompdf` 实现Word转PDF
### 3. **PDF转图片分享功能**
**体测报告分享需要PDF转图片:**
- 使用 `imagick` 扩展:`$imagick = new Imagick('file.pdf[0]');`
- 或使用 `spatie/pdf-to-image`
### 4. **小程序PDF预览**
**UniApp内PDF预览实现:**
- 使用 `uni.downloadFile()` 下载PDF
- 使用 `uni.openDocument()` 打开PDF预览
- 或集成第三方PDF预览组件
---
## 📊 **最终数据表修改总结**
### ✅ **需要修改的表(共3个)**
#### 1. **school_person_course_schedule** - 课程预约
```sql
-- 添加取消原因字段
ALTER TABLE `school_person_course_schedule` ADD COLUMN `cancel_reason` varchar(255) DEFAULT NULL COMMENT '取消预约原因';
```
**预约逻辑**:
- 新预约:`course_type=3`(等待位)
- 取消预约:设置 `deleted_at` 值 + 可选 `cancel_reason`
#### 2. **school_chat_messages** - 消息已读状态
```sql
ALTER TABLE `school_chat_messages` ADD COLUMN `is_read` tinyint(1) DEFAULT 0 COMMENT '是否已读 0-未读 1-已读';
ALTER TABLE `school_chat_messages` ADD COLUMN `read_time` timestamp NULL DEFAULT NULL COMMENT '已读时间';
```
#### 3. **school_order_table** - 支付类型补充
```sql
ALTER TABLE `school_order_table` MODIFY COLUMN `payment_type`
enum('cash','scan_code','subscription','wxpay_online') NOT NULL
COMMENT '付款类型: cash-现金支付, scan_code-扫码支付, subscription-订阅支付, wxpay_online-微信在线代付';
```
### ✅ **需要检查的表(1个)**
- **school_contract_sign** - 检查是否有 `form_data`、`signature_image`、`signed_document` 字段
### ✅ **不需要新建的表**
- 所有功能都可以使用现有表结构实现
- 无需创建新的数据表
---
## 🎯 **开发任务规划**
**所有需求已明确,数据表设计已确定,现在可以开始制定详细的开发计划:**
1. **数据库设计完善**:执行上述3个表的字段修改 + 7个数据字典插入
2. **后端API开发**:9个功能模块的接口实现
3. **前端页面开发**:UniApp小程序页面实现
4. **第三方集成**:支付、PDF处理、图片转换
5. **测试验收**:功能测试和用户体验验证
**准备开始执行开发计划!**
Loading…
Cancel
Save