diff --git a/API接口文档.md b/API接口文档.md new file mode 100644 index 00000000..00ad72a7 --- /dev/null +++ b/API接口文档.md @@ -0,0 +1,980 @@ +# 智慧教务系统 API 接口文档 + +## 📋 接口概述 + +### 基础信息 +- **API Base URL**: `http://localhost:20080` +- **接口版本**: v1.0 +- **数据格式**: JSON +- **字符编码**: UTF-8 +- **认证方式**: JWT Token + +### 接口前缀 +- **管理端接口**: `/adminapi/*` +- **客户端接口**: `/api/*` + +### 统一响应格式 +```json +{ + "code": 1, // 状态码:1-成功,0-失败 + "msg": "操作成功", // 响应消息 + "data": {} // 响应数据 +} +``` + +### 状态码说明 +| 状态码 | 说明 | 描述 | +|--------|------|------| +| 1 | 成功 | 请求处理成功 | +| 0 | 失败 | 请求处理失败 | +| 401 | 未授权 | Token无效或已过期 | +| 403 | 禁止访问 | 权限不足 | +| 404 | 未找到 | 资源不存在 | +| 500 | 服务器错误 | 内部服务器错误 | + +## 🔐 认证机制 + +### JWT Token 认证 +所有需要认证的接口都需要在请求头中携带Token: + +```http +Authorization: Bearer {token} +``` + +### Token 获取 +通过登录接口获取Token,Token有效期为24小时。 + +### Token 刷新 +当Token即将过期时,可通过刷新接口获取新Token。 + +## 🔑 管理端接口 (/adminapi) + +### 认证相关 + +#### 1. 管理员登录 +**接口地址**: `POST /adminapi/login/login` + +**请求参数**: +```json +{ + "username": "admin", // 用户名 + "password": "123456" // 密码 +} +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "登录成功", + "data": { + "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", + "expire": 86400, + "user_info": { + "uid": 1, + "username": "admin", + "nickname": "超级管理员", + "avatar": "", + "role_ids": [1], + "permissions": ["*"] + } + } +} +``` + +**curl 示例**: +```bash +curl -X POST http://localhost:20080/adminapi/login/login \ + -H "Content-Type: application/json" \ + -d '{"username":"admin","password":"123456"}' +``` + +#### 2. 获取用户信息 +**接口地址**: `GET /adminapi/user/info` + +**请求头**: +```http +Authorization: Bearer {token} +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "获取成功", + "data": { + "uid": 1, + "username": "admin", + "nickname": "超级管理员", + "avatar": "", + "role_ids": [1], + "permissions": ["*"], + "campus_ids": [0] // 0表示所有校区 + } +} +``` + +#### 3. 退出登录 +**接口地址**: `POST /adminapi/login/logout` + +**请求头**: +```http +Authorization: Bearer {token} +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "退出成功", + "data": null +} +``` + +### 校区管理 + +#### 1. 校区列表 +**接口地址**: `GET /adminapi/campus/list` + +**请求参数**: +``` +page: 1 // 页码 +limit: 20 // 每页数量 +keyword: "" // 搜索关键词 +status: "" // 状态筛选:1-启用,0-禁用 +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "获取成功", + "data": { + "list": [ + { + "id": 1, + "campus_name": "总校区", + "address": "北京市朝阳区xxx路xxx号", + "phone": "010-12345678", + "contact_person": "张三", + "status": 1, + "created_at": "2025-01-01 10:00:00", + "updated_at": "2025-01-14 15:30:00" + } + ], + "total": 1, + "page": 1, + "limit": 20 + } +} +``` + +#### 2. 新增校区 +**接口地址**: `POST /adminapi/campus/add` + +**请求参数**: +```json +{ + "campus_name": "新校区", + "address": "北京市海淀区xxx路xxx号", + "phone": "010-87654321", + "contact_person": "李四", + "status": 1, + "remark": "备注信息" +} +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "添加成功", + "data": { + "id": 2 + } +} +``` + +#### 3. 编辑校区 +**接口地址**: `PUT /adminapi/campus/edit/{id}` + +**请求参数**: +```json +{ + "campus_name": "更新后的校区名称", + "address": "更新后的地址", + "phone": "010-11111111", + "contact_person": "王五", + "status": 1, + "remark": "更新后的备注" +} +``` + +#### 4. 删除校区 +**接口地址**: `DELETE /adminapi/campus/delete/{id}` + +**响应示例**: +```json +{ + "code": 1, + "msg": "删除成功", + "data": null +} +``` + +### 人员管理 + +#### 1. 员工列表 +**接口地址**: `GET /adminapi/personnel/list` + +**请求参数**: +``` +page: 1 +limit: 20 +keyword: "" // 姓名或工号搜索 +campus_id: "" // 校区筛选 +dept_id: "" // 部门筛选 +status: "" // 状态筛选 +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "获取成功", + "data": { + "list": [ + { + "id": 51, + "name": "花花", + "employee_id": "EMP001", + "phone": "13800138000", + "email": "huahua@example.com", + "dept_name": "教练部", + "campus_name": "总校区", + "role_type": 10, + "role_name": "校长", + "status": 1, + "created_at": "2025-01-01 10:00:00" + } + ], + "total": 1, + "page": 1, + "limit": 20 + } +} +``` + +#### 2. 新增员工 +**接口地址**: `POST /adminapi/personnel/add` + +**请求参数**: +```json +{ + "name": "新员工", + "employee_id": "EMP002", + "phone": "13900139000", + "email": "newstaff@example.com", + "dept_id": 2, + "campus_ids": [1, 2], + "role_type": 5, + "password": "123456", + "status": 1 +} +``` + +#### 3. 学员列表 +**接口地址**: `GET /adminapi/student/list` + +**请求参数**: +``` +page: 1 +limit: 20 +keyword: "" // 姓名或学号搜索 +campus_id: "" // 校区筛选 +class_id: "" // 班级筛选 +status: "" // 状态筛选 +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "获取成功", + "data": { + "list": [ + { + "id": 1, + "student_name": "小明", + "student_no": "STU001", + "gender": 1, + "age": 8, + "phone": "13700137000", + "parent_name": "明爸爸", + "parent_phone": "13600136000", + "campus_name": "总校区", + "class_name": "跳绳初级班", + "status": 1, + "created_at": "2025-01-01 10:00:00" + } + ], + "total": 1, + "page": 1, + "limit": 20 + } +} +``` + +### 课程管理 + +#### 1. 课程列表 +**接口地址**: `GET /adminapi/course/list` + +**请求参数**: +``` +page: 1 +limit: 20 +keyword: "" // 课程名称搜索 +course_type: "" // 课程类型筛选 +status: "" // 状态筛选 +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "获取成功", + "data": { + "list": [ + { + "id": 1, + "course_name": "跳绳基础课程", + "course_type": "跳绳", + "duration": 60, + "session_count": 12, + "single_session_count": 1, + "price": 1200.00, + "age_range": "6-12岁", + "description": "适合初学者的跳绳课程", + "cover_image": "/uploads/course/cover1.jpg", + "status": 1, + "created_at": "2025-01-01 10:00:00" + } + ], + "total": 1, + "page": 1, + "limit": 20 + } +} +``` + +#### 2. 新增课程 +**接口地址**: `POST /adminapi/course/add` + +**请求参数**: +```json +{ + "course_name": "新课程", + "course_type": "篮球", + "duration": 90, + "session_count": 16, + "single_session_count": 1, + "price": 1600.00, + "age_range": "8-16岁", + "description": "篮球基础技能训练", + "cover_image": "/uploads/course/cover2.jpg", + "status": 1 +} +``` + +### 班级管理 + +#### 1. 班级列表 +**接口地址**: `GET /adminapi/class/list` + +**请求参数**: +``` +page: 1 +limit: 20 +keyword: "" // 班级名称搜索 +campus_id: "" // 校区筛选 +course_id: "" // 课程筛选 +status: "" // 状态筛选 +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "获取成功", + "data": { + "list": [ + { + "id": 1, + "class_name": "跳绳初级班A", + "campus_name": "总校区", + "course_name": "跳绳基础课程", + "head_coach": "张教练", + "assistant_coach": "李助教", + "capacity": 15, + "current_count": 12, + "status": 1, + "created_at": "2025-01-01 10:00:00" + } + ], + "total": 1, + "page": 1, + "limit": 20 + } +} +``` + +#### 2. 新增班级 +**接口地址**: `POST /adminapi/class/add` + +**请求参数**: +```json +{ + "class_name": "新班级", + "campus_id": 1, + "course_id": 1, + "head_coach": 51, + "assistant_coach": 52, + "capacity": 20, + "status": 1, + "remark": "备注信息" +} +``` + +### 排课系统 + +#### 1. 课程安排列表 +**接口地址**: `GET /adminapi/schedule/list` + +**请求参数**: +``` +page: 1 +limit: 20 +date_start: "2025-01-01" // 开始日期 +date_end: "2025-01-31" // 结束日期 +campus_id: "" // 校区筛选 +coach_id: "" // 教练筛选 +venue_id: "" // 场地筛选 +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "获取成功", + "data": { + "list": [ + { + "id": 1, + "course_name": "跳绳基础课程", + "class_name": "跳绳初级班A", + "coach_name": "张教练", + "venue_name": "训练场地A", + "course_date": "2025-01-15", + "time_slot": "09:00-10:00", + "available_capacity": 15, + "booked_count": 12, + "status": 1, + "remarks": "正常上课" + } + ], + "total": 1, + "page": 1, + "limit": 20 + } +} +``` + +#### 2. 新增课程安排 +**接口地址**: `POST /adminapi/schedule/add` + +**请求参数**: +```json +{ + "course_id": 1, + "class_id": 1, + "coach_id": 51, + "venue_id": 1, + "course_date": "2025-01-15", + "time_slot": "09:00-10:00", + "available_capacity": 15, + "remarks": "正常上课" +} +``` + +### 财务管理 + +#### 1. 收费记录列表 +**接口地址**: `GET /adminapi/finance/payment/list` + +**请求参数**: +``` +page: 1 +limit: 20 +date_start: "2025-01-01" +date_end: "2025-01-31" +campus_id: "" +student_id: "" +payment_type: "" // 支付方式 +status: "" // 状态 +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "获取成功", + "data": { + "list": [ + { + "id": 1, + "student_name": "小明", + "course_name": "跳绳基础课程", + "amount": 1200.00, + "payment_type": "微信支付", + "payment_time": "2025-01-15 10:30:00", + "operator": "收费员", + "status": 1, + "remark": "学费" + } + ], + "total": 1, + "page": 1, + "limit": 20, + "summary": { + "total_amount": 1200.00, + "count": 1 + } + } +} +``` + +#### 2. 新增收费记录 +**接口地址**: `POST /adminapi/finance/payment/add` + +**请求参数**: +```json +{ + "student_id": 1, + "course_id": 1, + "amount": 1200.00, + "payment_type": "微信支付", + "payment_time": "2025-01-15 10:30:00", + "remark": "学费" +} +``` + +### 数据统计 + +#### 1. 数据看板 +**接口地址**: `GET /adminapi/statistics/dashboard` + +**请求参数**: +``` +date_start: "2025-01-01" +date_end: "2025-01-31" +campus_id: "" // 校区筛选,空表示所有校区 +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "获取成功", + "data": { + "today": { + "income": 5600.00, + "new_students": 3, + "classes": 12, + "attendance_rate": 95.5 + }, + "month": { + "income": 156000.00, + "new_students": 45, + "total_students": 320, + "total_classes": 280 + }, + "trends": { + "income_trend": [1200, 1500, 1800, 2100, 1900, 2200, 2400], + "student_trend": [2, 3, 1, 4, 2, 3, 5], + "attendance_trend": [92.5, 94.2, 96.1, 93.8, 95.5, 97.2, 95.8] + } + } +} +``` + +#### 2. 收入统计 +**接口地址**: `GET /adminapi/statistics/income` + +**请求参数**: +``` +date_start: "2025-01-01" +date_end: "2025-01-31" +campus_id: "" +group_by: "day" // 分组方式:day/week/month +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "获取成功", + "data": { + "total_amount": 156000.00, + "chart_data": [ + { + "date": "2025-01-01", + "amount": 5200.00, + "count": 4 + }, + { + "date": "2025-01-02", + "amount": 6800.00, + "count": 5 + } + ], + "summary": { + "avg_daily": 5200.00, + "max_daily": 8900.00, + "min_daily": 2100.00 + } + } +} +``` + +## 📱 客户端接口 (/api) + +### 员工端认证 + +#### 1. 员工登录 +**接口地址**: `POST /api/staff/login` + +**请求参数**: +```json +{ + "employee_id": "EMP001", // 工号 + "password": "123456" // 密码 +} +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "登录成功", + "data": { + "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...", + "expire": 86400, + "user_info": { + "user_id": 51, + "name": "花花", + "employee_id": "EMP001", + "role_type": 10, + "role_name": "校长", + "campus_ids": [1, 2], + "avatar": "/uploads/avatar/51.jpg" + } + } +} +``` + +#### 2. 获取员工信息 +**接口地址**: `GET /api/staff/info` + +**请求头**: +```http +Authorization: Bearer {token} +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "获取成功", + "data": { + "user_id": 51, + "name": "花花", + "employee_id": "EMP001", + "phone": "13800138000", + "email": "huahua@example.com", + "role_type": 10, + "role_name": "校长", + "dept_name": "管理部", + "campus_ids": [1, 2], + "campus_names": ["总校区", "分校区A"], + "avatar": "/uploads/avatar/51.jpg" + } +} +``` + +### 员工端业务功能 + +#### 1. 我的课程安排 +**接口地址**: `GET /api/staff/schedule` + +**请求参数**: +``` +date: "2025-01-15" // 查询日期,默认今天 +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "获取成功", + "data": [ + { + "id": 1, + "course_name": "跳绳基础课程", + "class_name": "跳绳初级班A", + "venue_name": "训练场地A", + "time_slot": "09:00-10:00", + "student_count": 12, + "status": 1, + "remarks": "正常上课" + } + ] +} +``` + +#### 2. 班级学员列表 +**接口地址**: `GET /api/staff/class/{class_id}/students` + +**响应示例**: +```json +{ + "code": 1, + "msg": "获取成功", + "data": { + "class_info": { + "id": 1, + "class_name": "跳绳初级班A", + "course_name": "跳绳基础课程", + "capacity": 15, + "current_count": 12 + }, + "students": [ + { + "id": 1, + "student_name": "小明", + "student_no": "STU001", + "gender": 1, + "age": 8, + "parent_name": "明爸爸", + "parent_phone": "13600136000", + "avatar": "/uploads/student/1.jpg", + "status": 1 + } + ] + } +} +``` + +#### 3. 考勤打卡 +**接口地址**: `POST /api/staff/attendance/checkin` + +**请求参数**: +```json +{ + "type": 1, // 打卡类型:1-上班,2-下班 + "latitude": 39.9042, // 纬度 + "longitude": 116.4074, // 经度 + "address": "北京市朝阳区xxx路xxx号", + "remark": "正常打卡" +} +``` + +**响应示例**: +```json +{ + "code": 1, + "msg": "打卡成功", + "data": { + "id": 1, + "checkin_time": "2025-01-15 08:30:00", + "type": 1, + "status": 1 + } +} +``` + +### 学员端功能 + +#### 1. 学员登录 +**接口地址**: `POST /api/student/login` + +**请求参数**: +```json +{ + "phone": "13700137000", // 手机号 + "code": "123456" // 验证码 +} +``` + +#### 2. 我的课程 +**接口地址**: `GET /api/student/courses` + +**响应示例**: +```json +{ + "code": 1, + "msg": "获取成功", + "data": [ + { + "id": 1, + "course_name": "跳绳基础课程", + "class_name": "跳绳初级班A", + "coach_name": "张教练", + "total_sessions": 12, + "completed_sessions": 8, + "remaining_sessions": 4, + "next_class_time": "2025-01-16 09:00:00", + "venue_name": "训练场地A" + } + ] +} +``` + +#### 3. 课程预约 +**接口地址**: `POST /api/student/booking` + +**请求参数**: +```json +{ + "schedule_id": 1, // 课程安排ID + "remark": "正常预约" +} +``` + +## 🔧 开发调试 + +### 环境配置 +```bash +# 启动开发环境 +./start.sh + +# 查看服务状态 +docker ps + +# 查看API日志 +docker-compose logs -f php +``` + +### 测试工具 + +#### Postman 集合 +可以导入以下Postman集合进行接口测试: + +```json +{ + "info": { + "name": "智慧教务系统API", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + }, + "variable": [ + { + "key": "base_url", + "value": "http://localhost:20080" + }, + { + "key": "admin_token", + "value": "" + }, + { + "key": "staff_token", + "value": "" + } + ] +} +``` + +#### curl 测试脚本 +```bash +#!/bin/bash + +# 设置基础URL +BASE_URL="http://localhost:20080" + +# 管理员登录 +echo "=== 管理员登录 ===" +ADMIN_TOKEN=$(curl -s -X POST $BASE_URL/adminapi/login/login \ + -H "Content-Type: application/json" \ + -d '{"username":"admin","password":"123456"}' | \ + jq -r '.data.token') + +echo "Admin Token: $ADMIN_TOKEN" + +# 获取校区列表 +echo "=== 获取校区列表 ===" +curl -s -H "Authorization: Bearer $ADMIN_TOKEN" \ + "$BASE_URL/adminapi/campus/list" | jq + +# 获取员工列表 +echo "=== 获取员工列表 ===" +curl -s -H "Authorization: Bearer $ADMIN_TOKEN" \ + "$BASE_URL/adminapi/personnel/list" | jq +``` + +### 错误处理 + +#### 常见错误码 +| 错误码 | 错误信息 | 解决方案 | +|--------|----------|----------| +| 10001 | 参数错误 | 检查请求参数格式和必填字段 | +| 10002 | Token无效 | 重新登录获取新Token | +| 10003 | 权限不足 | 检查用户角色权限 | +| 10004 | 数据不存在 | 确认请求的资源ID是否正确 | +| 10005 | 数据库错误 | 检查数据库连接和SQL语句 | + +#### 调试技巧 +1. **查看详细错误信息** + ```bash + # 开启调试模式 + echo "APP_DEBUG=true" >> niucloud/.env + + # 重启PHP服务 + docker-compose restart php + ``` + +2. **查看SQL执行日志** + ```bash + # 进入MySQL容器 + docker exec -it niucloud_mysql mysql -u niucloud -pniucloud123 + + # 开启查询日志 + SET GLOBAL general_log = 'ON'; + SET GLOBAL general_log_file = '/var/log/mysql/query.log'; + ``` + +3. **API响应时间监控** + ```bash + # 使用curl测试响应时间 + curl -w "@curl-format.txt" -o /dev/null -s "http://localhost:20080/adminapi/user/info" + ``` + +## 📋 更新日志 + +### v1.0.0 (2025-01-14) +- 初始版本发布 +- 完成基础认证功能 +- 实现校区管理接口 +- 实现人员管理接口 +- 实现课程管理接口 +- 实现班级管理接口 +- 实现排课系统接口 +- 实现财务管理接口 +- 实现数据统计接口 +- 完成员工端基础功能 +- 完成学员端基础功能 + +--- + +**文档维护**: 开发团队 +**最后更新**: 2025-01-14 +**文档版本**: v1.0 +**联系方式**: [技术支持邮箱] \ No newline at end of file diff --git a/Dashboard业务逻辑文档-校区转化情况统计(校区数据).md b/Dashboard业务逻辑文档-校区转化情况统计(校区数据).md new file mode 100644 index 00000000..0a2d86cd --- /dev/null +++ b/Dashboard业务逻辑文档-校区转化情况统计(校区数据).md @@ -0,0 +1,638 @@ +| 1月汇总数据 | | | | 2月汇总数据 | | | | 3月汇总数据 | | | | 4月汇总数据 | | | | 5月汇总数据 | | | | 6月汇总数据 | | | | 7月汇总数据 | | | | 8月汇总数据 | | | | +|--------|-----------|------|----|--------|-----------|------|----|--------|-----------|------|----|--------|-----------|------|----|--------|-----------|------|----|--------|-----------|------|----|--------|-----------|------|----|--------|-----------|------|--------| +| 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | +| 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | 1月汇总数据 | | | | 2月汇总数据 | | | | 3月汇总数据 | | | | 4月汇总数据 | | | | 5月汇总数据 | | | | 6月汇总数据 | | | | 7月汇总数据 | | | | 8月汇总数据 | | | | +| 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | 时限 | 渠道 | 具体内容 | 合计 | +| 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | 当月 | 体验包(地推)一访 | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | | 体验包(活动)一访 | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | | 上门(一访) | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | | 美团(一访) | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | | 大众点评(一访) | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | | 抖音(一访) | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | | 小红书(一访) | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | | 异业合作(一访) | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | | 其他(一访) | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | | 全渠道(当月汇总) | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | 往月 | 体验包(地推)一访 | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | | 体验包(地推)二访 | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | | 体验包(活动)一访 | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | | 体验包(活动)二访 | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | +| | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | | | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | | 上门(一访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | | 上门(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | | 美团(一访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | | 美团(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | | 大众点评(一访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | | 大众点评(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | | 抖音(一访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | | 抖音(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | | 小红书(一访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | | 小红书(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | | 异业合作(一访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | | 异业合作(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | | 其他(一访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | | 其他(二访) | 邀约数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | 合计 | 体验包(地推) | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | | 体验包(活动) | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | | 体验包(合计) | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | | 转介绍 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | | 上门 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | | 美团 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | | 大众点评 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | | 抖音 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | | 小红书 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | | 异业合作 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | | 其他 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | +| 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | 汇总 | 全渠道 | 名单数 | | +| | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | | | 到访数 | | +| | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | | | 到访率 | | +| | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | | | 关单数 | | +| | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | | | 关单率 | | +| | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | | | 关单金额 | | diff --git a/Dashboard业务逻辑文档.md b/Dashboard业务逻辑文档.md new file mode 100644 index 00000000..929c5cb1 --- /dev/null +++ b/Dashboard业务逻辑文档.md @@ -0,0 +1,309 @@ +# Dashboard WebView 业务逻辑文档 + +## 概述 + +Dashboard WebView 是一个为移动端应用提供数据可视化展示的功能模块,通过WebView组件在客户端中嵌入HTML页面,展示不同角色的统计数据和图表。 + +## 系统架构 + +### 技术栈 +- **后端**: ThinkPHP 框架 +- **前端**: HTML5 + CSS3 + JavaScript +- **图表库**: ECharts 5.4.0 +- **渲染方式**: ThinkPHP view() 模板渲染 +- **数据传输**: JWT Token + HTTP GET 参数 + +### 文件结构 +``` +niucloud/app/api/ +├── controller/Dashboard.php # 控制器(业务逻辑) +└── view/dashboard/ # 视图模板目录 + ├── main.html # 主页面模板 + ├── error.html # 错误页面模板 + └── layouts/ + └── base.html # 基础布局模板 +``` + +## 业务流程 + +### 1. 页面访问流程 +``` +客户端 → API请求 → Token验证 → 角色识别 → 页面类型判断 → 数据获取 → 模板渲染 → HTML输出 +``` + +### 2. 请求参数说明 +| 参数名 | 类型 | 必填 | 说明 | 示例值 | +|--------|------|------|------|--------| +| type | string | 否 | 页面类型 | my_data / dept_data / campus_data | +| token | string | 是 | 用户认证Token | JWT格式 | +| platform | string | 否 | 平台标识 | web / app / miniprogram | + +### 3. 页面类型定义 +- **my_data**: 我的数据 - 显示个人业绩统计 +- **dept_data**: 部门数据 - 显示所属部门统计 +- **campus_data**: 校区数据 - 显示整个校区统计 + +## 数据统计业务逻辑 + +### 1. 我的数据 (my_data) +**适用角色**: +市场人员(school_departments.id=1的部门=school_sys_role.dept_id的角色) +**数据维度**: +- 本月录入资源数量 +- 当天录入资源数量 +- 获得绩效金额 +- 其他奖金 + +**图表展示**: +- 月度录入资源数量趋势图(折线图) +- 客户来源分布图(饼图) + +**算法逻辑**: + + +### 2. 部门数据 (dept_data) +**适用角色**: 部门主管及以上 +**权限控制**: 只能查看本部门数据 +**数据维度**: +- 部门总业绩 +- 团队人数 +- 人均业绩 +- 部门排名 + +**图表展示**: +- 团队成员业绩排行榜(柱状图) +- 部门月度趋势对比(折线图) + +**算法逻辑**: +```php +// 基于用户所属部门统计部门数据 +function getDeptData($userInfo) { + $deptId = $userInfo['department_id']; + + // 部门总业绩:部门内所有员工的本月业绩总和 + $deptPerformance = Contract::whereIn('staff_id', function($query) use ($deptId) { + $query->select('id')->from('staff')->where('department_id', $deptId); + })->where('status', 'signed') + ->whereMonth('sign_time', date('m')) + ->sum('amount'); + + // 团队人数:部门内员工总数 + $teamCount = Staff::where('department_id', $deptId) + ->where('status', 'active') + ->count(); + + // 人均业绩:部门总业绩 / 团队人数 + $avgPerformance = $teamCount > 0 ? $deptPerformance / $teamCount : 0; + + // 部门排名:按业绩排序获取当前部门排名 + $deptRanking = $this->calculateDeptRanking($deptId); +} +``` + +### 3. 校区数据 (campus_data) +**适用角色**: 校区管理员、校长级别 +**权限控制**: 只能查看所属校区数据 +**数据维度**: +- 校区总业绩 +- 部门数量 +- 员工总数 +- 客户总数 + +**图表展示**: +- 各部门业绩对比(柱状图) +- 校区业绩趋势图(折线图) + +**算法逻辑**: +```php +// 基于用户所属校区统计校区数据 +function getCampusData($userInfo) { + $campusId = $userInfo['campus_id']; + + // 校区总业绩:校区内所有员工的本月业绩总和 + $campusPerformance = Contract::whereIn('staff_id', function($query) use ($campusId) { + $query->select('id')->from('staff')->where('campus_id', $campusId); + })->where('status', 'signed') + ->whereMonth('sign_time', date('m')) + ->sum('amount'); + + // 部门数量:校区内部门总数 + $deptCount = Department::where('campus_id', $campusId) + ->where('status', 'active') + ->count(); + + // 员工总数:校区内所有员工数量 + $staffCount = Staff::where('campus_id', $campusId) + ->where('status', 'active') + ->count(); + + // 客户总数:校区内所有客户数量 + $customerCount = Customer::whereIn('staff_id', function($query) use ($campusId) { + $query->select('id')->from('staff')->where('campus_id', $campusId); + })->count(); +} +``` + +## 权限控制逻辑 + +### 1. Token验证 +```php +// JWT Token 解析获取用户信息 +function verifyToken($token) { + try { + $payload = JWT::decode($token, $secretKey); + return [ + 'user_id' => $payload->user_id, + 'user_type' => $payload->user_type, + 'role_type' => $payload->role_type, + 'campus_id' => $payload->campus_id ?? 0, + 'department_id' => $payload->department_id ?? 0 + ]; + } catch (Exception $e) { + throw new AuthException('Token验证失败'); + } +} +``` + +### 2. 页面访问权限 +```php +// 页面类型访问权限控制 +function checkPageAccess($pageType, $userInfo) { + $rolePermissions = [ + 'staff' => ['my_data'], // 普通员工只能查看个人数据 + 'supervisor' => ['my_data', 'dept_data'], // 主管可查看个人和部门数据 + 'manager' => ['my_data', 'dept_data', 'campus_data'], // 经理可查看所有类型数据 + 'admin' => ['my_data', 'dept_data', 'campus_data'] // 管理员可查看所有类型数据 + ]; + + $userRole = $this->getUserRole($userInfo['user_id']); + $allowedPages = $rolePermissions[$userRole] ?? []; + + if (!in_array($pageType, $allowedPages)) { + throw new PermissionException('无权限访问该页面'); + } +} +``` + +### 3. 数据范围控制 +```php +// 数据查询范围限制 +function applyDataScope($query, $userInfo, $pageType) { + switch ($pageType) { + case 'my_data': + // 只能查看自己的数据 + $query->where('staff_id', $userInfo['user_id']); + break; + + case 'dept_data': + // 只能查看本部门数据 + $deptStaffIds = Staff::where('department_id', $userInfo['department_id']) + ->pluck('id')->toArray(); + $query->whereIn('staff_id', $deptStaffIds); + break; + + case 'campus_data': + // 只能查看本校区数据 + $campusStaffIds = Staff::where('campus_id', $userInfo['campus_id']) + ->pluck('id')->toArray(); + $query->whereIn('staff_id', $campusStaffIds); + break; + } +} +``` + +## 图表配置说明 + +### 1. ECharts 配置标准 +- **主题色**: #29d3b4 (青绿色) +- **背景色**: #181A20 (深灰色) +- **字体**: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif + +### 2. 图表类型映射 +- **折线图**: 趋势数据(月度业绩、时间序列) +- **柱状图**: 对比数据(成员排行、部门对比) +- **饼图**: 占比数据(客户来源分布、业务分布) + +### 3. 响应式设计 +- 移动端优化:小于480px时单列布局 +- 图表自适应:监听窗口大小变化自动调整 + +## 性能优化 + +### 1. 缓存策略 +```php +// Redis缓存用户统计数据(5分钟有效期) +$cacheKey = "dashboard_data_{$userInfo['user_id']}_{$pageType}"; +$cachedData = Redis::get($cacheKey); + +if (!$cachedData) { + $data = $this->calculateRealData($pageType, $userInfo); + Redis::setex($cacheKey, 300, json_encode($data)); // 5分钟缓存 +} else { + $data = json_decode($cachedData, true); +} +``` + +### 2. 数据库优化 +- 为统计查询添加复合索引 +- 使用预计算表存储统计结果 +- 分页查询避免大数据量 + +### 3. 前端优化 +- CDN加载ECharts库 +- 图片懒加载和压缩 +- CSS压缩和合并 + +## 扩展规划 + +### 1. 角色细分支持 +**计划支持的角色类型**: +- **销售专员**: 基础销售数据统计 +- **销售主管**: 团队管理数据 + 个人数据 +- **市场专员**: 线索获取和转化数据 +- **客服专员**: 客户服务相关数据 +- **财务专员**: 收款和财务相关数据 +- **教研专员**: 课程和教学数据 +- **校长**: 全校区综合数据 + +### 2. 数据维度扩展 +**计划新增的统计维度**: +- 客户满意度统计 +- 课程完成率统计 +- 退费率统计 +- 续费率统计 +- 员工绩效评分 +- 市场推广效果统计 + +### 3. 图表类型扩展 +**计划支持的图表类型**: +- 雷达图:综合能力评估 +- 热力图:时间分布统计 +- 仪表盘:目标完成度 +- 漏斗图:业务流程转化 +- 地图:地域分布统计 + +## 数据表设计要求 + +### 统计相关表 + + +## 错误处理 + +### 1. 异常类型定义 +```php +class DashboardException extends Exception { + const TOKEN_INVALID = 1001; // Token无效 + const PERMISSION_DENIED = 1002; // 权限不足 + const DATA_NOT_FOUND = 1003; // 数据不存在 + const TEMPLATE_ERROR = 1004; // 模板渲染错误 +} +``` + +### 2. 错误页面展示 +- 友好的错误提示界面 +- 错误代码和消息展示 +- 返回和重试按钮 + + + +*该文档会根据实际开发需求持续更新和完善* \ No newline at end of file diff --git a/admin/src/api/contract.ts b/admin/src/api/contract.ts index 5e7456c1..41956d84 100644 --- a/admin/src/api/contract.ts +++ b/admin/src/api/contract.ts @@ -81,6 +81,9 @@ export const contractTemplateApi = { updateStatus: (id: number, status: string) => request.post(`/document_template/update_status/${id}`, { contract_status: status }), + // 编辑模板 + update: (id: number, data: any) => request.put(`/document_template/update/${id}`, data), + // 删除模板 delete: (id: number) => request.delete(`/document_template/delete/${id}`) } diff --git a/admin/src/app/views/contract/contract.vue b/admin/src/app/views/contract/contract.vue index 5aec75f6..980fe41a 100644 --- a/admin/src/app/views/contract/contract.vue +++ b/admin/src/app/views/contract/contract.vue @@ -8,8 +8,8 @@ - - + + @@ -34,8 +34,8 @@ @@ -49,8 +49,11 @@ - + @@ -486,6 +525,7 @@ const tableData = ref([]) const showUploadDialog = ref(false) const showConfigDialog = ref(false) const showDistributeDialog = ref(false) +const showEditDialog = ref(false) const currentContractId = ref(0) const currentContract = ref(null) const uploading = ref(false) @@ -519,6 +559,13 @@ const uploadForm = reactive({ remarks: '' }) +const editForm = reactive({ + id: 0, + contract_name: '', + contract_type: '', + remarks: '' +}) + const staffSearchForm = reactive({ name: '', phone: '', @@ -605,6 +652,42 @@ const updateStatus = async (row: ContractTemplate) => { } } +// 编辑模板 +const editTemplate = (row: ContractTemplate) => { + editForm.id = row.id + editForm.contract_name = row.contract_name + editForm.contract_type = row.contract_type + editForm.remarks = row.remarks || '' + showEditDialog.value = true +} + +// 保存编辑 +const saveEdit = async () => { + try { + if (!editForm.contract_name) { + ElMessage.error('请输入模板名称') + return + } + + if (!editForm.contract_type) { + ElMessage.error('请选择合同类型') + return + } + + await contractTemplateApi.update(editForm.id, { + contract_name: editForm.contract_name, + contract_type: editForm.contract_type, + remarks: editForm.remarks + }) + + ElMessage.success('编辑成功') + showEditDialog.value = false + getList() + } catch (error) { + ElMessage.error('编辑失败') + } +} + const configPlaceholder = async (row: ContractTemplate) => { currentContractId.value = row.id currentTemplateInfo.value = row // 保存当前模板信息 diff --git a/admin/src/app/views/instructional_material/components/lesson-course-teaching-edit.vue b/admin/src/app/views/instructional_material/components/lesson-course-teaching-edit.vue index e509e904..d314ffaa 100644 --- a/admin/src/app/views/instructional_material/components/lesson-course-teaching-edit.vue +++ b/admin/src/app/views/instructional_material/components/lesson-course-teaching-edit.vue @@ -1,7 +1,7 @@ @@ -209,7 +215,6 @@ import { ref, reactive, onMounted } from 'vue' import { ElMessage, ElMessageBox, type FormInstance } from 'element-plus' import { Search, Refresh, Plus, Upload, Download, UploadFilled } from '@element-plus/icons-vue' -import { useRouter } from 'vue-router' import { getSalaryList, deleteSalary, @@ -218,8 +223,8 @@ import { type QueryParams, type SalaryItem } from '@/app/api/salary' - -const router = useRouter() +import SalaryEdit from './components/salary-edit.vue' +import SalaryDetail from './components/salary-detail.vue' // 响应式数据 const loading = ref(false) @@ -240,6 +245,8 @@ const queryParams = reactive({ const queryFormRef = ref() const uploadRef = ref() +const salaryEditRef = ref() +const salaryDetailRef = ref() // 上传相关 const importAction = '/salary/payroll/import' @@ -293,17 +300,25 @@ const resetQuery = () => { // 新增操作 const handleAdd = () => { - router.push('/salary/edit') + if (salaryEditRef.value) { + salaryEditRef.value.showDialog = true + salaryEditRef.value.setFormData() + } } // 编辑操作 const handleEdit = (row: SalaryItem) => { - router.push(`/salary/edit?id=${row.id}`) + if (salaryEditRef.value) { + salaryEditRef.value.showDialog = true + salaryEditRef.value.setFormData(row) + } } // 查看详情 const handleView = (row: SalaryItem) => { - router.push(`/salary/detail?id=${row.id}`) + if (salaryDetailRef.value) { + salaryDetailRef.value.setDetailData(row) + } } // 删除操作 @@ -391,6 +406,11 @@ const handleImportSuccess = (response: any) => { const handleImportError = () => { ElMessage.error('导入失败') } + +// 弹窗完成回调 +const handleDialogComplete = () => { + loadTableData() +} diff --git a/admin/src/app/views/xsyj/xsyj.vue b/admin/src/app/views/xsyj/xsyj.vue index d60e28aa..d238d941 100644 --- a/admin/src/app/views/xsyj/xsyj.vue +++ b/admin/src/app/views/xsyj/xsyj.vue @@ -3,7 +3,10 @@
{{ pageName }} - 新增阶段 + + + 阶段名称来自系统字典"sales_title"配置 +
@@ -25,7 +28,7 @@ - + @@ -118,9 +121,6 @@
- 删除该阶段 - @@ -192,10 +192,11 @@ + + \ No newline at end of file diff --git a/admin/src/utils/directUpload.ts b/admin/src/utils/directUpload.ts new file mode 100644 index 00000000..ade06c20 --- /dev/null +++ b/admin/src/utils/directUpload.ts @@ -0,0 +1,255 @@ +/** + * 对象存储直传工具类 + * 支持腾讯云COS和阿里云OSS + */ + +import { getToken } from '@/utils/common' +import { ElMessage } from 'element-plus' + +export interface UploadCredentials { + storage_type: 'tencent' | 'aliyun' + upload_url: string + credentials: any + file_path: string + domain: string + max_size: number + expired: number +} + +export interface UploadResult { + success: boolean + url: string + error?: string +} + +export interface UploadOptions { + file: File + fileType: 'image' | 'video' | 'document' + onProgress?: (percent: number) => void + onSuccess?: (result: UploadResult) => void + onError?: (error: string) => void +} + +/** + * 对象存储直传类 + */ +export class DirectUpload { + private baseUrl: string + + constructor() { + this.baseUrl = import.meta.env.VITE_IMG_DOMAIN || 'http://localhost:20080' + } + + /** + * 获取上传凭证 + */ + private async getUploadCredentials(fileType: string, fileName?: string): Promise { + const params = new URLSearchParams({ + file_type: fileType + }) + if (fileName) { + params.append('file_name', fileName) + } + + const response = await fetch(`${this.baseUrl}/adminapi/sys/direct/credentials?${params}`, { + method: 'GET', + headers: { + 'token': getToken() || '', + 'Content-Type': 'application/json' + } + }) + + const result = await response.json() + if (result.code !== 1) { + throw new Error(result.msg || '获取上传凭证失败') + } + + return result.data + } + + /** + * 执行直传上传 + */ + async upload(options: UploadOptions): Promise { + const { file, fileType, onProgress, onSuccess, onError } = options + + try { + // 1. 获取上传凭证 + const credentials = await this.getUploadCredentials(fileType, file.name) + + // 2. 验证文件大小 + if (credentials.max_size > 0 && file.size > credentials.max_size) { + const maxSizeMB = Math.round(credentials.max_size / 1024 / 1024) + throw new Error(`文件大小不能超过 ${maxSizeMB}MB`) + } + + // 3. 根据存储类型执行上传 + let uploadResult: UploadResult + if (credentials.storage_type === 'tencent') { + uploadResult = await this.uploadToTencent(file, credentials, onProgress) + } else if (credentials.storage_type === 'aliyun') { + uploadResult = await this.uploadToAliyun(file, credentials, onProgress) + } else { + throw new Error('不支持的存储类型') + } + + // 4. 上传成功回调 + if (uploadResult.success && onSuccess) { + onSuccess(uploadResult) + } + + return uploadResult + } catch (error) { + const errorMsg = error instanceof Error ? error.message : '上传失败' + if (onError) { + onError(errorMsg) + } + return { + success: false, + url: '', + error: errorMsg + } + } + } + + /** + * 腾讯云COS直传 + */ + private async uploadToTencent( + file: File, + credentials: UploadCredentials, + onProgress?: (percent: number) => void + ): Promise { + return new Promise((resolve, reject) => { + const formData = new FormData() + + // 生成文件路径(替换模板中的${filename}) + const filePath = credentials.file_path.replace('${filename}', file.name) + + // 添加腾讯云COS必需的字段 + formData.append('key', filePath) + formData.append('policy', credentials.credentials.policy) + formData.append('q-sign-algorithm', credentials.credentials['q-sign-algorithm']) + formData.append('q-ak', credentials.credentials['q-ak']) + formData.append('q-key-time', credentials.credentials['q-key-time']) + formData.append('q-signature', credentials.credentials['q-signature']) + formData.append('file', file) + + const xhr = new XMLHttpRequest() + + // 上传进度 + if (onProgress) { + xhr.upload.addEventListener('progress', (event) => { + if (event.lengthComputable) { + const percent = Math.round((event.loaded / event.total) * 100) + onProgress(percent) + } + }) + } + + // 上传完成 + xhr.addEventListener('load', () => { + if (xhr.status === 204 || xhr.status === 200) { + const fileUrl = `${credentials.domain}/${filePath}` + resolve({ + success: true, + url: fileUrl + }) + } else { + reject(new Error('上传失败,请重试')) + } + }) + + // 上传错误 + xhr.addEventListener('error', () => { + reject(new Error('网络错误,上传失败')) + }) + + // 执行上传 + xhr.open('POST', credentials.upload_url, true) + xhr.send(formData) + }) + } + + /** + * 阿里云OSS直传 + */ + private async uploadToAliyun( + file: File, + credentials: UploadCredentials, + onProgress?: (percent: number) => void + ): Promise { + return new Promise((resolve, reject) => { + const formData = new FormData() + + // 生成文件路径(替换模板中的${filename}) + const filePath = credentials.file_path.replace('${filename}', file.name) + + // 添加阿里云OSS必需的字段 + formData.append('OSSAccessKeyId', credentials.credentials.OSSAccessKeyId) + formData.append('policy', credentials.credentials.policy) + formData.append('signature', credentials.credentials.signature) + formData.append('key', filePath) + formData.append('success_action_status', credentials.credentials.success_action_status) + formData.append('file', file) + + const xhr = new XMLHttpRequest() + + // 上传进度 + if (onProgress) { + xhr.upload.addEventListener('progress', (event) => { + if (event.lengthComputable) { + const percent = Math.round((event.loaded / event.total) * 100) + onProgress(percent) + } + }) + } + + // 上传完成 + xhr.addEventListener('load', () => { + if (xhr.status === 200) { + const fileUrl = `${credentials.domain}/${filePath}` + resolve({ + success: true, + url: fileUrl + }) + } else { + reject(new Error('上传失败,请重试')) + } + }) + + // 上传错误 + xhr.addEventListener('error', () => { + reject(new Error('网络错误,上传失败')) + }) + + // 执行上传 + xhr.open('POST', credentials.upload_url, true) + xhr.send(formData) + }) + } +} + +// 导出单例实例 +export const directUpload = new DirectUpload() + +/** + * 便捷的上传方法 + */ +export async function uploadFile(options: UploadOptions): Promise { + return directUpload.upload(options) +} + +/** + * 检查是否支持直传 + */ +export async function isDirectUploadSupported(): Promise { + try { + const directUploadInstance = new DirectUpload() + await directUploadInstance.getUploadCredentials('image') + return true + } catch (error) { + console.warn('Direct upload not supported:', error) + return false + } +} \ No newline at end of file diff --git a/admin/vite.config.ts b/admin/vite.config.ts index 406fdfc2..53c474ad 100644 --- a/admin/vite.config.ts +++ b/admin/vite.config.ts @@ -17,7 +17,10 @@ export default defineConfig({ resolvers: [ElementPlusResolver()] }), Components({ - resolvers: [ElementPlusResolver()] + resolvers: [ElementPlusResolver()], + dirs: ['src/components'], + deep: true, + dts: true }) ], resolve: { diff --git a/niucloud/app/adminapi/controller/document/DocumentTemplate.php b/niucloud/app/adminapi/controller/document/DocumentTemplate.php index fa33c0dd..52e77f49 100644 --- a/niucloud/app/adminapi/controller/document/DocumentTemplate.php +++ b/niucloud/app/adminapi/controller/document/DocumentTemplate.php @@ -254,6 +254,35 @@ class DocumentTemplate extends BaseAdminController } } + /** + * 编辑模板 + * @param int $id + * @return \think\Response + */ + public function update(int $id) + { + $data = $this->request->params([ + ['contract_name', ''], + ['contract_type', ''], + ['remarks', ''] + ]); + + if (empty($data['contract_name'])) { + return fail('模板名称不能为空'); + } + + if (empty($data['contract_type'])) { + return fail('合同类型不能为空'); + } + + try { + (new DocumentTemplateService())->update($id, $data); + return success('编辑成功'); + } catch (\Exception $e) { + return fail($e->getMessage()); + } + } + /** * 更新模板状态 * @param int $id diff --git a/niucloud/app/adminapi/controller/sys/Ueditor.php b/niucloud/app/adminapi/controller/sys/Ueditor.php index 24f278de..21142d4d 100644 --- a/niucloud/app/adminapi/controller/sys/Ueditor.php +++ b/niucloud/app/adminapi/controller/sys/Ueditor.php @@ -36,7 +36,7 @@ class Ueditor extends BaseAdminController // 插入的图片浮动方式,默认值:none "imageInsertAlign" => "none", // 图片访问路径前缀,默认值:空 - "imageUrlPrefix" => url('/', domain: true)->buildUrl(), + "imageUrlPrefix" => request()->domain(), // 执行上传涂鸦的action名称,默认值:uploadscrawl "scrawlActionName" => "crawl", // 提交的图片表单名称,默认值:upfile @@ -70,7 +70,7 @@ class Ueditor extends BaseAdminController // 提交的视频表单名称,默认值:upfile "videoFieldName" => "file", // 视频访问路径前缀 - "videoUrlPrefix" => url('/', domain: true)->buildUrl(), + "videoUrlPrefix" => request()->domain(), // 上传大小限制,单位B,默认值:102400000 "videoMaxSize" => 104857600, // 上传视频格式显示 @@ -106,7 +106,7 @@ class Ueditor extends BaseAdminController // 公式配置 "formulaConfig" => [ // 公式渲染的路径 - "imageUrlTemplate" => url('/', domain: true)->buildUrl() . "{}" + "imageUrlTemplate" => request()->domain() . "{}" ] ], 'json', 200); } diff --git a/niucloud/app/adminapi/controller/upload/DirectUpload.php b/niucloud/app/adminapi/controller/upload/DirectUpload.php new file mode 100644 index 00000000..e0a005be --- /dev/null +++ b/niucloud/app/adminapi/controller/upload/DirectUpload.php @@ -0,0 +1,59 @@ +request->params([ + ['file_type', 'image'], // 文件类型:image、video、document + ['file_name', ''], // 文件名(可选) + ]); + + $service = new DirectUploadService(); + $result = $service->getUploadCredentials($data['file_type'], $data['file_name']); + + return success($result); + } + + /** + * 确认文件上传完成,将文件信息保存到数据库 + * @return Response + */ + public function confirmUpload() + { + $data = $this->request->params([ + ['file_url', ''], // 文件URL + ['file_name', ''], // 文件名 + ['file_size', 0], // 文件大小 + ['file_type', 'image'], // 文件类型 + ['storage_type', 'tencent'], // 存储类型 + ]); + + $service = new DirectUploadService(); + $result = $service->confirmUpload($data); + + return success($result); + } +} \ No newline at end of file diff --git a/niucloud/app/adminapi/route/document_template.php b/niucloud/app/adminapi/route/document_template.php index 75a3ba73..dc63dc91 100644 --- a/niucloud/app/adminapi/route/document_template.php +++ b/niucloud/app/adminapi/route/document_template.php @@ -21,6 +21,7 @@ Route::group('document_template', function () { // 模板管理 Route::get('lists', 'document.DocumentTemplate/lists'); Route::get('info/:id', 'document.DocumentTemplate/info'); + Route::put('update/:id', 'document.DocumentTemplate/update'); Route::post('update_status/:id', 'document.DocumentTemplate/updateStatus'); Route::delete('delete/:id', 'document.DocumentTemplate/delete'); Route::post('copy/:id', 'document.DocumentTemplate/copy'); diff --git a/niucloud/app/adminapi/route/sys.php b/niucloud/app/adminapi/route/sys.php index a3aeadd2..3a57de1d 100644 --- a/niucloud/app/adminapi/route/sys.php +++ b/niucloud/app/adminapi/route/sys.php @@ -326,9 +326,14 @@ Route::group('sys', function() { //附件上传 Route::post('document/:type', 'upload.Upload/document'); - Route::post('document_lead/:type', 'upload.Upload/document_lead'); + /***************************************************** 对象存储直传 ****************************************************/ + //获取直传凭证 + Route::get('direct/credentials', 'upload.DirectUpload/getUploadCredentials'); + //确认上传完成 + Route::post('direct/confirm', 'upload.DirectUpload/confirmUpload'); + //附件列表 Route::get('attachment', 'sys.Attachment/lists'); //附件列表 diff --git a/niucloud/app/service/admin/course/CourseService.php b/niucloud/app/service/admin/course/CourseService.php index 8ef0cd58..debe5c25 100644 --- a/niucloud/app/service/admin/course/CourseService.php +++ b/niucloud/app/service/admin/course/CourseService.php @@ -47,7 +47,7 @@ class CourseService extends BaseAdminService public function contract_all(){ $contract = new Contract(); - $list = $contract->where(['contract_type' => '外部','contract_status' => '可用'])->select()->toArray(); + $list = $contract->where(['contract_type' => '外部','contract_status' => 'active'])->select()->toArray(); return $list; } diff --git a/niucloud/app/service/admin/document/DocumentTemplateService.php b/niucloud/app/service/admin/document/DocumentTemplateService.php index 48e577f5..1cff81c2 100644 --- a/niucloud/app/service/admin/document/DocumentTemplateService.php +++ b/niucloud/app/service/admin/document/DocumentTemplateService.php @@ -945,6 +945,36 @@ class DocumentTemplateService extends BaseAdminService return $this->logModel->whereIn('id', $ids)->delete(); } + /** + * 编辑模板 + * @param int $id + * @param array $data + * @return bool + * @throws \Exception + */ + public function update(int $id, array $data) + { + $template = $this->contractModel->find($id); + if (!$template) { + throw new \Exception('模板不存在'); + } + + // 更新基本信息 + if (isset($data['contract_name'])) { + $template->contract_name = $data['contract_name']; + } + if (isset($data['contract_type'])) { + $template->contract_type = $data['contract_type']; + } + if (isset($data['remarks'])) { + $template->remarks = $data['remarks']; + } + + $template->updated_at = date('Y-m-d H:i:s'); + + return $template->save(); + } + /** * 更新模板状态 * @param int $id diff --git a/niucloud/app/service/admin/upload/DirectUploadService.php b/niucloud/app/service/admin/upload/DirectUploadService.php new file mode 100644 index 00000000..26d3be16 --- /dev/null +++ b/niucloud/app/service/admin/upload/DirectUploadService.php @@ -0,0 +1,237 @@ +getConfig('STORAGE'); + if (empty($config_data) || empty($config_data['value'])) { + throw new AdminException('存储配置未设置'); + } + + $storage_config = $config_data['value']; + if (is_string($storage_config)) { + $storage_config = json_decode($storage_config, true); + } + + if (empty($storage_config)) { + throw new AdminException('存储配置格式错误'); + } + + $default_storage = $storage_config['default'] ?? 'local'; + if ($default_storage == 'local') { + throw new AdminException('本地存储不支持直传'); + } + + if (!isset($storage_config[$default_storage])) { + throw new AdminException('存储配置错误'); + } + + $config = $storage_config[$default_storage]; + + // 生成文件路径 + $file_path = $this->generateFilePath($file_type, $file_name); + + // 根据不同存储类型获取凭证 + switch ($default_storage) { + case 'tencent': + return $this->getTencentCredentials($config, $file_path, $file_type); + case 'aliyun': + return $this->getAliyunCredentials($config, $file_path, $file_type); + default: + throw new AdminException('不支持的存储类型'); + } + } + + /** + * 获取腾讯云COS直传凭证 + * @param array $config 配置信息 + * @param string $file_path 文件路径 + * @param string $file_type 文件类型 + * @return array + */ + private function getTencentCredentials($config, $file_path, $file_type) + { + // 检查必要的配置 + $required_keys = ['bucket', 'region', 'access_key', 'secret_key']; + foreach ($required_keys as $key) { + if (empty($config[$key])) { + throw new AdminException("腾讯云配置缺少必要参数: {$key}"); + } + } + + // 生成策略 + $expired = time() + 3600; // 1小时过期 + $policy = [ + 'expiration' => gmdate('Y-m-d\TH:i:s.000\Z', $expired), + 'conditions' => [ + ['bucket' => $config['bucket']], + ['starts-with' => '$key', $file_path] + ] + ]; + + // 根据文件类型设置大小限制 + $max_size = $this->getMaxFileSize($file_type); + if ($max_size > 0) { + $policy['conditions'][] = ['content-length-range', 0, $max_size]; + } + + $policy_encoded = base64_encode(json_encode($policy)); + $signature = hash_hmac('sha1', $policy_encoded, $config['secret_key'], true); + $signature_encoded = base64_encode($signature); + + return [ + 'storage_type' => 'tencent', + 'upload_url' => "https://{$config['bucket']}.cos.{$config['region']}.myqcloud.com", + 'credentials' => [ + 'policy' => $policy_encoded, + 'q-sign-algorithm' => 'sha1', + 'q-ak' => $config['access_key'], + 'q-key-time' => time() . ';' . $expired, + 'q-signature' => $signature_encoded, + ], + 'file_path' => $file_path, + 'domain' => $config['domain'] ?? "https://{$config['bucket']}.cos.{$config['region']}.myqcloud.com", + 'max_size' => $max_size, + 'expired' => $expired + ]; + } + + /** + * 获取阿里云OSS直传凭证 + * @param array $config 配置信息 + * @param string $file_path 文件路径 + * @param string $file_type 文件类型 + * @return array + */ + private function getAliyunCredentials($config, $file_path, $file_type) + { + // 检查必要的配置 + $required_keys = ['bucket', 'endpoint', 'access_key', 'secret_key']; + foreach ($required_keys as $key) { + if (empty($config[$key])) { + throw new AdminException("阿里云配置缺少必要参数: {$key}"); + } + } + + $expired = time() + 3600; // 1小时过期 + $dir = dirname($file_path) . '/'; + + // 生成策略 + $policy = [ + 'expiration' => gmdate('Y-m-d\TH:i:s.000\Z', $expired), + 'conditions' => [ + ['starts-with' => '$key', $dir], + ] + ]; + + // 根据文件类型设置大小限制 + $max_size = $this->getMaxFileSize($file_type); + if ($max_size > 0) { + $policy['conditions'][] = ['content-length-range', 0, $max_size]; + } + + $policy_encoded = base64_encode(json_encode($policy)); + $signature = base64_encode(hash_hmac('sha1', $policy_encoded, $config['secret_key'], true)); + + return [ + 'storage_type' => 'aliyun', + 'upload_url' => "https://{$config['bucket']}.{$config['endpoint']}", + 'credentials' => [ + 'OSSAccessKeyId' => $config['access_key'], + 'policy' => $policy_encoded, + 'signature' => $signature, + 'key' => $file_path, + 'success_action_status' => '200', + ], + 'file_path' => $file_path, + 'domain' => $config['domain'] ?? "https://{$config['bucket']}.{$config['endpoint']}", + 'max_size' => $max_size, + 'expired' => $expired + ]; + } + + /** + * 生成文件路径 + * @param string $file_type 文件类型 + * @param string $file_name 文件名 + * @return string + */ + private function generateFilePath($file_type, $file_name = '') + { + $type_dir_map = [ + 'image' => 'upload/attachment/image', + 'video' => 'upload/attachment/video', + 'document' => 'upload/attachment/document' + ]; + + $dir = $type_dir_map[$file_type] ?? 'upload/attachment/file'; + $date_dir = date('Y/m/d'); + + if (empty($file_name)) { + $file_name = uniqid() . '_${filename}'; // ${filename} 将被前端替换 + } + + return $dir . '/' . $date_dir . '/' . $file_name; + } + + /** + * 根据文件类型获取最大文件大小 + * @param string $file_type 文件类型 + * @return int 字节数,0表示不限制 + */ + private function getMaxFileSize($file_type) + { + $size_map = [ + 'image' => 10 * 1024 * 1024, // 10MB + 'video' => 500 * 1024 * 1024, // 500MB + 'document' => 50 * 1024 * 1024, // 50MB + ]; + + return $size_map[$file_type] ?? 10 * 1024 * 1024; + } + + /** + * 确认上传完成 + * @param array $data 文件信息 + * @return array + */ + public function confirmUpload($data) + { + // 这里可以将文件信息保存到附件表,供后续管理使用 + // 暂时直接返回文件URL,实际项目中可以根据需要保存到数据库 + + return [ + 'url' => $data['file_url'], + 'name' => $data['file_name'], + 'size' => $data['file_size'], + 'type' => $data['file_type'], + 'storage_type' => $data['storage_type'] + ]; + } +} \ No newline at end of file diff --git a/niucloud/databasedoc/README.md b/niucloud/databasedoc/README.md new file mode 100644 index 00000000..4a478726 --- /dev/null +++ b/niucloud/databasedoc/README.md @@ -0,0 +1,72 @@ +# 智慧教务系统数据库文档 + +## 概述 +本目录包含智慧教务系统所有数据表的功能用途文档,共计 **122个** 数据表的详细说明文档。 + +## 文档结构 +每个数据表文档包含以下内容: +- **表概述**: 表名和功能描述 +- **字段说明**: 详细的字段信息,包括类型、约束、注释等 +- **功能用途**: 主要功能和业务场景说明 +- **关联关系**: 与其他表的直接和间接关联关系 +- **索引建议**: 基于字段特点的索引优化建议 +- **注意事项**: 重要的使用注意事项和最佳实践 + +## 核心业务表 +### 基础数据表 +- `school_campus.md` - 校区信息管理表 +- `school_sys_user.md` - 系统用户管理表 +- `school_sys_role.md` - 角色权限管理表 +- `school_sys_menu.md` - 菜单权限管理表 + +### 学员管理表 +- `school_student.md` - 学员信息管理表 +- `school_class.md` - 班级管理表 +- `school_class_personnel_rel.md` - 班级人员关系表 + +### 课程管理表 +- `school_course.md` - 课程信息管理表 +- `school_schedule.md` - 课程安排表 +- `school_attendance.md` - 考勤记录表 + +### 财务管理表 +- `school_fee.md` - 费用管理表 +- `school_account_log.md` - 账单日志表 +- `school_campus_pay.md` - 校区支付配置表 + +### 系统管理表 +- `school_addon.md` - 插件管理表 +- `school_sys_config.md` - 系统配置表 +- `school_sys_cron_task.md` - 定时任务表 + +## 文档使用说明 + +### 开发人员 +1. 在进行数据库设计时,参考相关表的字段说明和关联关系 +2. 根据索引建议优化数据库查询性能 +3. 遵循注意事项中的最佳实践 + +### 运维人员 +1. 了解表的功能用途,合理规划数据备份策略 +2. 根据关联关系分析数据依赖,避免误删重要数据 +3. 参考索引建议进行数据库性能优化 + +### 产品经理 +1. 通过功能用途和业务场景了解系统数据结构 +2. 基于表关联关系理解业务流程 +3. 为新功能设计提供数据支撑 + +## 文档维护 +- 文档生成时间: 2025年12月 +- 数据库版本: MySQL 8.0 +- 文档状态: 已完成所有表的详细说明 +- 更新频率: 随数据库结构变更同步更新 + +## 注意事项 +1. 所有文档基于当前数据库结构生成,如有结构变更需要同步更新文档 +2. 关联关系分析基于字段命名和业务逻辑推断,实际使用时请结合具体业务场景 +3. 索引建议仅供参考,实际创建时需要结合具体的查询场景和数据量 +4. 涉及个人隐私的表(如学员信息)需要严格遵循数据保护法规 + +## 联系方式 +如有文档相关问题或建议,请联系系统开发团队。 \ No newline at end of file diff --git a/niucloud/databasedoc/role_menu_permissions.md b/niucloud/databasedoc/role_menu_permissions.md new file mode 100644 index 00000000..f4b3cdf3 --- /dev/null +++ b/niucloud/databasedoc/role_menu_permissions.md @@ -0,0 +1,95 @@ +# role_menu_permissions 表文档 + +## 表概述 +**表名**: role_menu_permissions +**功能**: 角色菜单权限关联表,用于管理系统中角色与菜单之间的权限关联关系,实现基于角色的访问控制(RBAC),支持细粒度的菜单权限管理和动态权限分配,为系统安全和权限控制提供核心数据支持 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +role_id int NULL NO MUL NULL select,insert,update,references 角色ID +menu_id int NULL NO MUL NULL select,insert,update,references 菜单ID +is_enabled tinyint(1) NULL YES 1 select,insert,update,references 是否启用 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references +``` + +## 功能用途 + +### 主要功能 +- **角色菜单权限关联**: 建立角色与菜单之间的权限关联关系 +- **权限控制**: 控制不同角色对系统菜单的访问权限 +- **权限启用管理**: 通过is_enabled字段控制权限的启用和禁用 +- **细粒度权限**: 实现菜单级别的精细化权限控制 +- **权限继承**: 支持角色权限的继承和覆盖机制 +- **动态权限**: 支持运行时动态调整角色菜单权限 +- **权限审计**: 记录权限分配的时间和变更历史 +- **批量权限**: 支持批量分配和回收角色权限 +- **权限模板**: 为角色权限分配提供模板支持 + +### 业务场景 +- **权限分配**: 为新创建的角色分配菜单访问权限 +- **权限调整**: 根据业务需要调整角色的菜单权限 +- **权限回收**: 回收离职人员或角色变更的菜单权限 +- **权限审核**: 定期审核和清理不必要的权限分配 +- **功能上线**: 新功能菜单上线时的权限分配 +- **权限继承**: 角色层级变化时的权限继承处理 +- **临时权限**: 临时授予特定角色某些菜单权限 +- **权限模板**: 基于角色模板快速分配权限 +- **合规检查**: 满足权限管理的合规性要求 + +## 关联关系 + +### 主要关联表 +- `school_sys_role`: 系统角色表 (role_id外键关联) +- `school_sys_menu`: 系统菜单表 (menu_id外键关联) +- `school_personnel`: 人员信息表 (通过角色关联用户) +- `sys_log`: 系统日志表 (权限变更日志) +- `school_sys_config`: 系统配置表 (权限相关配置) +- `school_campus`: 校区信息表 (数据权限范围) + +### 关联说明 +- **角色关联**: role_id关联school_sys_role表,确定权限归属角色 +- **菜单关联**: menu_id关联school_sys_menu表,确定可访问的菜单 +- **用户关联**: 通过角色间接关联用户,实现用户菜单权限控制 +- **日志关联**: 权限变更操作记录到系统日志中 +- **配置关联**: 权限相关的系统配置参数 +- **数据权限**: 结合校区等信息实现数据级权限控制 +- **层级关联**: 支持菜单层级权限的继承和控制 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: + - role_id (角色权限查询) + - menu_id (菜单权限查询) +- **业务索引**: + - is_enabled (启用状态查询) +- **复合索引**: + - (role_id, menu_id) (角色菜单权限唯一性) + - (role_id, is_enabled) (角色启用权限查询) + - (menu_id, is_enabled) (菜单启用权限查询) + - (role_id, menu_id, is_enabled) (完整权限查询) +- **时间索引**: + - created_at (创建时间查询) + - updated_at (更新时间查询) + +## 注意事项 +- **权限唯一性**: (role_id, menu_id)组合应保证唯一性,避免重复权限记录 +- **外键完整性**: role_id和menu_id必须在对应的表中存在 +- **权限一致性**: 权限变更时需要同步更新相关缓存和会话 +- **启用状态**: is_enabled字段变更需要实时生效到用户权限 +- **权限继承**: 角色层级变化时需要重新计算权限继承关系 +- **批量操作**: 批量权限分配时需要保证事务一致性 +- **权限验证**: 菜单访问时需要验证对应的权限记录 +- **软删除**: 建议使用软删除而非物理删除权限记录 +- **权限缓存**: 频繁访问的权限信息建议使用缓存机制 +- **审计日志**: 权限变更操作需要记录详细的审计日志 +- **默认权限**: 新角色创建时需要分配默认的基础权限 +- **权限回收**: 角色删除时需要同步清理相关权限记录 +- **数据完整性**: 删除角色或菜单时需要检查权限依赖关系 +- **权限模板**: 建议建立权限模板机制简化权限分配 +- **最小权限**: 遵循最小权限原则,只分配必要的菜单权限 +- **权限监控**: 建立权限使用监控,及时发现异常权限访问 +- **时效性**: 权限变更需要及时生效,避免权限延迟 diff --git a/niucloud/databasedoc/school_account_log.md b/niucloud/databasedoc/school_account_log.md new file mode 100644 index 00000000..6f014edc --- /dev/null +++ b/niucloud/databasedoc/school_account_log.md @@ -0,0 +1,97 @@ +# school_account_log 表文档 + +## 表概述 +**表名**: school_account_log +**功能**: 账户日志管理表,负责记录教务系统中的各种账户交易日志,包括支付、退款、转账等财务操作的详细记录 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 主键 +type varchar(255) utf8mb4_general_ci NO pay select,insert,update,references 账单类型pay,refund,transfer +money decimal(10,2) NULL NO 0.00 select,insert,update,references 交易金额 +trade_no varchar(255) utf8mb4_general_ci NO select,insert,update,references 对应类型交易单号 +create_time varchar(255) utf8mb4_general_ci NO 0 select,insert,update,references 添加时间 +``` + +## 功能用途 + +### 主要功能 +- **交易日志记录**: 记录所有账户相关的交易操作日志 +- **交易类型管理**: 区分支付、退款、转账等不同类型的交易 +- **金额追踪**: 记录每笔交易的具体金额信息 +- **交易单号关联**: 通过交易单号关联具体的业务订单 +- **时间记录**: 记录交易发生的准确时间 +- **审计追踪**: 提供完整的财务操作审计轨迹 +- **数据统计**: 支持各种财务数据的统计和分析 +- **异常监控**: 监控异常交易和可疑操作 +- **对账支持**: 为财务对账提供详细数据支持 + +### 业务场景 +- **支付记录**: 记录学员缴费、课程购买等支付操作 +- **退款处理**: 记录退课、退费等退款操作 +- **转账管理**: 记录账户间的资金转移操作 +- **财务对账**: 与第三方支付平台进行对账 +- **审计检查**: 财务审计时提供详细的交易记录 +- **异常排查**: 排查账户异常和交易问题 +- **报表生成**: 生成各种财务报表和统计数据 +- **风控监控**: 监控可疑交易和风险操作 +- **数据分析**: 分析收入趋势和交易模式 + +## 关联关系 + +### 主要关联表 +- `school_pay`: 支付表 (支付交易关联) +- `school_order_table`: 订单表 (订单交易关联) +- `school_contract`: 合同表 (合同交易关联) +- `school_member`: 会员表 (会员交易关联) +- `school_refund`: 退款表 (退款交易关联) +- `school_transfer`: 转账表 (转账交易关联) +- `school_personnel`: 人员表 (操作人员关联) +- `school_campus`: 校区表 (校区财务关联) + +### 关联说明 +- **支付关联**: trade_no关联支付表的支付单号,记录支付日志 +- **订单关联**: 通过交易单号关联订单,追踪订单支付状态 +- **合同关联**: 记录合同相关的收款和退款操作 +- **会员关联**: 记录会员的充值、消费、退款等操作 +- **退款关联**: trade_no关联退款单号,记录退款日志 +- **转账关联**: 记录账户间的转账操作日志 +- **人员关联**: 记录操作人员,便于责任追踪 +- **校区关联**: 区分不同校区的财务操作 + +## 索引建议 +- **主键索引**: id (已存在) +- **唯一索引**: + - trade_no (交易单号唯一) +- **业务索引**: + - type (交易类型查询) + - money (金额查询) + - create_time (时间查询) +- **复合索引**: + - (type, create_time) (类型时间查询) + - (trade_no, type) (交易单号类型查询) + - (create_time, type) (时间类型排序查询) +- **范围索引**: + - money (金额范围查询) + - create_time (时间范围查询) + +## 注意事项 +- **交易单号唯一性**: trade_no必须唯一,避免重复记录 +- **金额精度**: money字段使用decimal(10,2)确保金额精度 +- **交易类型**: type字段需要严格控制枚举值(pay、refund、transfer) +- **时间格式**: create_time字段格式需要统一和规范 +- **数据完整性**: 所有字段都不能为空,确保日志完整性 +- **只增不删**: 日志数据原则上只能新增,不能修改或删除 +- **实时记录**: 交易发生时必须立即记录日志 +- **异常处理**: 记录日志失败时需要有补偿机制 +- **数据备份**: 财务日志数据需要定期备份 +- **访问控制**: 日志数据需要严格的访问权限控制 +- **审计要求**: 满足财务审计的相关要求 +- **性能优化**: 大量日志数据需要考虑查询性能 +- **数据归档**: 历史日志数据需要定期归档 +- **监控告警**: 异常交易需要及时告警 +- **对账机制**: 支持与外部系统的对账功能 +- **数据一致性**: 确保与业务表数据的一致性 +- **并发控制**: 高并发场景下的数据一致性保证 diff --git a/niucloud/databasedoc/school_addon.md b/niucloud/databasedoc/school_addon.md new file mode 100644 index 00000000..9e0e6b5d --- /dev/null +++ b/niucloud/databasedoc/school_addon.md @@ -0,0 +1,107 @@ +# school_addon 表文档 + +## 表概述 +**表名**: school_addon +**功能**: 插件管理表,负责管理教务系统中的插件安装、配置、版本控制、状态管理等扩展功能模块 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 主键 +title varchar(40) utf8mb4_general_ci NO select,insert,update,references 插件名称 +icon varchar(255) utf8mb4_general_ci NO select,insert,update,references 插件图标 +key varchar(20) utf8mb4_general_ci NO select,insert,update,references 插件标识 +desc text utf8mb4_general_ci YES NULL select,insert,update,references 插件描述 +status tinyint NULL NO 1 select,insert,update,references 状态 +author varchar(40) utf8mb4_general_ci NO select,insert,update,references 作者 +version varchar(20) utf8mb4_general_ci NO select,insert,update,references 版本号 +create_time int NULL NO 0 select,insert,update,references 创建时间 +install_time int NULL NO 0 select,insert,update,references 安装时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +cover varchar(255) utf8mb4_general_ci NO select,insert,update,references 封面 +type varchar(255) utf8mb4_general_ci NO app select,insert,update,references 插件类型app,addon +support_app varchar(255) utf8mb4_general_ci NO select,insert,update,references 插件支持的应用空表示通用插件 +is_star tinyint NULL NO 1 select,insert,update,references 是否加星 +compile varchar(2000) utf8mb4_general_ci NO select,insert,update,references 编译端口 +``` + +## 功能用途 + +### 主要功能 +- **插件安装管理**: 管理插件的安装、卸载和重新安装 +- **版本控制**: 跟踪插件的版本信息和更新历史 +- **状态管理**: 控制插件的启用、禁用和运行状态 +- **插件信息**: 管理插件名称、描述、图标等基本信息 +- **作者管理**: 记录插件开发者和维护者信息 +- **类型分类**: 区分不同类型的插件(app、addon等) +- **应用支持**: 管理插件支持的应用范围 +- **编译配置**: 管理插件的编译端口和配置信息 +- **星标管理**: 支持插件的收藏和推荐功能 + +### 业务场景 +- **系统扩展**: 通过插件扩展系统功能和特性 +- **功能定制**: 根据业务需要安装特定功能插件 +- **版本升级**: 管理插件的版本更新和兼容性 +- **插件市场**: 支持插件的发布、下载和安装 +- **功能开关**: 通过启用/禁用控制插件功能 +- **系统集成**: 插件与核心系统的集成和配置 +- **开发调试**: 插件开发过程中的测试和调试 +- **性能优化**: 根据需要选择性加载插件 +- **安全管理**: 控制插件的安装权限和安全性 + +## 关联关系 + +### 主要关联表 +- `school_sys_config`: 系统配置表 (插件配置关联) +- `school_sys_menu`: 系统菜单表 (插件菜单关联) +- `school_sys_role`: 系统角色表 (插件权限关联) +- `sys_log`: 系统日志表 (插件操作日志) +- `school_personnel`: 人员表 (插件使用权限) +- `school_campus`: 校区表 (插件应用范围) + +### 关联说明 +- **配置关联**: 插件可能有专门的配置项存储在系统配置表中 +- **菜单关联**: 插件安装时可能添加新的菜单项 +- **权限关联**: 插件功能需要相应的角色权限控制 +- **日志关联**: 插件的安装、卸载、启用等操作记录在日志中 +- **用户关联**: 不同用户可能有不同的插件使用权限 +- **校区关联**: 插件可能只在特定校区启用或配置 + +## 索引建议 +- **主键索引**: id (已存在) +- **唯一索引**: + - key (插件标识唯一) +- **业务索引**: + - status (状态查询) + - type (类型查询) + - is_star (星标查询) + - author (作者查询) +- **复合索引**: + - (status, type) (有效插件类型查询) + - (type, support_app) (应用插件查询) + - (status, is_star) (推荐插件查询) +- **时间索引**: + - create_time (创建时间查询) + - install_time (安装时间查询) + - update_time (更新时间查询) + +## 注意事项 +- **插件标识唯一性**: key字段必须唯一,避免插件标识冲突 +- **版本兼容性**: 插件版本需要与系统版本兼容 +- **状态一致性**: 插件状态变更需要同步更新相关配置 +- **安装顺序**: 某些插件可能有依赖关系,需要按顺序安装 +- **卸载检查**: 卸载插件前需要检查是否有其他插件依赖 +- **权限验证**: 插件安装和管理需要相应的管理权限 +- **数据备份**: 插件操作前建议备份相关数据 +- **编译配置**: compile字段存储编译相关配置,格式需要规范 +- **应用范围**: support_app字段控制插件的应用范围 +- **安全检查**: 插件安装前需要进行安全性检查 +- **资源管理**: 插件可能占用系统资源,需要监控 +- **配置迁移**: 插件更新时需要处理配置数据迁移 +- **错误处理**: 插件加载失败时需要有容错机制 +- **日志记录**: 插件操作需要详细的日志记录 +- **缓存清理**: 插件状态变更时需要清理相关缓存 +- **测试验证**: 插件安装后需要验证功能正常性 +- **回滚机制**: 插件更新失败时需要支持回滚 +- **文档维护**: 插件需要维护详细的使用文档 diff --git a/niucloud/databasedoc/school_addon_log.md b/niucloud/databasedoc/school_addon_log.md new file mode 100644 index 00000000..6811fafb --- /dev/null +++ b/niucloud/databasedoc/school_addon_log.md @@ -0,0 +1,91 @@ +# school_addon_log 表文档 + +## 表概述 +**表名**: school_addon_log +**功能**: 插件操作日志表,用于记录插件的安装、卸载、更新等操作历史,包括版本变更追踪、操作审计和故障排查支持 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 主键 +action varchar(40) utf8mb4_general_ci NO select,insert,update,references 操作类型 install 安装 uninstall 卸载 update 更新 +key varchar(20) utf8mb4_general_ci NO select,insert,update,references 插件标识 +from_version varchar(20) utf8mb4_general_ci NO select,insert,update,references 升级前的版本号 +to_version varchar(20) utf8mb4_general_ci NO select,insert,update,references 升级后的版本号 +create_time int NULL NO 0 select,insert,update,references 创建时间 +``` + +## 功能用途 + +### 主要功能 +- **插件操作日志**: 记录插件的安装、卸载、更新等操作历史 +- **版本追踪**: 跟踪插件版本变更历史,记录升级前后版本号 +- **操作审计**: 提供插件操作的审计追踪和历史记录 +- **故障排查**: 为插件相关问题提供操作历史支持 +- **回滚支持**: 为插件回滚操作提供版本信息参考 +- **操作统计**: 统计插件的使用和更新频率 +- **合规记录**: 满足系统变更管理的合规性要求 +- **时间追踪**: 记录每次操作的具体时间 +- **插件标识**: 通过key字段唯一标识操作的插件 + +### 业务场景 +- **插件安装**: 记录新插件的安装操作和版本信息 +- **插件卸载**: 记录插件卸载操作,保留历史信息 +- **版本升级**: 记录插件版本升级的完整过程 +- **故障诊断**: 通过操作历史排查插件相关问题 +- **系统审计**: 定期审计插件变更操作 +- **回滚操作**: 基于历史记录进行插件版本回滚 +- **变更管理**: 管理和跟踪系统插件变更 +- **操作报告**: 生成插件操作统计报告 +- **合规检查**: 满足系统变更的合规性检查 + +## 关联关系 + +### 主要关联表 +- `school_addon`: 插件管理表 (key字段关联) +- `school_personnel`: 人员信息表 (操作人员关联) +- `school_sys_config`: 系统配置表 (插件配置关联) +- `sys_log`: 系统日志表 (操作日志关联) +- `school_campus`: 校区信息表 (操作范围关联) + +### 关联说明 +- **插件关联**: key字段关联school_addon表的插件标识 +- **操作人员**: 通过系统日志关联操作人员信息 +- **配置关联**: 插件操作可能涉及相关配置变更 +- **日志关联**: 与系统操作日志形成完整的审计链 +- **范围关联**: 插件操作可能限定在特定校区范围 +- **版本关联**: from_version和to_version形成版本变更链 + +## 索引建议 +- **主键索引**: id (已存在) +- **业务索引**: + - key (插件标识查询) + - action (操作类型查询) + - from_version (源版本查询) + - to_version (目标版本查询) +- **复合索引**: + - (key, action) (插件操作类型查询) + - (key, create_time) (插件操作时间查询) + - (action, create_time) (操作类型时间查询) + - (key, from_version, to_version) (版本变更查询) +- **时间索引**: + - create_time (创建时间查询) + +## 注意事项 +- **操作类型**: action字段限定为install、uninstall、update三种类型 +- **插件标识**: key字段必须与school_addon表中的插件标识保持一致 +- **版本格式**: from_version和to_version需要遵循版本号格式规范 +- **只增不删**: 日志记录应该只增不删,保持完整的操作历史 +- **时间精度**: create_time需要精确记录操作时间 +- **数据完整性**: 所有字段都不允许为空,确保日志完整性 +- **版本一致性**: 升级操作的to_version应该与实际安装版本一致 +- **操作原子性**: 插件操作和日志记录应该在同一事务中完成 +- **日志清理**: 建立合理的日志清理策略,避免数据过度膨胀 +- **权限控制**: 只有授权人员才能进行插件操作 +- **备份策略**: 重要插件操作前需要进行数据备份 +- **回滚验证**: 记录的版本信息需要支持插件回滚操作 +- **异常处理**: 操作失败时也需要记录相应的日志信息 +- **监控告警**: 建立插件操作的监控和异常告警机制 +- **审计要求**: 满足系统变更管理的审计要求 +- **性能考虑**: 大量日志查询时需要考虑性能优化 diff --git a/niucloud/databasedoc/school_applet_site_version.md b/niucloud/databasedoc/school_applet_site_version.md new file mode 100644 index 00000000..33af82c5 --- /dev/null +++ b/niucloud/databasedoc/school_applet_site_version.md @@ -0,0 +1,86 @@ +# school_applet_site_version 表文档 + +## 表概述 +**表名**: school_applet_site_version +**功能**: 小程序站点版本管理表,负责管理教务系统中小程序的版本操作记录,包括版本下载、更新等操作的追踪和管理 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 主键 +version_id int NULL NO 0 select,insert,update,references 版本id +type varchar(20) utf8mb4_general_ci NO select,insert,update,references 小程序类型 +action varchar(20) utf8mb4_general_ci NO select,insert,update,references 操作方式 download 下载 upgrade 更新 +create_time int NULL NO 0 select,insert,update,references 创建时间 +``` + +## 功能用途 + +### 主要功能 +- **版本操作记录**: 记录小程序版本的下载和更新操作 +- **小程序类型管理**: 区分不同类型的小程序版本操作 +- **操作追踪**: 跟踪版本操作的时间和类型 +- **版本关联**: 关联具体的版本ID进行操作记录 +- **操作统计**: 统计版本操作的频率和类型 +- **历史记录**: 保存版本操作的完整历史 +- **审计支持**: 为版本管理提供审计追踪 +- **时间管理**: 记录每次操作的具体时间 +- **操作分类**: 区分下载和更新两种主要操作类型 + +### 业务场景 +- **版本下载**: 记录小程序版本的下载操作 +- **版本更新**: 记录小程序版本的更新操作 +- **操作审计**: 审计小程序版本的操作历史 +- **使用统计**: 统计不同版本的使用情况 +- **问题排查**: 通过操作记录排查版本相关问题 +- **版本管理**: 管理小程序的版本生命周期 +- **操作监控**: 监控版本操作的频率和状态 +- **数据分析**: 分析版本操作的趋势和模式 +- **合规记录**: 满足版本管理的合规性要求 + +## 关联关系 + +### 主要关联表 +- `school_applet_version`: 小程序版本表 (version_id字段关联) +- `school_personnel`: 人员信息表 (操作人员关联) +- `school_campus`: 校区信息表 (操作范围关联) +- `school_sys_config`: 系统配置表 (小程序配置关联) +- `sys_log`: 系统日志表 (操作日志关联) + +### 关联说明 +- **版本关联**: version_id字段关联school_applet_version表的版本信息 +- **操作人员**: 通过系统日志关联具体的操作人员 +- **小程序类型**: type字段区分不同类型的小程序 +- **操作类型**: action字段区分下载和更新操作 +- **时间关联**: create_time记录操作的具体时间 +- **业务关联**: 与小程序管理业务流程紧密关联 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: version_id (版本关联查询) +- **业务索引**: + - type (小程序类型查询) + - action (操作类型查询) +- **复合索引**: + - (version_id, action) (版本操作查询) + - (type, action) (类型操作查询) + - (version_id, create_time) (版本时间查询) + - (action, create_time) (操作时间查询) +- **时间索引**: create_time (创建时间查询) + +## 注意事项 +- **版本ID完整性**: version_id必须关联到有效的小程序版本 +- **操作类型限制**: action字段限定为download和upgrade两种类型 +- **小程序类型**: type字段需要与系统支持的小程序类型保持一致 +- **时间精度**: create_time需要精确记录操作时间 +- **数据完整性**: 所有必填字段都不允许为空 +- **操作原子性**: 版本操作和记录插入应该在同一事务中完成 +- **重复操作**: 需要考虑同一版本的重复操作记录 +- **权限控制**: 只有授权人员才能进行版本操作 +- **日志清理**: 建立合理的操作记录清理策略 +- **性能优化**: 大量记录查询时需要考虑性能 +- **监控告警**: 建立版本操作的监控机制 +- **审计要求**: 满足版本管理的审计要求 +- **数据一致性**: 确保操作记录与实际版本状态一致 +- **异常处理**: 操作失败时的记录处理策略 diff --git a/niucloud/databasedoc/school_applet_version.md b/niucloud/databasedoc/school_applet_version.md new file mode 100644 index 00000000..c2daf0bd --- /dev/null +++ b/niucloud/databasedoc/school_applet_version.md @@ -0,0 +1,110 @@ +# school_applet_version 表文档 + +## 表概述 +**表名**: school_applet_version +**功能**: 小程序版本管理表,负责管理教务系统中小程序的版本信息,包括版本配置、状态管理、发布控制等核心功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 主键 +config varchar(255) utf8mb4_general_ci NO select,insert,update,references 配置信息 +type varchar(20) utf8mb4_general_ci NO select,insert,update,references 小程序类型 +desc text utf8mb4_general_ci YES NULL select,insert,update,references 插件描述 +status tinyint NULL NO 1 select,insert,update,references 状态 下架 上架 +uid varchar(40) utf8mb4_general_ci NO select,insert,update,references 发布者 +path varchar(255) utf8mb4_general_ci NO select,insert,update,references 小程序包地址 +version varchar(20) utf8mb4_general_ci NO select,insert,update,references 版本号 +version_num varchar(20) utf8mb4_general_ci NO select,insert,update,references 版本号数字(用于排序) +release_version varchar(20) utf8mb4_general_ci NO select,insert,update,references 发布线上版本号 +create_time int NULL NO 0 select,insert,update,references 创建时间 +delete_time int NULL NO 0 select,insert,update,references 删除时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **版本信息管理**: 管理小程序的版本号、配置信息和描述 +- **状态控制**: 控制小程序版本的上架和下架状态 +- **发布管理**: 管理小程序的发布版本和线上版本 +- **配置管理**: 存储小程序的配置信息和参数 +- **版本排序**: 通过版本号数字进行版本排序管理 +- **发布者管理**: 记录版本的发布者信息 +- **包路径管理**: 管理小程序包的存储路径 +- **类型分类**: 区分不同类型的小程序版本 +- **生命周期管理**: 管理版本的创建、更新和删除 +- **软删除支持**: 支持版本的逻辑删除和恢复 + +### 业务场景 +- **版本发布**: 发布新的小程序版本到系统 +- **版本更新**: 更新现有小程序版本的信息和配置 +- **版本下架**: 将有问题的版本下架处理 +- **版本回滚**: 回滚到之前的稳定版本 +- **版本审核**: 审核小程序版本的质量和合规性 +- **版本分发**: 向不同校区分发小程序版本 +- **版本监控**: 监控小程序版本的运行状态 +- **版本统计**: 统计版本的使用情况和性能 +- **版本维护**: 维护和优化小程序版本 + +## 关联关系 + +### 主要关联表 +- `school_applet_site_version`: 小程序站点版本表 (版本操作记录关联) +- `school_personnel`: 人员信息表 (发布者关联) +- `school_campus`: 校区信息表 (版本分发关联) +- `school_sys_config`: 系统配置表 (小程序配置关联) +- `school_addon`: 插件管理表 (小程序插件关联) +- `sys_log`: 系统日志表 (版本操作日志关联) +- `school_sys_attachment`: 附件表 (小程序包文件关联) + +### 关联说明 +- **操作记录**: school_applet_site_version表记录此表版本的操作历史 +- **发布者关联**: uid字段关联发布者的人员信息 +- **小程序类型**: type字段区分不同类型的小程序 +- **版本状态**: status字段控制版本的可用性 +- **包路径**: path字段关联小程序包的存储位置 +- **版本号管理**: version和version_num字段管理版本信息 +- **发布版本**: release_version字段管理线上发布版本 +- **配置关联**: config字段存储小程序的配置信息 + +## 索引建议 +- **主键索引**: id (已存在) +- **业务索引**: + - type (小程序类型查询) + - status (状态查询) + - uid (发布者查询) + - version (版本号查询) + - release_version (发布版本查询) +- **复合索引**: + - (type, status) (类型状态查询) + - (uid, create_time) (发布者时间查询) + - (type, version) (类型版本查询) + - (status, create_time) (状态时间查询) + - (version_num, type) (版本排序查询) +- **时间索引**: + - create_time (创建时间查询) + - update_time (更新时间查询) + - delete_time (删除时间查询) +- **全文索引**: desc (描述内容搜索) + +## 注意事项 +- **版本号格式**: version和version_num需要遵循统一的版本号格式规范 +- **状态一致性**: status字段变更需要与实际小程序状态保持一致 +- **发布者验证**: uid字段必须关联到有效的系统用户 +- **包路径有效性**: path字段必须指向有效的小程序包文件 +- **配置格式**: config字段需要遵循JSON格式规范 +- **版本唯一性**: 同类型小程序的版本号不能重复 +- **软删除机制**: 使用delete_time实现软删除,避免物理删除 +- **发布版本控制**: release_version变更需要经过审核流程 +- **权限控制**: 只有授权人员才能发布和管理版本 +- **版本回滚**: 版本回滚操作需要保留历史版本信息 +- **包文件管理**: 删除版本时需要同步处理相关的包文件 +- **依赖检查**: 删除版本前需要检查是否有其他组件依赖 +- **审计要求**: 版本变更操作需要记录完整的审计日志 +- **性能优化**: 大量版本查询时需要考虑缓存策略 +- **备份策略**: 重要版本需要建立备份和恢复机制 +- **监控告警**: 建立版本状态的监控和异常告警 +- **数据一致性**: 确保版本信息与实际部署状态一致 +- **版本清理**: 建立过期版本的清理策略 diff --git a/niucloud/databasedoc/school_approval_config.md b/niucloud/databasedoc/school_approval_config.md new file mode 100644 index 00000000..74fef568 --- /dev/null +++ b/niucloud/databasedoc/school_approval_config.md @@ -0,0 +1,98 @@ +# school_approval_config 表文档 + +## 表概述 +**表名**: school_approval_config +**功能**: 审批配置管理表,负责管理教务系统中各种业务流程的审批配置,包括审批流程模板、业务类型配置、状态控制等核心功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 配置ID +config_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 配置名称 +description text utf8mb4_general_ci YES NULL select,insert,update,references 配置描述 +status tinyint(1) NULL NO 1 select,insert,update,references 状态: 0-禁用, 1-启用 +creator_id int NULL NO NULL select,insert,update,references 创建人ID +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +business_type varchar(100) utf8mb4_general_ci YES NULL select,insert,update,references 业务类型标识 +``` + +## 功能用途 + +### 主要功能 +- **审批配置管理**: 管理系统中各种业务流程的审批配置 +- **业务类型分类**: 通过business_type字段区分不同业务的审批配置 +- **配置状态控制**: 通过status字段控制审批配置的启用和禁用 +- **配置描述**: 提供详细的配置说明和使用描述 +- **创建人追踪**: 记录配置的创建人员信息 +- **时间管理**: 记录配置的创建和修改时间 +- **配置模板**: 为不同业务提供审批流程模板 +- **动态配置**: 支持运行时动态调整审批配置 +- **配置继承**: 支持基于模板的配置继承机制 + +### 业务场景 +- **请假审批**: 配置员工请假的审批流程 +- **报销审批**: 配置费用报销的审批流程 +- **合同审批**: 配置合同签署的审批流程 +- **课程审批**: 配置课程安排的审批流程 +- **学员退费**: 配置学员退费的审批流程 +- **薪资调整**: 配置薪资变更的审批流程 +- **权限申请**: 配置系统权限申请的审批流程 +- **资源申请**: 配置教学资源申请的审批流程 +- **流程优化**: 根据业务需要优化审批流程配置 + +## 关联关系 + +### 主要关联表 +- `school_approval_process`: 审批流程表 (配置关联) +- `school_approval_config_node`: 审批配置节点表 (配置详情) +- `school_personnel`: 人员信息表 (creator_id外键关联) +- `school_approval_history`: 审批历史表 (配置使用记录) +- `school_approval_participants`: 审批参与者表 (审批人员) +- `school_campus`: 校区信息表 (配置范围) +- `sys_log`: 系统日志表 (配置变更日志) + +### 关联说明 +- **创建人关联**: creator_id关联school_personnel表,记录配置创建人 +- **流程关联**: 与审批流程表关联,定义具体的审批步骤 +- **节点关联**: 与配置节点表关联,定义审批流程的详细节点 +- **历史关联**: 审批历史记录使用的配置信息 +- **参与者关联**: 配置中定义的审批参与人员 +- **业务关联**: business_type关联具体的业务模块 +- **日志关联**: 配置变更操作记录到系统日志 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: + - creator_id (创建人查询) +- **业务索引**: + - business_type (业务类型查询) + - status (状态查询) + - config_name (配置名称查询) +- **复合索引**: + - (business_type, status) (业务启用配置查询) + - (creator_id, created_at) (创建人时间查询) + - (status, updated_at) (启用配置更新时间查询) +- **时间索引**: + - created_at (创建时间查询) + - updated_at (更新时间查询) + +## 注意事项 +- **配置名称唯一性**: config_name在同一business_type下应保证唯一性 +- **业务类型规范**: business_type需要遵循系统定义的业务类型标准 +- **状态一致性**: 配置状态变更需要同步更新相关审批流程 +- **创建人验证**: creator_id必须是有效的人员ID +- **配置完整性**: 配置禁用前需要检查是否有正在进行的审批流程 +- **描述规范**: description字段应提供清晰的配置说明 +- **权限控制**: 只有授权人员才能创建和修改审批配置 +- **配置备份**: 重要配置修改前需要备份原始配置 +- **依赖检查**: 删除配置前需要检查相关流程和历史记录 +- **版本管理**: 建议建立配置版本管理机制 +- **测试验证**: 新配置上线前需要进行充分测试 +- **文档维护**: 配置变更需要同步更新相关文档 +- **监控告警**: 建立配置使用情况的监控机制 +- **性能优化**: 频繁使用的配置建议使用缓存机制 +- **审计要求**: 配置变更需要满足审计合规要求 +- **回滚机制**: 建立配置变更的回滚机制 +- **通知机制**: 配置变更需要通知相关使用人员 diff --git a/niucloud/databasedoc/school_approval_config_node.md b/niucloud/databasedoc/school_approval_config_node.md new file mode 100644 index 00000000..eda46c74 --- /dev/null +++ b/niucloud/databasedoc/school_approval_config_node.md @@ -0,0 +1,98 @@ +# school_approval_config_node 表文档 + +## 表概述 +**表名**: school_approval_config_node +**功能**: 审批配置节点表,用于定义和管理审批流程中的具体节点配置,包括审批人类型(用户/角色/部门)、审批方式(或签/会签)、节点顺序等,支持灵活的审批流程设计和多维度审批人配置,为学校提供完整的审批流程节点管理和配置功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 节点ID +config_id int NULL NO MUL NULL select,insert,update,references 配置ID +node_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 节点名称 +approver_type enum('user','role','department') utf8mb4_general_ci NO NULL select,insert,update,references 审批人类型: user-指定用户, role-指定角色, department-指定部门 +approver_ids varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 审批人ID集合,逗号分隔 +sign_type enum('or_sign','and_sign') utf8mb4_general_ci NO or_sign select,insert,update,references 审批类型: or_sign-或签(一人通过即可), and_sign-会签(需全部通过) +sequence int NULL NO NULL select,insert,update,references 节点顺序 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +1. **审批节点配置**: 定义审批流程中的具体节点信息和配置 +2. **审批人管理**: 配置每个节点的审批人类型和具体审批人员 +3. **审批类型控制**: 支持或签(一人通过即可)和会签(需全部通过)两种审批模式 +4. **节点顺序管理**: 通过sequence字段控制审批节点的执行顺序 +5. **多维度审批人**: 支持指定用户、角色、部门三种审批人类型 +6. **审批人集合**: 支持一个节点配置多个审批人,用逗号分隔存储 +7. **节点命名**: 提供节点名称字段,便于识别和管理 +8. **配置关联**: 与审批配置表关联,形成完整的审批流程 +9. **时间追踪**: 记录节点配置的创建和修改时间 + +### 业务场景 +1. **流程设计**: 设计多级审批流程,配置每个审批节点 +2. **权限分配**: 为不同审批节点分配相应的审批人员或角色 +3. **并行审批**: 配置会签节点,需要多人同时审批通过 +4. **串行审批**: 配置或签节点,任意一人审批即可通过 +5. **部门审批**: 配置部门级别的审批,由部门负责人审批 +6. **角色审批**: 配置基于角色的审批,如财务审批、人事审批 +7. **用户审批**: 配置指定用户的审批,如总经理审批 +8. **流程优化**: 根据业务需要调整审批节点和审批人配置 +9. **审批监控**: 通过节点配置监控审批流程的执行情况 + +## 关联关系 + +### 主要关联表 +1. **school_approval_config**: 审批配置表 (config_id) +2. **school_approval_process**: 审批流程表 (通过config_id间接关联) +3. **school_approval_participants**: 审批参与人表 (节点配置关联) +4. **school_approval_history**: 审批历史记录表 (节点执行记录) +5. **school_personnel**: 人员表 (审批人关联) +6. **school_sys_role**: 角色表 (角色审批人关联) +7. **school_department**: 部门表 (部门审批人关联) +8. **school_campus**: 校区表 (审批范围关联) + +### 关联说明 +- **配置关联**: config_id关联school_approval_config表,确定节点所属的审批配置 +- **审批人关联**: approver_ids根据approver_type关联不同的人员、角色或部门表 +- **流程关联**: 通过config_id间接关联审批流程,确定节点在流程中的位置 +- **执行关联**: 审批执行时根据节点配置创建参与人和历史记录 +- **顺序关联**: sequence字段确定节点在审批流程中的执行顺序 +- **类型关联**: approver_type决定审批人的查找方式和权限验证 +- **签名关联**: sign_type影响节点的审批通过条件和逻辑 + +## 索引建议 +- **主键索引**: id (自动创建) +- **外键索引**: config_id (审批配置查询) +- **业务索引**: + - (config_id, sequence) (按配置和顺序查询节点) + - approver_type (按审批人类型查询) + - sign_type (按签名类型查询) +- **复合索引**: + - (config_id, approver_type) (配置内按类型查询) + - (approver_type, approver_ids) (审批人查询) +- **时间索引**: + - created_at (创建时间查询) + - updated_at (修改时间查询) + +## 注意事项 +1. **外键完整性**: config_id必须存在于school_approval_config表中 +2. **审批人类型**: approver_type只能是user、role、department三种类型之一 +3. **审批人ID格式**: approver_ids使用逗号分隔,需要验证ID的有效性 +4. **签名类型**: sign_type影响审批逻辑,or_sign和and_sign有不同的通过条件 +5. **节点顺序**: sequence在同一config_id下应该唯一,确保顺序的正确性 +6. **节点名称**: node_name应该具有描述性,便于识别节点功能 +7. **审批人验证**: 根据approver_type验证approver_ids中的ID是否存在 +8. **权限检查**: 审批人必须具有相应的审批权限 +9. **数据一致性**: 修改节点配置时需要考虑正在进行的审批流程 +10. **删除限制**: 删除节点前需要检查是否有正在使用的审批流程 +11. **配置完整性**: 确保审批配置的所有必要节点都已配置 +12. **顺序连续性**: sequence应该连续,避免跳跃或重复 +13. **审批人数量**: 会签节点的审批人数量应该合理,避免过多影响效率 +14. **角色权限**: 基于角色的审批需要确保角色权限的正确配置 +15. **部门层级**: 基于部门的审批需要考虑部门层级关系 +16. **并发控制**: 多人同时修改节点配置时需要并发控制 +17. **审计要求**: 节点配置的变更需要记录审计日志 diff --git a/niucloud/databasedoc/school_approval_history.md b/niucloud/databasedoc/school_approval_history.md new file mode 100644 index 00000000..5f2db10b --- /dev/null +++ b/niucloud/databasedoc/school_approval_history.md @@ -0,0 +1,98 @@ +# school_approval_history 表文档 + +## 表概述 +**表名**: school_approval_history +**功能**: 审批历史记录表,用于记录审批流程中每个节点的操作历史和结果,包括审批人操作、审批意见、操作时间等,支持审批追溯、合规审计和流程优化,为学校提供完整的审批操作审计轨迹 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 历史记录ID +process_id int NULL NO MUL NULL select,insert,update,references 流程ID +participant_id int NULL NO MUL NULL select,insert,update,references 审批人ID +sequence int NULL NO NULL select,insert,update,references 审批顺序 +action enum('approve','reject','forward','cancel') utf8mb4_0900_ai_ci NO NULL select,insert,update,references 操作类型 +status enum('approved','rejected','forwarded','cancelled') utf8mb4_0900_ai_ci NO NULL select,insert,update,references 操作结果 +remarks text utf8mb4_0900_ai_ci YES NULL select,insert,update,references 审批意见 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 操作时间 +``` + +## 功能用途 + +### 主要功能 +- **审批历史记录**: 记录审批流程中每个节点的操作历史和结果 +- **操作类型管理**: 支持批准、拒绝、转发、取消四种操作类型 +- **状态结果跟踪**: 记录每次操作的具体结果状态 +- **审批顺序管理**: 记录审批人在流程中的执行顺序 +- **审批意见存储**: 存储审批人的详细审批意见和备注 +- **时间追踪**: 记录每次审批操作的具体时间 +- **审计追踪**: 提供完整的审批操作审计轨迹 +- **流程关联**: 关联具体的审批流程和参与人 +- **历史查询**: 支持审批历史的查询和统计 + +### 业务场景 +- **审批记录**: 记录每次审批操作的详细信息 +- **审批追溯**: 追溯审批流程的完整历史轨迹 +- **审批统计**: 统计审批人的审批效率和结果 +- **审批分析**: 分析审批流程的瓶颈和优化点 +- **合规审计**: 提供审批操作的合规性审计 +- **争议处理**: 处理审批争议时提供历史依据 +- **流程优化**: 基于历史数据优化审批流程 +- **绩效考核**: 评估审批人员的工作绩效 +- **报表生成**: 生成审批相关的统计报表 + +## 关联关系 + +### 主要关联表 +- `school_approval_process`: 审批流程表 (process_id外键关联) +- `school_approval_participants`: 审批参与人表 (participant_id外键关联) +- `school_personnel`: 人员信息表 (审批人信息关联) +- `school_approval_config`: 审批配置表 (流程配置关联) +- `school_approval_config_node`: 审批节点配置表 (节点配置关联) +- `sys_log`: 系统日志表 (操作日志关联) + +### 关联说明 +- **流程关联**: process_id关联school_approval_process表,确定历史记录所属流程 +- **参与人关联**: participant_id关联school_approval_participants表,确定操作的审批人 +- **人员关联**: 通过participant_id间接关联school_personnel表获取审批人详细信息 +- **配置关联**: 通过流程关联审批配置和节点配置信息 +- **日志关联**: 审批操作同时记录到系统日志中 +- **顺序关联**: sequence字段确定审批操作在流程中的执行顺序 +- **操作关联**: action和status字段关联,记录操作类型和结果 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: + - process_id (流程历史查询) + - participant_id (审批人历史查询) +- **业务索引**: + - action (操作类型查询) + - status (操作结果查询) + - sequence (审批顺序查询) +- **复合索引**: + - (process_id, sequence) (流程顺序查询) + - (participant_id, created_at) (审批人时间查询) + - (process_id, action, status) (流程操作结果查询) + - (action, status, created_at) (操作结果时间查询) +- **时间索引**: + - created_at (操作时间查询) + +## 注意事项 +- **操作类型**: action字段限定为approve、reject、forward、cancel四种类型 +- **状态结果**: status字段限定为approved、rejected、forwarded、cancelled四种状态 +- **外键完整性**: process_id和participant_id必须在对应表中存在 +- **顺序唯一性**: 同一流程中的sequence应该是唯一的 +- **操作一致性**: action和status应该保持逻辑一致性 +- **只增不删**: 历史记录表应该只允许插入,不允许删除或修改 +- **时间精度**: created_at使用timestamp类型,确保时间精度 +- **审批意见**: remarks字段可以为空,但重要操作建议填写 +- **数据完整性**: 每次审批操作都必须记录完整的历史信息 +- **并发控制**: 防止同一审批人同时进行多次操作 +- **权限验证**: 确保只有授权的审批人才能进行操作 +- **审计要求**: 所有操作都必须有完整的审计轨迹 +- **数据备份**: 重要的审批历史数据需要定期备份 +- **性能优化**: 大量历史数据查询时需要考虑分页和索引优化 +- **监控告警**: 建立异常审批操作的监控机制 +- **数据归档**: 建立历史数据的归档策略 +- **查询优化**: 复杂的历史查询需要优化SQL性能 diff --git a/niucloud/databasedoc/school_approval_participants.md b/niucloud/databasedoc/school_approval_participants.md new file mode 100644 index 00000000..946672d0 --- /dev/null +++ b/niucloud/databasedoc/school_approval_participants.md @@ -0,0 +1,101 @@ +# school_approval_participants 表文档 + +## 表概述 +**表名**: school_approval_participants +**功能**: 审批参与人管理表,用于管理审批流程中的参与人员信息和审批状态,包括审批顺序、审批类型(或签/会签)、审批状态跟踪等,支持多种审批模式和流程控制,为学校提供完整的审批流程参与人管理和状态监控功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 参与编号 +process_id int NULL NO MUL NULL select,insert,update,references 流程ID +participant_id int NULL NO NULL select,insert,update,references 参与人ID +sequence int NULL NO NULL select,insert,update,references 审批顺序 +status enum('pending','approved','rejected') utf8mb4_general_ci NO NULL select,insert,update,references 当前状态: pending-待审批, approved-已批准, rejected-已拒绝 +remarks text utf8mb4_general_ci YES NULL select,insert,update,references 备注 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +sign_type enum('or_sign','and_sign') utf8mb4_general_ci NO or_sign select,insert,update,references 审批类型: or_sign-或签, and_sign-会签 +``` + +## 功能用途 + +### 主要功能 +- **审批参与人管理**: 管理审批流程中的参与人员和角色分配 +- **审批顺序控制**: 控制审批人员在流程中的执行顺序 +- **审批状态跟踪**: 跟踪每个参与人的审批状态(待审批/已批准/已拒绝) +- **审批类型管理**: 支持或签(or_sign)和会签(and_sign)两种审批类型 +- **审批备注记录**: 记录审批人的审批意见和备注信息 +- **流程关联**: 关联具体的审批流程实例 +- **时间管理**: 记录参与人的创建和更新时间 +- **参与人权限**: 管理不同参与人的审批权限 +- **审批结果统计**: 统计参与人的审批结果和效率 + +### 业务场景 +- **流程分配**: 为审批流程分配具体的审批参与人 +- **顺序审批**: 按照设定的顺序进行逐级审批 +- **并行审批**: 支持多人同时进行审批(或签模式) +- **会签审批**: 要求所有指定人员都同意才能通过(会签模式) +- **审批替代**: 处理审批人请假或不在时的替代审批 +- **审批监控**: 监控审批进度和参与人状态 +- **审批提醒**: 提醒相关人员及时进行审批 +- **权限控制**: 控制不同级别人员的审批权限 +- **审批统计**: 统计各参与人的审批效率和结果 + +## 关联关系 + +### 主要关联表 +- `school_approval_process`: 审批流程表 (process_id外键关联) +- `school_personnel`: 人员信息表 (participant_id外键关联) +- `school_approval_history`: 审批历史表 (审批操作记录关联) +- `school_approval_config`: 审批配置表 (流程配置关联) +- `school_approval_config_node`: 审批节点配置表 (节点配置关联) +- `school_sys_role`: 角色表 (审批权限关联) +- `school_campus`: 校区表 (数据权限关联) + +### 关联说明 +- **流程关联**: process_id关联school_approval_process表,确定参与人所属的审批流程 +- **人员关联**: participant_id关联school_personnel表,确定具体的审批参与人 +- **历史关联**: 与school_approval_history表关联,记录参与人的审批操作历史 +- **配置关联**: 通过流程关联审批配置,获取审批规则和节点信息 +- **权限关联**: 通过人员信息关联角色权限,控制审批权限 +- **顺序关联**: sequence字段确定审批的执行顺序 +- **类型关联**: sign_type字段确定审批类型(或签/会签) + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: + - process_id (流程参与人查询) + - participant_id (人员审批查询) +- **业务索引**: + - status (审批状态查询) + - sequence (审批顺序查询) + - sign_type (审批类型查询) +- **复合索引**: + - (process_id, sequence) (流程顺序查询) + - (participant_id, status) (人员状态查询) + - (process_id, status) (流程状态查询) + - (sign_type, status, created_at) (类型状态时间查询) +- **时间索引**: + - created_at (创建时间查询) + - updated_at (更新时间查询) + +## 注意事项 +- **审批状态**: status字段限定为pending、approved、rejected三种状态 +- **审批类型**: sign_type字段限定为or_sign(或签)和and_sign(会签)两种类型 +- **外键完整性**: process_id和participant_id必须在对应表中存在 +- **顺序唯一性**: 同一流程中的sequence应该是唯一的 +- **状态流转**: 状态只能从pending转换为approved或rejected +- **审批权限**: 确保参与人具有相应的审批权限 +- **或签逻辑**: or_sign模式下,任一人审批通过即可 +- **会签逻辑**: and_sign模式下,所有人都必须审批通过 +- **时间一致性**: created_at和updated_at时间应该合理 +- **备注规范**: remarks字段建议填写审批意见 +- **并发控制**: 防止同一参与人重复审批 +- **数据完整性**: 确保参与人信息的完整性和准确性 +- **权限验证**: 验证参与人是否有权限参与该流程审批 +- **状态同步**: 参与人状态变更需要同步到流程状态 +- **审计要求**: 所有状态变更都需要记录审计日志 +- **性能优化**: 大量参与人查询时需要考虑索引优化 +- **监控告警**: 建立审批超时和异常的监控机制 diff --git a/niucloud/databasedoc/school_approval_process.md b/niucloud/databasedoc/school_approval_process.md new file mode 100644 index 00000000..21794cb4 --- /dev/null +++ b/niucloud/databasedoc/school_approval_process.md @@ -0,0 +1,111 @@ +# school_approval_process 表文档 + +## 表概述 +**表名**: school_approval_process +**功能**: 审批流程管理表,负责管理教务系统中的各种业务审批流程,包括流程状态跟踪、审批人管理、业务数据关联等核心功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 流程编号 +process_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 流程名称 +applicant_id int NULL NO NULL select,insert,update,references 申请人ID +application_time timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 申请时间 +current_approver_id int NULL NO NULL select,insert,update,references 当前审批人ID +approval_status enum('pending','approved','rejected') utf8mb4_general_ci NO NULL select,insert,update,references 审批状态: pending-待审批, approved-已批准, rejected-已拒绝 +approval_time timestamp NULL YES NULL select,insert,update,references 审批时间 +remarks text utf8mb4_general_ci YES NULL select,insert,update,references 备注 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +business_type varchar(255) utf8mb4_general_ci YES MUL NULL select,insert,update,references 业务方法名 +business_id int NULL YES NULL select,insert,update,references 关联业务ID +business_data longtext utf8mb4_general_ci YES NULL select,insert,update,references 业务数据JSON +``` + +## 功能用途 + +### 主要功能 +- **审批流程管理**: 管理各种业务的审批流程实例 +- **流程状态跟踪**: 跟踪审批流程的当前状态(待审批/已批准/已拒绝) +- **申请人管理**: 记录流程的发起人和申请时间 +- **当前审批人跟踪**: 跟踪当前负责审批的人员 +- **业务数据关联**: 关联具体的业务类型和业务数据 +- **审批时间管理**: 记录申请时间和审批完成时间 +- **流程备注记录**: 记录流程相关的备注和说明信息 +- **业务类型分类**: 支持多种业务类型的审批流程 +- **JSON数据存储**: 存储复杂的业务数据结构 + +### 业务场景 +- **请假审批**: 员工请假申请的审批流程 +- **报销审批**: 费用报销的审批流程 +- **合同审批**: 合同签署的审批流程 +- **课程审批**: 新课程开设的审批流程 +- **学员退费**: 学员退费申请的审批流程 +- **薪资调整**: 员工薪资调整的审批流程 +- **权限申请**: 系统权限申请的审批流程 +- **资源申请**: 教学资源申请的审批流程 +- **变更审批**: 各种业务变更的审批流程 + +## 关联关系 + +### 主要关联表 +- `school_personnel`: 人员信息表 (applicant_id、current_approver_id外键关联) +- `school_approval_config`: 审批配置表 (business_type关联) +- `school_approval_participants`: 审批参与人表 (流程参与人关联) +- `school_approval_history`: 审批历史表 (流程操作历史关联) +- `school_approval_config_node`: 审批节点配置表 (流程节点关联) +- `school_contract`: 合同表 (business_id关联,当business_type为合同时) +- `school_member`: 会员表 (business_id关联,当business_type为退费时) +- `school_salary`: 薪资表 (business_id关联,当business_type为薪资时) +- `sys_log`: 系统日志表 (操作日志关联) + +### 关联说明 +- **申请人关联**: applicant_id关联school_personnel表,确定流程发起人 +- **审批人关联**: current_approver_id关联school_personnel表,确定当前审批人 +- **配置关联**: business_type关联school_approval_config表,获取审批配置 +- **参与人关联**: 与school_approval_participants表关联,管理流程参与人 +- **历史关联**: 与school_approval_history表关联,记录审批操作历史 +- **业务关联**: business_id根据business_type关联不同的业务表 +- **节点关联**: 通过配置关联审批节点信息 +- **数据关联**: business_data存储具体的业务数据JSON + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: + - applicant_id (申请人查询) + - current_approver_id (当前审批人查询) + - business_type (业务类型查询,已存在MUL) +- **业务索引**: + - approval_status (审批状态查询) + - business_id (业务ID查询) +- **复合索引**: + - (applicant_id, approval_status) (申请人状态查询) + - (current_approver_id, approval_status) (审批人状态查询) + - (business_type, approval_status) (业务类型状态查询) + - (business_type, business_id) (业务关联查询) + - (approval_status, application_time) (状态时间查询) +- **时间索引**: + - application_time (申请时间查询) + - approval_time (审批时间查询) + - created_at (创建时间查询) + - updated_at (更新时间查询) + +## 注意事项 +- **审批状态**: approval_status字段限定为pending、approved、rejected三种状态 +- **外键完整性**: applicant_id和current_approver_id必须在school_personnel表中存在 +- **业务类型**: business_type应该与school_approval_config表中的配置一致 +- **业务关联**: business_id应该在对应的业务表中存在 +- **状态流转**: 状态只能从pending转换为approved或rejected +- **时间逻辑**: approval_time应该晚于application_time +- **当前审批人**: current_approver_id应该与当前审批节点的参与人一致 +- **JSON数据**: business_data应该是有效的JSON格式 +- **流程完整性**: 确保流程配置和参与人配置的完整性 +- **权限验证**: 验证申请人和审批人的权限 +- **并发控制**: 防止同一流程被多人同时操作 +- **数据一致性**: 确保流程状态与参与人状态的一致性 +- **审计要求**: 所有状态变更都需要记录详细的审计日志 +- **性能优化**: 大量流程查询时需要考虑分页和索引优化 +- **监控告警**: 建立流程超时和异常的监控机制 +- **数据备份**: 重要的审批流程数据需要定期备份 +- **清理策略**: 建立已完成流程的归档和清理策略 diff --git a/niucloud/databasedoc/school_assignment.md b/niucloud/databasedoc/school_assignment.md new file mode 100644 index 00000000..0ba8dfc7 --- /dev/null +++ b/niucloud/databasedoc/school_assignment.md @@ -0,0 +1,108 @@ +# school_assignment 表文档 + +## 表概述 +**表名**: school_assignment +**功能**: 作业管理表,负责管理教务系统中的作业布置、提交、批改等全流程,支持班级作业和学员个人作业两种模式,支持图片、视频、文本等多种作业内容类型 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +type int NULL NO 2 select,insert,update,references 1班级作业 2学员作业 +class_id int NULL YES NULL select,insert,update,references 班级id +course_id int NULL YES NULL select,insert,update,references 课程id +personnel_id int NULL YES NULL select,insert,update,references 老师id +student_id int NULL NO NULL select,insert,update,references 学员id +description text utf8mb4_general_ci NO NULL select,insert,update,references 作业描述(老师留作业的描述) +content_type enum('1','2','3') utf8mb4_general_ci NO 1 select,insert,update,references 作业类型1图片2视频3文本 +content_text text utf8mb4_general_ci YES NULL select,insert,update,references 学生提交的作业内容(根据content_type字段判断学生提交的内容是|文本,视频oss绝对路径url,图片oss上的绝对路径ur) +deleted_at int NULL NO 0 select,insert,update,references 逻辑删除时间 +status int NULL NO 1 select,insert,update,references 状态 1未提交 2已提交 3待批改 4已批改 +create_time timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 校区创建时间 +update_time timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 校区更新时间 +``` + +## 功能用途 + +### 主要功能 +- **作业管理**: 管理班级作业和学员个人作业的布置和提交 +- **作业类型分类**: 支持班级作业(type=1)和学员作业(type=2)两种类型 +- **多媒体作业**: 支持图片、视频、文本三种作业内容类型 +- **作业状态跟踪**: 跟踪作业从未提交到已批改的完整流程 +- **作业描述**: 记录老师布置作业的详细描述和要求 +- **内容存储**: 存储学员提交的作业内容(文本/图片/视频) +- **关联管理**: 关联班级、课程、老师、学员等相关信息 +- **逻辑删除**: 支持作业的逻辑删除和恢复 +- **时间追踪**: 记录作业的创建和更新时间 + +### 业务场景 +- **作业布置**: 老师为班级或特定学员布置作业任务 +- **作业提交**: 学员提交图片、视频或文本形式的作业 +- **作业批改**: 老师对学员提交的作业进行批改和评价 +- **作业跟踪**: 跟踪作业的完成进度和批改状态 +- **作业统计**: 统计班级作业完成情况和批改进度 +- **作业归档**: 对已完成的作业进行归档管理 +- **作业查询**: 查询特定课程或学员的作业记录 +- **作业提醒**: 提醒学员及时提交作业 +- **教学评估**: 基于作业情况评估教学效果 + +## 关联关系 + +### 主要关联表 +- `school_class`: 班级信息表 (class_id外键关联) +- `school_course`: 课程信息表 (course_id外键关联) +- `school_personnel`: 人员信息表 (personnel_id外键关联,老师) +- `school_student`: 学员信息表 (student_id外键关联) +- `school_sys_attachment`: 附件表 (作业文件关联) +- `school_campus`: 校区信息表 (数据范围关联) + +### 关联说明 +- **班级关联**: class_id关联school_class表,确定作业所属班级 +- **课程关联**: course_id关联school_course表,确定作业所属课程 +- **老师关联**: personnel_id关联school_personnel表,确定布置作业的老师 +- **学员关联**: student_id关联school_student表,确定作业归属学员 +- **附件关联**: 作业中的图片和视频文件关联附件表 +- **校区关联**: 通过班级或课程间接关联校区信息 +- **类型关联**: type字段区分班级作业和个人作业 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: + - class_id (班级作业查询) + - course_id (课程作业查询) + - personnel_id (老师作业查询) + - student_id (学员作业查询) +- **业务索引**: + - type (作业类型查询) + - status (作业状态查询) + - content_type (作业内容类型查询) + - deleted_at (逻辑删除查询) +- **复合索引**: + - (class_id, status) (班级作业状态查询) + - (student_id, status) (学员作业状态查询) + - (personnel_id, create_time) (老师作业时间查询) + - (course_id, type, status) (课程作业类型状态查询) + - (type, status, create_time) (作业类型状态时间查询) +- **时间索引**: + - create_time (创建时间查询) + - update_time (更新时间查询) + +## 注意事项 +- **作业类型**: type字段限定为1(班级作业)和2(学员作业)两种类型 +- **外键完整性**: class_id、course_id、personnel_id、student_id必须在对应表中存在 +- **内容类型**: content_type限定为1(图片)、2(视频)、3(文本)三种类型 +- **状态流转**: status状态流转应遵循1→2→3→4的顺序(未提交→已提交→待批改→已批改) +- **逻辑删除**: 使用deleted_at字段进行逻辑删除,0表示未删除 +- **内容存储**: content_text根据content_type存储不同类型的内容 +- **文件路径**: 图片和视频需要存储OSS的绝对路径URL +- **作业描述**: description字段不能为空,必须提供作业要求 +- **数据完整性**: 班级作业必须有class_id,学员作业必须有student_id +- **权限控制**: 只有授权老师才能布置和批改作业 +- **文件安全**: 上传的图片和视频需要进行安全检查 +- **存储优化**: 大文件建议使用CDN加速访问 +- **备份策略**: 重要作业内容需要定期备份 +- **性能优化**: 大量作业查询时需要考虑分页和缓存 +- **监控告警**: 建立作业提交和批改的监控机制 +- **数据清理**: 建立过期作业的清理策略 +- **审计要求**: 作业操作需要记录详细的操作日志 diff --git a/niucloud/databasedoc/school_attendance.md b/niucloud/databasedoc/school_attendance.md new file mode 100644 index 00000000..e07dafb9 --- /dev/null +++ b/niucloud/databasedoc/school_attendance.md @@ -0,0 +1,90 @@ +# school_attendance 表文档 + +## 表概述 +**表名**: school_attendance +**功能**: 考勤管理表,存储教务系统中所有员工的考勤记录,包括签到签退时间、请假信息、考勤状态等核心数据 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 考勤编号 +campus_id int NULL NO NULL select,insert,update,references 校区ID +staff_id int NULL NO NULL select,insert,update,references 人员ID +attendance_date date NULL NO NULL select,insert,update,references 考勤日期 +check_in_time time NULL YES NULL select,insert,update,references 签到时间 +check_out_time time NULL YES NULL select,insert,update,references 签退时间 +leave_start_time time NULL YES NULL select,insert,update,references 请假开始时间|默认null,只有status=请假的时候本字段必须有值 +leave_end_time time NULL YES NULL select,insert,update,references 请假结束时间|默认null,只有status=请假的时候本字段必须有值 +status enum('present','absent','late','leave_early','leave') utf8mb4_general_ci NO NULL select,insert,update,references 考勤状态: present-出勤, absent-缺勤, late-迟到, leave_early-早退,leave-请假 +remarks text utf8mb4_general_ci YES NULL select,insert,update,references 备注 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +coordinate varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 坐标|经度,纬度 +``` + +## 功能用途 + +### 主要功能 +1. **考勤记录管理**: 记录员工每日的签到签退时间 +2. **请假管理**: 管理员工请假的开始和结束时间 +3. **考勤状态跟踪**: 自动判断和记录考勤状态(出勤、缺勤、迟到、早退、请假) +4. **地理位置验证**: 通过坐标字段验证员工打卡位置 +5. **校区考勤管理**: 按校区分别管理员工考勤 +6. **考勤异常处理**: 记录和处理考勤异常情况 +7. **考勤备注管理**: 支持考勤异常或特殊情况的备注说明 + +### 业务场景 +1. **日常打卡**: 员工上下班时进行签到签退操作 +2. **请假申请**: 员工申请请假时记录请假时间段 +3. **考勤统计**: 按月度、季度统计员工考勤情况 +4. **薪资计算**: 根据考勤记录计算员工工资和绩效 +5. **异常处理**: 处理迟到、早退、缺勤等异常考勤 +6. **位置验证**: 验证员工是否在指定地点打卡 +7. **考勤报表**: 生成各类考勤统计报表 +8. **人事管理**: 为人事决策提供考勤数据支持 + +## 关联关系 + +### 主要关联表 +1. **school_personnel**: 人员表(staff_id字段关联) +2. **school_campus**: 校区表(campus_id字段关联) +3. **school_salary**: 薪资表(考勤数据用于薪资计算) +4. **school_performance_records**: 绩效记录表(考勤影响绩效) +5. **school_sys_schedule**: 排班表(与排班计划对比) +6. **school_approval_process**: 审批流程表(请假审批关联) + +### 关联说明 +1. **人员关联**: 通过staff_id与人员表关联,确定考勤记录所属员工 +2. **校区关联**: 通过campus_id关联校区,实现多校区考勤管理 +3. **薪资关联**: 考勤数据作为薪资计算的重要依据 +4. **绩效关联**: 考勤情况影响员工绩效评估 +5. **排班关联**: 与排班计划对比,判断考勤是否正常 +6. **审批关联**: 请假等需要审批的考勤状态与审批流程关联 + +## 索引建议 +1. **主键索引**: id(已存在) +2. **外键索引**: + - staff_id(员工关联查询) + - campus_id(校区关联查询) +3. **普通索引**: + - attendance_date(考勤日期查询) + - status(考勤状态筛选) + - created_at(创建时间排序) +4. **复合索引**: + - (staff_id, attendance_date)(员工+日期查询) + - (campus_id, attendance_date)(校区+日期查询) + - (attendance_date, status)(日期+状态查询) + - (staff_id, status, attendance_date)(员工+状态+日期查询) + +## 注意事项 +1. **时间逻辑**: check_in_time应早于check_out_time +2. **请假时间**: 请假状态时leave_start_time和leave_end_time必须有值 +3. **状态一致性**: 考勤状态需要与时间字段保持逻辑一致 +4. **唯一性约束**: 同一员工同一天只能有一条考勤记录 +5. **坐标验证**: 打卡坐标需要在允许的范围内 +6. **数据完整性**: 签到时间为必填,签退时间可为空(未签退) +7. **状态自动判断**: 系统应根据时间自动判断迟到、早退等状态 +8. **异常处理**: 需要处理跨天打卡、忘记打卡等异常情况 +9. **权限控制**: 员工只能查看自己的考勤记录 +10. **数据备份**: 考勤数据涉及薪资计算,需要定期备份 diff --git a/niucloud/databasedoc/school_campus.md b/niucloud/databasedoc/school_campus.md new file mode 100644 index 00000000..8bb43590 --- /dev/null +++ b/niucloud/databasedoc/school_campus.md @@ -0,0 +1,77 @@ +# school_campus 表文档 + +## 表概述 +**表名**: school_campus +**功能**: 校区信息管理表,用于存储和管理学校各个校区的基本信息、地理位置、状态等核心数据,是整个教务系统的基础数据表。 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 主键ID +campus_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 校区名称 +campus_address varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 校区地址 +campus_preview_image varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 校区预览图,存储图片路径 +campus_coordinates varchar(512) utf8mb4_general_ci YES NULL select,insert,update,references 校区坐标,格式为经度,纬度 +campus_introduction text utf8mb4_general_ci YES NULL select,insert,update,references 校区介绍 +campus_status tinyint NULL YES 1 select,insert,update,references 校区状态:0-禁用,1-启用 +create_time timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 校区创建时间 +update_time timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 校区更新时间 +delete_time int NULL NO 0 select,insert,update,references 逻辑删除字段,0表示未删除,非空表示已删除 +``` + +## 功能用途 + +### 主要功能 +1. **校区基础信息管理**: 存储校区名称、地址、介绍等基本信息 +2. **地理位置管理**: 通过坐标字段支持地图定位和导航功能 +3. **校区展示**: 支持校区预览图片展示,用于宣传和介绍 +4. **状态控制**: 支持校区启用/禁用状态管理 +5. **数据完整性**: 提供软删除机制,保证数据的完整性和可追溯性 + +### 业务场景 +- 多校区学校的校区信息管理 +- 学生选择校区时的信息展示 +- 校区相关的课程、教师、学生数据关联 +- 校区地理位置查询和导航 +- 校区宣传和介绍展示 +- 系统数据按校区进行分类管理 + +## 关联关系 + +### 直接关联表 +1. **school_student**: 通过campus_id字段关联学生所属校区 +2. **school_teacher**: 通过campus_id字段关联教师所属校区 +3. **school_course**: 通过campus_id字段关联课程开设校区 +4. **school_classroom**: 通过campus_id字段关联教室所属校区 +5. **school_department**: 通过campus_id字段关联院系所属校区 + +### 间接关联表 +1. **school_class**: 通过校区间接关联班级信息 +2. **school_schedule**: 通过校区间接关联课程安排 +3. **school_exam**: 通过校区间接关联考试安排 +4. **school_fee**: 通过校区间接关联费用管理 + +### 关联说明 +- `id`字段作为主键,在多个业务表中作为campus_id外键引用 +- 校区是整个教务系统的基础维度,几乎所有业务数据都与校区相关 +- 支持多校区独立管理,也支持跨校区数据统计分析 +- 校区状态影响相关业务数据的可用性 + +## 索引建议 +- 主键索引:id(自动创建) +- 唯一索引:campus_name(校区名称唯一性) +- 普通索引:campus_status(按状态查询活跃校区) +- 普通索引:delete_time(软删除查询) +- 复合索引:campus_status + delete_time(查询有效校区) +- 普通索引:create_time(按创建时间排序) + +## 注意事项 +1. **数据完整性**: 校区是基础数据,删除前需要检查关联的业务数据 +2. **软删除**: 使用delete_time字段实现软删除,避免影响历史数据 +3. **坐标格式**: campus_coordinates字段建议使用标准的"经度,纬度"格式 +4. **图片路径**: campus_preview_image存储相对路径,需要配合文件服务使用 +5. **状态一致性**: campus_status和delete_time需要保持逻辑一致性 +6. **唯一性约束**: 校区名称应该保持唯一性,避免重复 +7. **时区处理**: timestamp字段需要注意时区设置和显示 +8. **级联影响**: 校区状态变更会影响所有关联的业务数据可用性 diff --git a/niucloud/databasedoc/school_campus_pay.md b/niucloud/databasedoc/school_campus_pay.md new file mode 100644 index 00000000..64ff5a67 --- /dev/null +++ b/niucloud/databasedoc/school_campus_pay.md @@ -0,0 +1,93 @@ +# school_campus_pay 表文档 + +## 表概述 +**表名**: school_campus_pay +**功能**: 校区支付配置表,用于管理各校区独立的支付参数和密钥配置,包括微信支付商户号、API密钥、证书等,支持多校区支付、密钥管理和支付安全,为学校提供分校区的支付配置和财务管理功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +campus_id int NULL NO UNI NULL select,insert,update,references 校区id +mchid varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 商户号 +pay_sign_key varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references APIv3密钥 +apiclient_key varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 商户私钥 +apiclient_cert varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 商户公钥 +wx_pay_key varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 微信支付公钥 +wx_pay_key_id varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 微信支付公钥ID +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +- **校区支付配置**: 管理各校区独立的支付参数和密钥配置 +- **微信支付集成**: 存储微信支付相关的商户号、密钥等配置信息 +- **支付安全管理**: 管理支付过程中的各种密钥和证书 +- **多校区支付**: 支持不同校区使用不同的支付配置 +- **支付参数管理**: 统一管理支付接口所需的各种参数 +- **密钥轮换**: 支持支付密钥的更新和轮换 +- **支付渠道配置**: 配置不同支付渠道的参数 +- **安全认证**: 管理支付过程中的安全认证信息 +- **配置版本管理**: 跟踪支付配置的变更历史 + +### 业务场景 +- **校区收费**: 各校区独立进行学费、杂费等收费操作 +- **在线支付**: 学员通过微信等渠道在线支付费用 +- **退费处理**: 处理学员退费时的支付渠道配置 +- **分校区结算**: 不同校区的收入分别结算到不同账户 +- **支付配置更新**: 定期更新支付密钥和证书 +- **多渠道支付**: 支持微信、支付宝等多种支付方式 +- **支付安全审计**: 定期检查支付配置的安全性 +- **异常支付处理**: 处理支付异常时的配置问题 +- **财务对账**: 基于校区维度进行财务对账 + +## 关联关系 + +### 主要关联表 +- `school_campus`: 校区表 (campus_id字段关联) +- `school_pay`: 支付表 (支付配置关联) +- `school_order`: 订单表 (支付处理关联) +- `school_member`: 会员表 (支付用户关联) +- `school_sys_config`: 系统配置表 (全局支付配置) +- `school_account_log`: 账户日志表 (支付日志关联) +- `school_pay_refund`: 退款表 (退款配置关联) + +### 关联说明 +- **校区关联**: campus_id关联校区表,实现校区级别的支付配置 +- **支付关联**: 支付操作时根据校区获取对应的支付配置 +- **订单关联**: 订单支付时使用对应校区的支付配置 +- **用户关联**: 用户支付时根据所属校区使用相应配置 +- **配置关联**: 与全局支付配置形成层级关系 +- **日志关联**: 支付操作产生的日志记录使用的配置信息 +- **退款关联**: 退款操作使用相同的支付配置进行处理 + +## 索引建议 +- **主键索引**: id (已存在) +- **唯一索引**: + - campus_id (校区唯一配置) +- **业务索引**: + - mchid (商户号查询) + - created_at (创建时间查询) + - updated_at (更新时间查询) +- **复合索引**: + - (campus_id, mchid) (校区商户查询) + +## 注意事项 +- **校区唯一性**: 每个校区只能有一套支付配置,campus_id必须唯一 +- **密钥安全**: 所有密钥字段需要加密存储,防止泄露 +- **配置完整性**: 所有支付相关字段都不能为空,确保支付功能正常 +- **密钥格式**: 各种密钥和证书需要符合微信支付的格式要求 +- **权限控制**: 支付配置的查看和修改需要严格的权限控制 +- **配置验证**: 保存配置前需要验证密钥和证书的有效性 +- **备份恢复**: 支付配置需要定期备份,支持快速恢复 +- **变更记录**: 配置变更需要记录操作人员和变更时间 +- **测试验证**: 配置更新后需要进行支付测试验证 +- **监控告警**: 支付配置异常时需要及时告警 +- **合规要求**: 支付配置需要符合相关法规和安全标准 +- **密钥轮换**: 定期更换支付密钥,提高安全性 +- **环境隔离**: 测试环境和生产环境的支付配置需要严格隔离 +- **访问日志**: 记录支付配置的访问和使用日志 +- **异常处理**: 支付配置错误时需要有降级和容错机制 diff --git a/niucloud/databasedoc/school_campus_person_role.md b/niucloud/databasedoc/school_campus_person_role.md new file mode 100644 index 00000000..7b8f6490 --- /dev/null +++ b/niucloud/databasedoc/school_campus_person_role.md @@ -0,0 +1,89 @@ +# school_campus_person_role 表文档 + +## 表概述 +**表名**: school_campus_person_role +**功能**: 校区人员角色关系表,用于管理人员在不同校区的角色分配和权限设置,支持多校区权限管理和组织架构维护 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 关系编号 +campus_id int NULL NO 0 select,insert,update,references 校区ID +person_id int NULL NO NULL select,insert,update,references 人员ID +role_id int NULL NO NULL select,insert,update,references 角色ID +dept_id int NULL YES NULL select,insert,update,references 部门表 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间 +deleted_at int NULL NO 0 select,insert,update,references 逻辑删除时间 +phone varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references +task_num int NULL NO 0 select,insert,update,references +``` + +## 功能用途 + +### 主要功能 +- **人员角色分配**: 管理人员在不同校区的角色分配和权限设置 +- **多校区权限管理**: 支持人员在多个校区拥有不同角色和权限 +- **部门关联管理**: 关联人员在特定校区的部门归属关系 +- **任务数量统计**: 记录人员在该校区角色下的任务数量 +- **联系方式管理**: 存储人员在该校区的联系电话信息 +- **时间追踪**: 记录角色分配的创建和更新时间 +- **逻辑删除支持**: 支持逻辑删除功能,保留历史角色分配记录 +- **权限继承**: 支持角色权限的继承和覆盖机制 + +### 业务场景 +- **多校区管理**: 集团化运营中人员在不同校区担任不同角色 +- **权限分级管理**: 根据校区和角色进行细粒度的权限控制 +- **人员调动**: 处理人员在校区间的调动和角色变更 +- **临时授权**: 为人员在特定校区临时分配角色和权限 +- **部门协作**: 管理跨部门、跨校区的人员协作关系 +- **任务分配**: 基于校区角色进行任务的分配和管理 +- **绩效考核**: 按校区和角色维度进行人员绩效评估 +- **组织架构管理**: 维护复杂的多校区组织架构关系 +- **应急响应**: 在紧急情况下快速调配人员和权限 + +## 关联关系 + +### 主要关联表 +- **school_campus**: 校区表,关联人员所属的校区信息 +- **school_personnel**: 人员表,关联具体的人员基本信息 +- **school_sys_role**: 系统角色表,关联人员被分配的角色 +- **school_department**: 部门表,关联人员在校区的部门归属 +- **school_sys_user**: 系统用户表,关联人员的登录账户信息 +- **school_permission**: 权限表,通过角色关联具体的权限设置 +- **school_task**: 任务表,关联人员在该角色下的具体任务 +- **school_organization**: 组织架构表,关联校区的组织结构 + +### 关联说明 +- `campus_id` 关联 `school_campus.id`,标识人员所属的校区 +- `person_id` 关联 `school_personnel.id`,标识被分配角色的人员 +- `role_id` 关联 `school_sys_role.id`,标识人员被分配的角色 +- `dept_id` 关联 `school_department.id`,标识人员在校区的部门归属 +- 与权限系统关联,实现基于校区和角色的权限控制 +- 与工作流系统关联,支持角色变更的审批流程 +- 与考勤系统关联,按校区角色进行考勤管理 + +## 索引建议 +- **主键索引**: `PRIMARY KEY (id)` - 自动创建 +- **校区索引**: `INDEX idx_campus_id (campus_id)` - 支持按校区查询人员角色 +- **人员索引**: `INDEX idx_person_id (person_id)` - 支持按人员查询角色分配 +- **角色索引**: `INDEX idx_role_id (role_id)` - 支持按角色查询人员 +- **部门索引**: `INDEX idx_dept_id (dept_id)` - 支持按部门查询 +- **电话索引**: `INDEX idx_phone (phone)` - 支持按联系方式查询 +- **时间索引**: `INDEX idx_created_at (created_at)` - 支持按创建时间查询 +- **逻辑删除索引**: `INDEX idx_deleted_at (deleted_at)` - 支持逻辑删除查询 +- **复合索引**: `INDEX idx_campus_person (campus_id, person_id)` - 支持校区和人员的复合查询 +- **唯一索引**: `UNIQUE INDEX uk_campus_person_role (campus_id, person_id, role_id, deleted_at)` - 防止重复分配 + +## 注意事项 +- **权限冲突检查**: 分配角色时需要检查权限冲突,避免权限过度集中 +- **角色继承规则**: 明确角色权限的继承和覆盖规则,避免权限混乱 +- **数据一致性**: 确保人员、校区、角色数据的一致性和完整性 +- **权限审计**: 定期审计人员的角色分配,确保权限的合理性 +- **批量操作控制**: 对批量角色分配操作进行严格控制和审批 +- **历史记录保留**: 保留角色分配的历史记录,支持权限变更的追溯 +- **并发控制**: 在高并发环境下确保角色分配的原子性 +- **权限缓存**: 合理使用权限缓存,提高系统性能 +- **安全控制**: 严格控制超级管理员等高权限角色的分配 +- **监控告警**: 建立权限异常变更的监控告警机制 diff --git a/niucloud/databasedoc/school_chat_friends.md b/niucloud/databasedoc/school_chat_friends.md new file mode 100644 index 00000000..2cd0a946 --- /dev/null +++ b/niucloud/databasedoc/school_chat_friends.md @@ -0,0 +1,98 @@ +# school_chat_friends 表文档 + +## 表概述 +**表名**: school_chat_friends +**功能**: 聊天好友关系管理表,用于管理员工与学生客户资源之间的聊天关系和消息状态 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references +personnel_id int NULL NO NULL select,insert,update,references 员工人力资源表id +customer_resources_id int NULL NO NULL select,insert,update,references 学生资源表id +unread_count_personnel int NULL NO 0 select,insert,update,references 员工未读消息数量|默认0 +unread_count_customer_resources int NULL NO 0 select,insert,update,references 学生端未读消息数量|默认0 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 添加时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间 +delete_time int NULL NO 0 select,insert,update,references 逻辑删除时间 +``` + +## 功能用途 + +### 主要功能 +- **好友关系管理**: 建立和维护员工与学生客户之间的聊天关系 +- **消息状态跟踪**: 分别跟踪员工端和学生端的未读消息数量 +- **聊天会话管理**: 管理一对一的聊天会话和对话历史 +- **消息计数器**: 实时更新双方的未读消息统计 +- **关系状态维护**: 维护聊天关系的有效性和活跃状态 +- **消息提醒**: 支持基于未读消息数量的提醒功能 +- **会话列表**: 为聊天应用提供好友列表和会话列表 +- **消息同步**: 确保双方消息状态的同步更新 +- **关系删除**: 支持聊天关系的逻辑删除和恢复 + +### 业务场景 +- **客户咨询**: 学生客户向销售或客服人员进行课程咨询 +- **学习指导**: 教师与学员进行一对一的学习指导和答疑 +- **课程服务**: 班主任与学员进行课程安排和学习跟进 +- **售后服务**: 客服人员处理学员的投诉和建议 +- **招生沟通**: 招生顾问与潜在客户进行招生宣传和答疑 +- **家长沟通**: 教师与学员家长进行学习情况沟通 +- **紧急通知**: 学校向学员发送紧急通知和重要信息 +- **作业辅导**: 教师为学员提供课后作业指导 +- **考试答疑**: 考前为学员提供专门的答疑服务 + +## 关联关系 + +### 主要关联表 +- `school_personnel`: 人员表(员工信息) +- `school_customer_resources`: 客户资源表(学生客户信息) +- `school_chat_messages`: 聊天消息表(具体的聊天消息) +- `school_member`: 会员表(正式学员信息) +- `school_sys_user`: 系统用户表(用户登录信息) +- `school_course`: 课程表(相关课程信息) +- `school_class`: 班级表(班级关联信息) +- `school_campus`: 校区表(所属校区) + +### 关联说明 +- **员工关联**: personnel_id关联到school_personnel表的员工信息 +- **客户关联**: customer_resources_id关联到客户资源表 +- **消息关联**: 与聊天消息表形成一对多关系 +- **用户关联**: 通过人员和客户资源关联到系统用户 +- **业务关联**: 可能关联到具体的课程、班级等业务对象 +- **校区关联**: 通过人员和客户资源间接关联到校区 +- **时间关联**: 记录关系建立和更新的时间信息 + +## 索引建议 +- **主键索引**: id(已存在) +- **外键索引**: + - personnel_id(员工查询) + - customer_resources_id(客户查询) +- **复合索引**: + - (personnel_id, customer_resources_id)(唯一好友关系) + - (personnel_id, delete_time)(员工有效关系查询) + - (customer_resources_id, delete_time)(客户有效关系查询) +- **时间索引**: + - created_at(创建时间查询) + - updated_at(更新时间查询) +- **状态索引**: delete_time(逻辑删除查询) +- **消息统计索引**: + - unread_count_personnel(员工未读消息) + - unread_count_customer_resources(客户未读消息) + +## 注意事项 +- **唯一性约束**: 确保同一员工与同一客户只能有一个有效的聊天关系 +- **消息计数准确性**: 保证未读消息计数的准确性和实时性 +- **逻辑删除**: 使用delete_time字段进行逻辑删除,保留历史记录 +- **权限控制**: 严格控制聊天关系的建立和访问权限 +- **数据同步**: 确保消息状态与实际聊天记录的同步 +- **性能优化**: 大量聊天关系时需要优化查询性能 +- **消息清理**: 定期清理过期的聊天关系和消息记录 +- **隐私保护**: 保护聊天关系和消息内容的隐私安全 +- **并发控制**: 处理消息计数更新时的并发问题 +- **关系恢复**: 支持已删除聊天关系的恢复功能 +- **监控告警**: 监控异常的聊天行为和消息量 +- **备份策略**: 重要的聊天关系数据需要定期备份 +- **消息推送**: 基于未读消息数量进行消息推送 +- **会话管理**: 合理管理长期不活跃的聊天会话 +- **数据迁移**: 支持聊天关系数据的迁移和同步 diff --git a/niucloud/databasedoc/school_chat_messages.md b/niucloud/databasedoc/school_chat_messages.md new file mode 100644 index 00000000..64ae9b37 --- /dev/null +++ b/niucloud/databasedoc/school_chat_messages.md @@ -0,0 +1,129 @@ +# school_chat_messages 表文档 + +## 表概述 +**表名**: school_chat_messages +**功能**: 聊天消息管理表,用于记录和管理系统内部的即时通讯消息,支持员工与学员、员工之间的多种类型消息交流,包括文本、图片、系统通知等,为教育机构提供完整的内部沟通平台 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references +from_type enum('personnel','customer','system') utf8mb4_general_ci NO NULL select,insert,update,references 发送者类型|personnel=员工,customer=学生(客户)system(系统消息) +from_id int NULL NO NULL select,insert,update,references 发送者ID(员工/学生)根据from_type进行判断为presonnel时,必然是员工id,为customer时必然是学生id +to_id int NULL NO MUL NULL select,insert,update,references 接收者ID(员工/学生)根据from_type进行判断为presonnel时,必然是员工id,为customer时必然是学生id +to_type enum('personnel','customer','member') utf8mb4_general_ci NO customer select,insert,update,references 接收者类型 +friend_id int NULL NO NULL select,insert,update,references 关联chat_friends表id +message_type enum('text','img','system','notification','homework','feedback','reminder','order','student_courses','person_course_schedule') utf8mb4_general_ci YES text select,insert,update,references +content text utf8mb4_general_ci NO NULL select,insert,update,references 文本内容(JSON 格式扩展字段) +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 添加时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间 +delete_time int NULL NO 0 select,insert,update,references 逻辑删除时间 +is_read tinyint(1) NULL YES 0 select,insert,update,references 是否已读 0-未读 1-已读 +read_time timestamp NULL YES NULL select,insert,update,references 已读时间 +title varchar(255) utf8mb4_general_ci YES select,insert,update,references 消息标题 +business_id int NULL YES NULL select,insert,update,references 关联业务ID +business_type varchar(50) utf8mb4_general_ci YES select,insert,update,references 业务类型 +``` + +## 功能用途 + +### 主要功能 +- **多类型消息支持**: 支持文本、图片、系统通知、作业、反馈等多种消息类型 +- **用户身份管理**: 区分员工、学员、系统等不同发送者和接收者类型 +- **好友关系维护**: 通过friend_id关联聊天好友关系 +- **消息状态跟踪**: 跟踪消息的已读状态和阅读时间 +- **业务消息关联**: 支持与具体业务对象的关联,如课程、订单等 +- **软删除机制**: 支持消息的逻辑删除,保护数据完整性 +- **消息标题管理**: 支持消息标题,便于消息分类和展示 +- **时间戳记录**: 完整记录消息的创建和更新时间 + +### 业务场景 +- **师生沟通**: 教师与学员之间的课程咨询和学习交流 +- **作业布置**: 教师向学员布置和批改作业 +- **学习反馈**: 学员向教师反馈学习情况和问题 +- **课程提醒**: 系统自动发送课程安排和变更通知 +- **订单通知**: 支付成功、课程购买等订单相关通知 +- **系统公告**: 重要系统公告和通知的推送 +- **客服咨询**: 学员与客服人员的在线咨询 +- **内部协作**: 员工之间的工作协作和信息交流 +- **家校沟通**: 教师与家长的沟通交流 +- **紧急通知**: 紧急情况下的即时通知和提醒 + +## 关联关系 + +### 主要关联表 +- **school_chat_friends**: 聊天好友表,通过friend_id关联好友关系 +- **school_personnel**: 人员表,当from_type或to_type为personnel时关联 +- **school_student**: 学员表,当from_type或to_type为customer时关联 +- **school_member**: 会员表,当to_type为member时关联 +- **school_course**: 课程表,当business_type为课程相关时关联 +- **school_pay**: 支付表,当business_type为订单相关时关联 +- **school_person_course_schedule**: 个人课程安排表,当message_type为person_course_schedule时关联 +- **school_student_courses**: 学员课程表,当message_type为student_courses时关联 + +### 关联说明 +- 通过from_id和to_id建立消息发送者和接收者的关联 +- 通过friend_id关联具体的好友关系记录 +- 通过business_id和business_type关联具体的业务对象 +- 支持多种用户类型之间的消息交流 +- 消息类型决定了消息的展示方式和处理逻辑 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 接收者索引(用于查询接收的消息) +INDEX idx_to_id (to_id) + +-- 好友关系索引(用于查询好友间的消息) +INDEX idx_friend_id (friend_id) + +-- 发送者索引(用于查询发送的消息) +INDEX idx_from_id (from_id) + +-- 已读状态索引(用于查询未读消息) +INDEX idx_is_read (is_read) + +-- 创建时间索引(用于按时间排序) +INDEX idx_created_at (created_at) + +-- 删除时间索引(用于软删除查询) +INDEX idx_delete_time (delete_time) + +-- 消息类型索引(用于按类型查询) +INDEX idx_message_type (message_type) + +-- 业务关联索引(用于查询业务相关消息) +INDEX idx_business (business_type, business_id) + +-- 复合索引(接收者和已读状态) +INDEX idx_to_read (to_id, is_read) + +-- 复合索引(好友和时间) +INDEX idx_friend_time (friend_id, created_at) + +-- 复合索引(发送者类型和ID) +INDEX idx_from_type_id (from_type, from_id) + +-- 复合索引(接收者类型和ID) +INDEX idx_to_type_id (to_type, to_id) +``` + +## 注意事项 +- **消息安全**: 确保消息内容的安全性,防止敏感信息泄露 +- **权限控制**: 严格控制消息的发送和接收权限 +- **内容审核**: 建立消息内容的审核机制,防止不当内容 +- **存储优化**: 大量消息数据需要考虑存储优化和归档策略 +- **实时性**: 确保消息的实时推送和接收 +- **消息格式**: JSON格式的content字段需要规范化处理 +- **文件管理**: 图片等文件类型消息需要配套的文件存储方案 +- **消息限制**: 设置合理的消息长度和发送频率限制 +- **数据清理**: 定期清理过期的已删除消息数据 +- **备份策略**: 重要消息需要建立备份和恢复机制 +- **性能监控**: 监控消息系统的性能和响应时间 +- **用户体验**: 优化消息的展示和交互体验 +- **离线消息**: 处理用户离线时的消息存储和推送 +- **消息统计**: 建立消息发送和接收的统计分析 +- **异常处理**: 处理消息发送失败和网络异常情况 diff --git a/niucloud/databasedoc/school_class.md b/niucloud/databasedoc/school_class.md new file mode 100644 index 00000000..adf1f42d --- /dev/null +++ b/niucloud/databasedoc/school_class.md @@ -0,0 +1,98 @@ +# school_class 表文档 + +## 表概述 +**表名**: school_class +**功能**: 班级信息管理表,存储教务系统中所有班级的基本信息、教练配置、课程关联、学员管理等核心数据 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 班级编号 +campus_id int NULL NO NULL select,insert,update,references 校区ID +campus_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 校区名称 +class_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 班级名称 +head_coach varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 班级主教练 +age_group varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 班级授课年龄段 +class_type varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 班级类型 +assistant_coach varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 班级助教 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +deleted_at varchar(255) utf8mb4_general_ci YES 0 select,insert,update,references 逻辑删除时间 +status tinyint NULL YES 1 select,insert,update,references 班级状态(1开启 2关闭) +sort_order int NULL NO NULL select,insert,update,references 班级排序 +remarks text utf8mb4_general_ci YES NULL select,insert,update,references 班级备注 +educational_id int NULL NO 0 select,insert,update,references 教务id +``` + +## 功能用途 + +### 主要功能 +1. **班级基础管理**: 存储班级名称、编号、类型、状态等基本信息 +2. **教练配置管理**: 配置主教练(head_coach)和助理教练(assistant_coach) +3. **课程关联管理**: 通过course_id关联具体课程信息 +4. **学员容量管理**: 设置班级最大学员数量限制 +5. **时间周期管理**: 管理班级开始和结束时间 +6. **校区归属管理**: 通过campus_id关联所属校区 +7. **班级状态控制**: 管理班级的启用/禁用状态 +8. **排序展示管理**: 通过sort字段控制班级显示顺序 + +### 业务场景 +1. **班级创建**: 新建班级,配置基本信息和教练 +2. **学员报名**: 学员选择班级进行课程学习 +3. **排课管理**: 为班级安排具体的上课时间和地点 +4. **教练调配**: 根据需要调整班级的主教练和助理教练 +5. **容量控制**: 限制班级学员数量,避免超员 +6. **班级调整**: 修改班级信息、合并或拆分班级 +7. **数据统计**: 统计班级学员数量、课程进度等信息 +8. **校区管理**: 不同校区的班级独立管理 + +## 关联关系 + +### 主要关联表 +1. **school_course**: 课程表(course_id字段关联) +2. **school_personnel**: 人员表(head_coach, assistant_coach关联) +3. **school_campus**: 校区表(campus_id字段关联) +4. **school_class_member**: 班级学员关联表 +5. **school_schedule**: 排课表(班级排课关联) +6. **school_class_course**: 班级课程关联表 +7. **school_attendance**: 考勤表(班级考勤统计) +8. **school_homework**: 作业表(班级作业管理) + +### 关联说明 +1. **课程关联**: 通过course_id与课程表关联,确定班级所属课程 +2. **教练关联**: head_coach和assistant_coach关联人员表,配置班级教练 +3. **校区关联**: 通过campus_id关联校区,实现多校区班级管理 +4. **学员关联**: 通过班级学员关联表管理班级内的学员 +5. **排课关联**: 班级与排课表关联,安排具体上课时间 +6. **教学关联**: 与考勤、作业等教学管理功能关联 + +## 索引建议 +1. **主键索引**: id(已存在) +2. **外键索引**: + - course_id(课程关联查询) + - campus_id(校区关联查询) + - head_coach(主教练查询) + - assistant_coach(助理教练查询) +3. **普通索引**: + - class_name(班级名称搜索) + - class_type(班级类型筛选) + - status(状态筛选) + - sort(排序查询) + - create_time(创建时间排序) +4. **复合索引**: + - (campus_id, status)(校区+状态查询) + - (course_id, status)(课程+状态查询) + - (status, sort)(状态+排序查询) + +## 注意事项 +1. **容量控制**: max_students字段需要与实际报名人数进行校验 +2. **教练配置**: 主教练和助理教练不能为同一人 +3. **时间逻辑**: start_time不能晚于end_time +4. **软删除**: 使用deleted_at字段实现软删除,保护历史数据 +5. **状态管理**: 班级状态变更需要考虑已报名学员的影响 +6. **课程关联**: course_id变更需要验证课程的有效性 +7. **校区归属**: campus_id变更需要考虑教练和学员的校区匹配 +8. **排序维护**: sort字段需要保证在同一校区内的唯一性和连续性 +9. **教练权限**: 教练只能管理自己负责的班级 +10. **数据一致性**: 班级删除时需要处理相关的学员、排课等数据 diff --git a/niucloud/databasedoc/school_class_personnel_rel.md b/niucloud/databasedoc/school_class_personnel_rel.md new file mode 100644 index 00000000..5c7f649b --- /dev/null +++ b/niucloud/databasedoc/school_class_personnel_rel.md @@ -0,0 +1,112 @@ +# school_class_personnel_rel 表文档 + +## 表概述 +**表名**: school_class_personnel_rel +**功能**: 班级人员关联表,用于管理班级与教学人员之间的多对多关联关系,支持主教练、助教、教务等不同角色的分工管理,记录人员在班级中的加入时间、离开时间和状态信息,为班级教学管理和人员调配提供完整的关联数据支持 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +class_id int NULL NO NULL select,insert,update,references 班级id +campus_id int NULL YES NULL select,insert,update,references 校区id +source_id int NULL YES NULL select,insert,update,references 数据id +join_time int NULL YES NULL select,insert,update,references 加入时间 +out_time int NULL YES NULL select,insert,update,references 离开时间 +status tinyint NULL YES NULL select,insert,update,references 状态1正常2请假 +create_time timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +update_time timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间 +role varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 主教练coach,asistantcoach助教,affairs教务 +``` + +## 功能用途 + +### 主要功能 +- **班级人员关联**: 建立班级与教师、教务等人员的多对多关联关系 +- **角色分工管理**: 通过role字段区分主教练、助教、教务等不同角色 +- **人员状态跟踪**: 管理人员在班级中的状态(正常、请假等) +- **时间周期管理**: 记录人员加入和离开班级的具体时间 +- **校区关联管理**: 关联人员所属的校区信息 +- **数据源追踪**: 通过source_id字段追踪人员数据的来源 +- **人员变更记录**: 完整记录班级人员的变更历史 +- **多角色支持**: 支持一个人员在同一班级担任多个角色 +- **时间段管理**: 支持人员在不同时间段的角色变更 + +### 业务场景 +- **班级组建**: 新班级创建时分配主教练、助教等教学人员 +- **人员调配**: 根据教学需要调整班级的教学人员配置 +- **请假管理**: 教师请假时更新状态,安排代课教师 +- **角色变更**: 助教晋升为主教练,或教务转为教学岗位 +- **跨校区教学**: 教师在多个校区的不同班级任教 +- **临时支援**: 临时安排教师支援其他班级的教学工作 +- **人员考核**: 统计教师在各班级的任教情况和时长 +- **排课管理**: 根据班级人员配置进行课程安排 +- **工作量统计**: 统计教师的班级数量和教学工作量 +- **人员流动**: 跟踪教师在不同班级间的流动情况 + +## 关联关系 + +### 主要关联表 +- **school_class**: 班级表,通过class_id字段关联 +- **school_campus**: 校区表,通过campus_id字段关联 +- **school_personnel**: 人员表,通过source_id字段关联 +- **school_course**: 课程表,班级关联的课程信息 +- **school_schedule**: 排课表,根据班级人员安排课程 +- **school_attendance**: 考勤表,记录班级人员的考勤情况 +- **school_sys_user**: 系统用户表,人员可能对应系统用户 + +### 关联说明 +- **班级关联**: 通过class_id与school_class表建立多对一关系 +- **校区关联**: 通过campus_id与school_campus表建立多对一关系 +- **人员关联**: 通过source_id与school_personnel表建立多对一关系 +- **课程关联**: 班级人员配置影响课程的教学安排 +- **排课关联**: 班级人员信息是排课的重要依据 +- **考勤关联**: 班级人员的考勤记录与此表相关 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 班级ID索引(用于查询班级人员) +INDEX idx_class_id (class_id) + +-- 校区ID索引(用于按校区查询) +INDEX idx_campus_id (campus_id) + +-- 数据源ID索引(用于查询人员班级) +INDEX idx_source_id (source_id) + +-- 状态索引(用于查询有效人员) +INDEX idx_status (status) + +-- 角色索引(用于按角色查询) +INDEX idx_role (role) + +-- 复合索引(用于班级人员查询) +INDEX idx_class_status (class_id, status) + +-- 复合索引(用于人员班级查询) +INDEX idx_source_class (source_id, class_id) + +-- 时间范围索引(用于查询在职人员) +INDEX idx_time_range (join_time, out_time) +``` + +## 注意事项 +- **角色规范**: role字段应使用标准的角色代码(coach、assistantcoach、affairs) +- **时间逻辑**: join_time应小于out_time,out_time为空表示仍在职 +- **状态一致性**: 人员状态变更应与实际工作状态保持一致 +- **重复检查**: 避免同一人员在同一班级同一时间段重复分配 +- **权限控制**: 不同角色的人员应有不同的班级管理权限 +- **数据完整性**: source_id应确保在school_personnel表中存在 +- **校区一致性**: 人员所属校区应与班级所属校区保持一致 +- **时间精度**: 时间字段应保证足够的精度,支持精确的时间管理 +- **状态流转**: 人员状态变更应遵循合理的流转规则 +- **历史记录**: 重要的人员变更应保留完整的历史记录 +- **并发控制**: 人员分配操作需要考虑并发安全问题 +- **业务规则**: 主教练不能为空,每个班级至少要有一个主教练 +- **离职处理**: 人员离职时应及时更新out_time字段 +- **数据清理**: 定期清理过期的人员关联记录 +- **审计追踪**: 重要的人员变更操作应记录操作日志 diff --git a/niucloud/databasedoc/school_class_resources_rel.md b/niucloud/databasedoc/school_class_resources_rel.md new file mode 100644 index 00000000..341aba9b --- /dev/null +++ b/niucloud/databasedoc/school_class_resources_rel.md @@ -0,0 +1,114 @@ +# school_class_resources_rel 表文档 + +## 表概述 +**表名**: school_class_resources_rel +**功能**: 班级学员关联表,用于管理班级与学员之间的多对多关联关系,支持正式学员和临时学员的分类管理,记录学员在班级中的加入时间、离开时间和状态变化,为班级学员管理、学籍管理和学员流动追踪提供完整的数据支持 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +class_id int NULL NO NULL select,insert,update,references 班级id +resource_id int NULL YES NULL select,insert,update,references 资源id +campus_id int NULL YES NULL select,insert,update,references 校区id +source_id int NULL YES NULL select,insert,update,references 数据id +source_type varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 数据资源类型student是学员,temporary是非正式学员 +join_time int NULL YES NULL select,insert,update,references 加入时间 +out_time int NULL YES NULL select,insert,update,references 离开时间 +status tinyint NULL YES NULL select,insert,update,references 状态1新入2续费3过期4转班5转校 +create_time timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +update_time timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **班级学员关联**: 建立班级与学员之间的多对多关联关系 +- **学员类型管理**: 通过source_type区分正式学员(student)和临时学员(temporary) +- **学员状态跟踪**: 管理学员在班级中的状态(新入、续费、过期、转班、转校) +- **时间周期管理**: 记录学员加入和离开班级的具体时间 +- **校区关联管理**: 关联学员所属的校区信息 +- **学员流动追踪**: 完整记录学员在不同班级间的流动历史 +- **学籍状态管理**: 管理学员的学籍状态和变更记录 +- **多校区支持**: 支持学员在不同校区间的转移和管理 +- **数据源追踪**: 通过source_id字段追踪学员数据的来源 + +### 业务场景 +- **学员报名入班**: 新学员报名后分配到相应的班级 +- **学员续费管理**: 学员续费后更新在班级中的状态 +- **学员转班操作**: 学员因各种原因需要转到其他班级 +- **学员转校管理**: 学员在不同校区间的转移管理 +- **学员退学处理**: 学员退学时更新离开时间和状态 +- **试听学员管理**: 临时学员的试听课程管理 +- **班级人数统计**: 统计各班级的学员人数和构成 +- **学员流动分析**: 分析学员在不同班级间的流动情况 +- **学籍状态查询**: 查询学员的当前学籍状态和历史记录 +- **收费管理**: 根据学员在班级的状态进行收费管理 + +## 关联关系 + +### 主要关联 +- **school_class**: 关联班级信息,获取班级基本信息、课程信息和状态 +- **school_member**: 通过source_id关联学员信息,获取学员基本资料 +- **school_campus**: 关联校区信息,支持多校区学员管理 + +### 间接关联 +- **school_course**: 通过班级关联课程信息,了解学员所学课程 +- **school_personnel**: 通过班级关联教师信息,了解学员的任课教师 +- **school_contract**: 通过学员关联合同信息,管理学员的合同状态 +- **school_pay**: 通过学员关联缴费信息,管理学员的缴费状态 +- **school_attendance**: 关联考勤记录,跟踪学员的出勤情况 +- **school_grade**: 关联成绩记录,跟踪学员的学习成绩 + +## 索引建议 + +### 主要索引 +```sql +-- 班级学员查询索引 +CREATE INDEX idx_class_student_class_id ON school_class_resources_rel(class_id); + +-- 学员班级查询索引 +CREATE INDEX idx_class_student_source ON school_class_resources_rel(source_type, source_id); + +-- 校区学员查询索引 +CREATE INDEX idx_class_student_campus_id ON school_class_resources_rel(campus_id); + +-- 状态查询索引 +CREATE INDEX idx_class_student_status ON school_class_resources_rel(status); +``` + +### 复合索引 +```sql +-- 班级状态复合索引 +CREATE INDEX idx_class_student_class_status ON school_class_resources_rel(class_id, status); + +-- 学员状态复合索引 +CREATE INDEX idx_class_student_source_status ON school_class_resources_rel(source_type, source_id, status); + +-- 时间范围查询索引 +CREATE INDEX idx_class_student_time_range ON school_class_resources_rel(join_time, leave_time); + +-- 校区班级复合索引 +CREATE INDEX idx_class_student_campus_class ON school_class_resources_rel(campus_id, class_id); +``` + +## 注意事项 + +### 数据完整性 +- 确保class_id和source_id的有效性,避免无效关联 +- 合理设置学员的加入和离开时间,确保时间逻辑正确 +- 及时更新学员状态,保持数据的准确性 +- 避免同一学员在同一时间段内重复加入同一班级 + +### 性能优化 +- 定期清理历史的学员关联记录 +- 合理使用索引提高查询效率 +- 避免频繁的学员状态变更操作 +- 对于大量学员的批量操作要注意性能影响 + +### 业务规则 +- 学员在同一时间只能属于一个班级(除非支持多班级学习) +- 学员转班时需要正确处理原班级的离开时间和新班级的加入时间 +- 删除班级时需要妥善处理相关的学员关联记录 +- 临时学员和正式学员的管理规则可能不同,需要区别对待 diff --git a/niucloud/databasedoc/school_coach_performance.md b/niucloud/databasedoc/school_coach_performance.md new file mode 100644 index 00000000..fb177907 --- /dev/null +++ b/niucloud/databasedoc/school_coach_performance.md @@ -0,0 +1,108 @@ +# school_coach_performance 表文档 + +## 表概述 +**表名**: school_coach_performance +**功能**: 教练绩效管理表,用于记录和管理教练人员的绩效考核数据,包括绩效金额、资源销售数量、绩效配置和算法等信息,为教练薪酬计算、绩效评估和激励管理提供数据支持 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +personnel_id int NULL YES NULL select,insert,update,references 人员ID +campus_id int NULL YES NULL select,insert,update,references 校区ID +performance_amount decimal(10,2) NULL YES NULL select,insert,update,references 绩效金额 +new_resource_count int NULL YES NULL select,insert,update,references 新购买课程资源数量 +renew_resource_count int NULL YES NULL select,insert,update,references 续费资源数量 +performance_date date NULL YES NULL select,insert,update,references 绩效日期 +performance_config varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 绩效配置 +performance_algorithm varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 绩效算法 +created_at timestamp NULL YES NULL select,insert,update,references 创建时间 +updated_at timestamp NULL YES NULL select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **绩效金额管理**: 记录教练的绩效金额和奖金计算结果 +- **资源销售统计**: 统计教练的新购买和续费资源销售数量 +- **绩效配置管理**: 管理教练绩效考核的配置参数 +- **算法规则应用**: 应用不同的绩效计算算法和规则 +- **日期维度统计**: 按日期维度记录和统计绩效数据 +- **校区绩效分析**: 支持按校区维度进行绩效分析 +- **人员绩效跟踪**: 跟踪个人教练的绩效变化趋势 +- **薪酬计算基础**: 为教练薪酬和奖金计算提供数据基础 + +### 业务场景 +- **月度绩效考核**: 按月统计和考核教练的销售绩效 +- **季度奖金计算**: 基于绩效数据计算季度奖金 +- **年度绩效评估**: 进行年度绩效评估和排名 +- **销售目标管理**: 设定和跟踪教练的销售目标完成情况 +- **团队绩效比较**: 比较不同教练和团队的绩效表现 +- **校区绩效分析**: 分析不同校区教练的绩效水平 +- **绩效趋势分析**: 分析教练绩效的变化趋势 +- **激励政策制定**: 基于绩效数据制定激励政策 +- **培训需求识别**: 识别绩效较低教练的培训需求 +- **薪酬结构优化**: 优化教练的薪酬结构和激励机制 + +## 关联关系 + +### 主要关联表 +- **school_personnel**: 人员表,关联教练的基本信息 +- **school_campus**: 校区表,关联教练所属的校区信息 +- **school_performance_config**: 绩效配置表,关联绩效考核的配置规则 +- **school_course**: 课程表,关联教练销售的课程资源 +- **school_pay**: 支付表,关联教练销售产生的支付记录 +- **school_contract**: 合同表,关联教练签署的销售合同 +- **school_sales_performance**: 销售绩效表,可能存在关联的销售绩效数据 +- **school_member**: 会员表,关联教练服务的会员客户 + +### 关联说明 +- 通过personnel_id关联具体的教练人员信息 +- 通过campus_id关联教练所属的校区 +- 通过performance_config关联具体的绩效配置规则 +- 绩效数据与教练的课程销售、合同签署等业务活动关联 +- 支持多维度的绩效数据分析和统计 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 人员ID索引(用于查询特定教练的绩效) +INDEX idx_personnel_id (personnel_id) + +-- 校区ID索引(用于按校区统计绩效) +INDEX idx_campus_id (campus_id) + +-- 绩效日期索引(用于按时间查询和统计) +INDEX idx_performance_date (performance_date) + +-- 创建时间索引(用于按创建时间排序) +INDEX idx_created_at (created_at) + +-- 复合索引(人员和日期) +INDEX idx_personnel_date (personnel_id, performance_date) + +-- 复合索引(校区和日期) +INDEX idx_campus_date (campus_id, performance_date) + +-- 绩效金额索引(用于绩效排名) +INDEX idx_performance_amount (performance_amount) +``` + +## 注意事项 +- **数据准确性**: 确保绩效数据的准确性,避免计算错误 +- **算法一致性**: 保持绩效计算算法的一致性和公平性 +- **时间维度**: 注意绩效统计的时间维度和周期设置 +- **配置管理**: 妥善管理绩效配置的变更和版本控制 +- **数据安全**: 绩效数据涉及薪酬信息,需要严格的权限控制 +- **审计追踪**: 建立绩效数据的审计追踪机制 +- **异常处理**: 处理绩效计算中的异常情况和边界条件 +- **数据备份**: 定期备份重要的绩效数据 +- **性能优化**: 大量数据时需要优化查询和统计性能 +- **报表生成**: 支持各种绩效报表的生成和导出 +- **历史数据**: 妥善保存历史绩效数据,支持趋势分析 +- **多维分析**: 支持按人员、校区、时间等多维度分析 +- **激励透明**: 确保绩效计算过程的透明性和可解释性 +- **定期审核**: 定期审核绩效数据和计算规则的合理性 diff --git a/niucloud/databasedoc/school_communication_records.md b/niucloud/databasedoc/school_communication_records.md new file mode 100644 index 00000000..2f5af290 --- /dev/null +++ b/niucloud/databasedoc/school_communication_records.md @@ -0,0 +1,120 @@ +# school_communication_records 表文档 + +## 表概述 +**表名**: school_communication_records +**功能**: 沟通记录管理表,用于记录和管理员工与各类资源对象之间的沟通交流信息,支持多种沟通方式和结果跟踪,为客户关系管理和服务质量监控提供完整的沟通历史记录 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 沟通记录编号 +staff_id int NULL NO NULL select,insert,update,references 员工ID +resource_id int NULL NO NULL select,insert,update,references 资源ID +resource_type varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 资源类型(如设备、文件、系统等) +communication_type enum('phone','email','meeting','other') utf8mb4_general_ci NO NULL select,insert,update,references 沟通类型: phone-电话, email-邮件, meeting-会议, other-其他 +communication_result enum('success','failure','pending') utf8mb4_general_ci NO NULL select,insert,update,references 沟通结果: success-成功, failure-失败, pending-待定 +communication_time datetime NULL NO NULL select,insert,update,references 沟通时间 +remarks text utf8mb4_general_ci YES NULL select,insert,update,references 备注 +tag enum('high','medium','low') utf8mb4_general_ci YES NULL select,insert,update,references 标签:|默认null high-高, medium-中, low-低 +business_id int NULL YES NULL select,insert,update,references 关联的业务ID +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +- **沟通记录管理**: 完整记录各种沟通交流的详细信息和内容 +- **参与者跟踪**: 通过user_id和target_id跟踪沟通的参与双方 +- **沟通类型分类**: 通过type字段区分不同类型的沟通方式 +- **内容存储**: 详细记录沟通的具体内容和相关信息 +- **状态管理**: 跟踪沟通记录的处理状态和进展情况 +- **时间轴记录**: 完整记录沟通的发生时间和更新时间 +- **优先级管理**: 通过priority字段标识沟通的重要程度 +- **结果跟踪**: 记录沟通的结果和后续处理情况 +- **软删除支持**: 支持软删除机制,保留重要的沟通历史 + +### 业务场景 +- **客户沟通**: 记录与客户的电话、微信、面谈等沟通记录 +- **家校沟通**: 记录学校与家长之间的各种沟通交流 +- **内部沟通**: 记录员工之间的工作沟通和协调记录 +- **投诉处理**: 记录投诉的沟通过程和处理结果 +- **咨询服务**: 记录客户咨询的问题和解答过程 +- **销售跟进**: 记录销售人员与潜在客户的沟通跟进 +- **售后服务**: 记录售后服务过程中的沟通记录 +- **问题反馈**: 记录用户问题反馈和处理沟通 +- **会议记录**: 记录重要会议的沟通内容和决议 +- **培训沟通**: 记录培训过程中的师生沟通交流 + +## 关联关系 + +### 主要关联表 +- **school_sys_user**: 系统用户表,通过user_id关联发起沟通的用户 +- **school_member**: 会员表,通过target_id关联沟通对象(会员) +- **school_personnel**: 人员表,通过target_id关联沟通对象(员工) +- **school_student**: 学员表,通过target_id关联沟通对象(学员) +- **school_course**: 课程表,课程相关的沟通记录 +- **school_class**: 班级表,班级相关的沟通记录 +- **school_pay**: 支付表,支付相关的沟通记录 +- **school_contract**: 合同表,合同相关的沟通记录 + +### 关联说明 +- **用户关联**: user_id关联发起沟通的系统用户 +- **目标关联**: target_id根据沟通对象类型关联不同的用户表 +- **类型关联**: type字段标识沟通类型,可能关联不同的业务场景 +- **业务关联**: 根据沟通内容可能与课程、班级、支付等业务表关联 +- **状态关联**: status字段可能与工作流状态表关联 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 用户ID索引(用于查询用户发起的沟通) +INDEX idx_user_id (user_id) + +-- 目标ID索引(用于查询与特定对象的沟通) +INDEX idx_target_id (target_id) + +-- 沟通类型索引(用于按类型查询) +INDEX idx_type (type) + +-- 状态索引(用于按状态查询) +INDEX idx_status (status) + +-- 优先级索引(用于按优先级查询) +INDEX idx_priority (priority) + +-- 创建时间索引(用于按时间查询) +INDEX idx_create_time (create_time) + +-- 更新时间索引(用于按更新时间查询) +INDEX idx_update_time (update_time) + +-- 复合索引(用于用户沟通统计) +INDEX idx_user_type_time (user_id, type, create_time) + +-- 复合索引(用于目标对象沟通查询) +INDEX idx_target_status_time (target_id, status, create_time) + +-- 软删除索引(用于查询有效记录) +INDEX idx_delete_time (delete_time) +``` + +## 注意事项 +- **数据完整性**: 确保user_id和target_id字段的数据完整性 +- **隐私保护**: 沟通内容可能涉及隐私,需要严格的访问控制 +- **内容审核**: 沟通内容应经过适当的审核和过滤 +- **状态一致性**: 沟通状态应与实际处理进度保持一致 +- **时间精度**: 时间字段应保证足够精度,支持精确的时间统计 +- **类型规范**: type字段应有明确的分类标准和枚举值 +- **优先级管理**: priority字段应有清晰的优先级定义 +- **内容长度**: content字段长度应满足实际沟通内容的存储需求 +- **权限控制**: 不同角色用户应有不同的沟通记录访问权限 +- **数据备份**: 重要的沟通记录需要定期备份 +- **查询优化**: 针对常用查询场景优化索引和查询语句 +- **数据清理**: 定期清理过期或无效的沟通记录 +- **并发控制**: 多人同时处理同一沟通记录时需要考虑并发控制 +- **通知机制**: 重要沟通应有相应的通知提醒机制 +- **跟进提醒**: 建立沟通跟进的提醒和督办机制 diff --git a/niucloud/databasedoc/school_contract.md b/niucloud/databasedoc/school_contract.md new file mode 100644 index 00000000..cd8b24e0 --- /dev/null +++ b/niucloud/databasedoc/school_contract.md @@ -0,0 +1,106 @@ +# school_contract 表文档 + +## 表概述 +**表名**: school_contract +**功能**: 合同信息管理表,存储教务系统中所有学员合同的基本信息、课程关联、价格体系、课时管理等核心数据 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 合同编号 +contract_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 合同名称 +contract_template text utf8mb4_general_ci NO NULL select,insert,update,references 合同模板 +contract_content longtext utf8mb4_general_ci YES NULL select,insert,update,references 合同内容(Word解析后的内容) +contract_status varchar(50) utf8mb4_general_ci NO NULL select,insert,update,references 合同状态 +contract_type varchar(50) utf8mb4_general_ci NO NULL select,insert,update,references 合同类型 +remarks text utf8mb4_general_ci YES NULL select,insert,update,references 合同备注 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +deleted_at int NULL NO 0 select,insert,update,references 逻辑删除时间 +placeholder text utf8mb4_general_ci YES NULL select,insert,update,references 占位符配置 +placeholder_config json NULL YES NULL select,insert,update,references 占位符配置 +original_filename varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 原始文件名 +file_size int NULL YES 0 select,insert,update,references 文件大小(字节) +file_hash varchar(64) utf8mb4_general_ci YES NULL select,insert,update,references 文件hash值,用于防重复 +placeholders json NULL YES NULL select,insert,update,references 从模板中解析出的占位符列表 +``` + +## 功能用途 + +### 主要功能 +1. **合同基础管理**: 存储合同编号、名称、类型、状态等基本信息 +2. **学员关联管理**: 通过member_id关联具体学员信息 +3. **课程关联管理**: 通过course_id关联具体课程信息 +4. **价格体系管理**: 管理合同总价、已付金额、优惠金额等财务信息 +5. **课时管理系统**: 管理总课时、已消耗课时、剩余课时等课时信息 +6. **合同周期管理**: 管理合同开始和结束时间 +7. **合同状态控制**: 管理合同的各种状态(待审核、生效、暂停、结束等) +8. **校区归属管理**: 通过campus_id关联所属校区 +9. **销售跟踪管理**: 记录销售人员和签约信息 + +### 业务场景 +1. **合同签署**: 学员报名时创建合同,记录课程和价格信息 +2. **课时消耗**: 学员上课时扣减合同中的剩余课时 +3. **财务结算**: 根据合同进行学费收取和退费处理 +4. **合同变更**: 修改合同内容、延期、转课等操作 +5. **课时预警**: 当剩余课时不足时进行提醒 +6. **合同续费**: 合同到期时进行续费操作 +7. **数据统计**: 统计合同收入、课时消耗等业务数据 +8. **合同审核**: 合同创建后的审核流程管理 + +## 关联关系 + +### 主要关联表 +1. **school_member**: 会员表(member_id字段关联) +2. **school_course**: 课程表(course_id字段关联) +3. **school_campus**: 校区表(campus_id字段关联) +4. **school_personnel**: 人员表(销售人员关联) +5. **school_order**: 订单表(合同支付关联) +6. **school_class_member**: 班级学员表(合同对应班级) +7. **school_schedule**: 排课表(课时消耗关联) +8. **school_refund**: 退费表(合同退费关联) +9. **school_contract_log**: 合同变更日志表 +10. **school_payment**: 付款记录表 + +### 关联说明 +1. **学员关联**: 通过member_id与会员表关联,确定合同所属学员 +2. **课程关联**: 通过course_id与课程表关联,确定合同对应的课程 +3. **校区关联**: 通过campus_id关联校区,实现多校区合同管理 +4. **财务关联**: 与订单、付款、退费等财务数据关联 +5. **教学关联**: 与班级、排课等教学管理功能关联 +6. **销售关联**: 记录销售人员的业绩和跟进情况 + +## 索引建议 +1. **主键索引**: id(已存在) +2. **外键索引**: + - member_id(学员关联查询) + - course_id(课程关联查询) + - campus_id(校区关联查询) +3. **唯一索引**: + - contract_no(合同编号唯一) +4. **普通索引**: + - contract_name(合同名称搜索) + - status(状态筛选) + - start_time(开始时间排序) + - end_time(结束时间排序) + - create_time(创建时间排序) +5. **复合索引**: + - (member_id, status)(学员+状态查询) + - (campus_id, status)(校区+状态查询) + - (course_id, status)(课程+状态查询) + - (status, end_time)(状态+到期时间查询) + +## 注意事项 +1. **财务精度**: 价格相关字段使用decimal类型,避免浮点数精度问题 +2. **课时逻辑**: used_class_hour不能超过total_class_hour +3. **时间逻辑**: start_time不能晚于end_time +4. **合同编号**: contract_no需要保证全局唯一性 +5. **状态流转**: 合同状态变更需要记录操作日志 +6. **软删除**: 使用deleted_at字段实现软删除,保护历史数据 +7. **课时扣减**: 课时消耗需要原子性操作,避免并发问题 +8. **合同变更**: 重要字段变更需要审核流程 +9. **到期提醒**: 需要定时任务检查合同到期情况 +10. **数据一致性**: 合同删除时需要处理相关的课时、付款等数据 +11. **权限控制**: 不同角色对合同的操作权限不同 +12. **审计追踪**: 重要操作需要记录操作人和操作时间 diff --git a/niucloud/databasedoc/school_contract_sign.md b/niucloud/databasedoc/school_contract_sign.md new file mode 100644 index 00000000..1dcb6822 --- /dev/null +++ b/niucloud/databasedoc/school_contract_sign.md @@ -0,0 +1,107 @@ +# school_contract_sign 表文档 + +## 表概述 +**表名**: school_contract_sign +**功能**: 合同签署管理表,用于管理合同的电子签署流程,支持内部人员和外部学员的合同签署,包括电子签名、状态跟踪、自动分发和数据填充等功能,为合同管理提供完整的数字化解决方案 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +contract_id int NULL NO NULL select,insert,update,references 合同 +personnel_id int NULL NO NULL select,insert,update,references 下发人员 +sign_file text utf8mb4_general_ci YES NULL select,insert,update,references 签署附件 +status int NULL NO 1 select,insert,update,references 1未签署 2已签署3 已生效 4 已失效 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +sign_time datetime NULL YES NULL select,insert,update,references 签署时间 +signature_image varchar(500) utf8mb4_general_ci YES NULL select,insert,update,references 签名图片路径 +source_type varchar(50) utf8mb4_general_ci YES manual select,insert,update,references 分发来源:manual手动分发,auto_course自动课程分发 +source_id int NULL YES NULL select,insert,update,references 来源ID(如课程ID、订单ID等) +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间 +deleted_at int NULL NO 0 select,insert,update,references 逻辑删除时间 +type tinyint(1) NULL YES NULL select,insert,update,references 签订类型1内部人员2外部人员 +fill_data text utf8mb4_general_ci YES NULL select,insert,update,references 填充数据JSON +error_msg varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 错误信息 +student_id int NULL YES NULL select,insert,update,references 学员 Id +``` + +## 功能用途 + +### 主要功能 +- **合同签署管理**: 管理合同的签署流程和状态跟踪 +- **电子签名**: 支持电子签名图片的存储和验证 +- **多角色签署**: 支持内部人员和外部人员(学员)的合同签署 +- **签署文件管理**: 存储签署后的合同附件和相关文档 +- **自动化分发**: 支持手动分发和自动课程分发两种模式 +- **数据填充**: 支持合同模板的动态数据填充 +- **状态追踪**: 完整的签署状态生命周期管理 + +### 业务场景 +- **学员入学合同**: 新学员报名时签署入学协议和课程合同 +- **员工劳动合同**: 内部人员入职时签署劳动合同和保密协议 +- **课程服务协议**: 学员购买课程时自动生成并分发服务协议 +- **合同续签**: 到期合同的续签和重新签署流程 +- **批量合同处理**: 批量生成和分发合同给多个签署人 +- **合同审核**: 签署完成后的合同审核和生效流程 +- **电子存档**: 已签署合同的电子化存档和管理 + +## 关联关系 + +### 主要关联表 +- **school_contract**: 通过contract_id关联合同基础信息 +- **school_personnel**: 通过personnel_id关联下发人员信息 +- **school_student**: 通过student_id关联学员信息 +- **school_course**: 通过source_id关联课程信息(当source_type为auto_course时) +- **school_sys_user**: 关联系统用户信息 + +### 关联说明 +- `contract_id` → `school_contract.id`: 多对一关系,一个合同可以有多个签署记录 +- `personnel_id` → `school_personnel.id`: 记录合同的分发人员 +- `student_id` → `school_student.id`: 外部人员签署时关联学员信息 +- `source_id`: 根据source_type关联不同的业务对象(课程、订单等) +- 支持软删除机制,通过deleted_at字段管理数据生命周期 + +## 索引建议 +```sql +-- 主键索引(已存在) +PRIMARY KEY (id) + +-- 合同查询索引 +INDEX idx_contract_id (contract_id) + +-- 人员查询索引 +INDEX idx_personnel_id (personnel_id) + +-- 学员查询索引 +INDEX idx_student_id (student_id) + +-- 状态查询索引 +INDEX idx_status (status) + +-- 签署类型索引 +INDEX idx_type (type) + +-- 来源查询索引 +INDEX idx_source (source_type, source_id) + +-- 复合索引:合同+状态 +INDEX idx_contract_status (contract_id, status) + +-- 软删除查询索引 +INDEX idx_deleted_at (deleted_at) + +-- 时间范围查询索引 +INDEX idx_created_at (created_at) +INDEX idx_sign_time (sign_time) +``` + +## 注意事项 +- **法律效力**: 电子签名需要符合相关法律法规要求 +- **身份验证**: 签署前必须验证签署人的身份信息 +- **签名安全**: 签名图片应加密存储,防止篡改 +- **状态一致性**: 签署状态变更需要保证数据一致性 +- **文件完整性**: 签署文件的完整性和不可篡改性验证 +- **时间戳**: 签署时间的准确性和不可篡改性 +- **错误处理**: 签署失败时的错误信息记录和处理机制 +- **数据备份**: 重要合同数据的定期备份和恢复机制 diff --git a/niucloud/databasedoc/school_course.md b/niucloud/databasedoc/school_course.md new file mode 100644 index 00000000..5d6fdfd1 --- /dev/null +++ b/niucloud/databasedoc/school_course.md @@ -0,0 +1,94 @@ +# school_course 表文档 + +## 表概述 +**表名**: school_course +**功能**: 课程信息管理表,存储教务系统中所有课程的基本信息、价格体系、课时配置、提醒设置等核心数据 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 课程编号 +course_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 课程名称 +course_type varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 课程类型 +duration int NULL NO NULL select,insert,update,references 课程时长 +session_count int NULL NO NULL select,insert,update,references 课时数量 +single_session_count int NULL NO 0 select,insert,update,references 单次消课数量 +gift_session_count int NULL NO 0 select,insert,update,references 赠送课时数量 +price decimal(10,2) NULL NO NULL select,insert,update,references 课程价格 +internal_reminder int NULL YES NULL select,insert,update,references 内部提醒课时 +customer_reminder int NULL YES NULL select,insert,update,references 客户提醒课时 +remarks text utf8mb4_general_ci YES NULL select,insert,update,references 课程备注 +created_at int NULL YES 0 select,insert,update,references 创建时间 +updated_at int NULL YES 0 select,insert,update,references 更新时间 +deleted_at int NULL YES 0 select,insert,update,references 逻辑删除时间 +contract_id int NULL YES NULL select,insert,update,references 合同 id +status tinyint NULL YES 1 select,insert,update,references 课程状态 1 有效 0 无效 +is_regular_course tinyint NULL YES 1 select,insert,update,references 是否为正式课 1 是 0 否 +``` + +## 功能用途 + +### 主要功能 +1. **课程基础管理**: 存储课程名称、类型、时长等基本信息 +2. **课时体系管理**: 管理总课时数、单次消课数、赠送课时等 +3. **价格体系管理**: 设置课程价格,支持灵活定价策略 +4. **提醒机制管理**: 内部提醒和客户提醒的课时阈值设置 +5. **课程状态管理**: 控制课程的有效性和可用性 +6. **正式课程标识**: 区分正式课程和体验课程 +7. **合同关联管理**: 与合同模板进行关联绑定 + +### 业务场景 +1. **课程创建**: 新课程录入,设置基本信息和价格体系 +2. **课程销售**: 销售人员根据课程信息进行推广销售 +3. **课时消耗**: 学员上课时按照单次消课数扣减课时 +4. **库存预警**: 根据提醒阈值进行课时不足预警 +5. **财务结算**: 基于课程价格进行收费和分成计算 +6. **合同生成**: 选择课程后自动关联对应的合同模板 +7. **数据分析**: 课程销售情况、受欢迎程度等数据统计 + +## 关联关系 + +### 主要关联表 +1. **school_contract**: 合同表(contract_id字段关联) +2. **school_order**: 订单表(课程购买记录) +3. **school_course_member**: 会员课程关联表 +4. **school_class_course**: 班级课程关联表 +5. **school_schedule**: 排课表(课程安排) +6. **school_course_category**: 课程分类表 +7. **school_teacher_course**: 教师课程关联表 +8. **school_campus_course**: 校区课程关联表 + +### 关联说明 +1. **合同关联**: 通过contract_id与合同模板关联,支持自动合同生成 +2. **销售关联**: 与订单表关联,记录课程销售情况 +3. **教学关联**: 与班级、排课表关联,实现课程教学安排 +4. **人员关联**: 与会员、教师表关联,管理课程参与者 +5. **校区关联**: 支持多校区课程管理和独立定价 +6. **分类关联**: 通过课程分类实现课程体系化管理 + +## 索引建议 +1. **主键索引**: id(已存在) +2. **外键索引**: + - contract_id(合同关联查询) +3. **普通索引**: + - course_type(课程类型筛选) + - status(状态筛选) + - is_regular_course(正式课程筛选) + - created_at(创建时间排序) + - price(价格范围查询) +4. **复合索引**: + - (status, course_type)(状态+类型查询) + - (is_regular_course, status)(正式课程+状态查询) +5. **全文索引**: + - course_name(课程名称搜索) + +## 注意事项 +1. **课时逻辑**: session_count必须大于0,single_session_count不能超过总课时 +2. **价格精度**: price字段使用decimal(10,2)确保财务精度 +3. **软删除**: 使用deleted_at字段实现软删除,保护历史数据 +4. **状态管理**: status字段变更需要同步更新相关业务数据 +5. **提醒阈值**: 提醒课时数应小于总课时数,避免逻辑错误 +6. **合同关联**: contract_id变更需要验证合同模板的有效性 +7. **赠送课时**: gift_session_count需要在业务逻辑中正确处理 +8. **正式课标识**: is_regular_course影响计费和统计逻辑 diff --git a/niucloud/databasedoc/school_course_schedule.md b/niucloud/databasedoc/school_course_schedule.md new file mode 100644 index 00000000..c9a3ccf6 --- /dev/null +++ b/niucloud/databasedoc/school_course_schedule.md @@ -0,0 +1,126 @@ +# school_course_schedule 表文档 + +## 表概述 +**表名**: school_course_schedule +**功能**: 课程安排管理表,负责管理教务系统中的课程排课信息,包括上课时间、场地安排、教练分配、学员管理等核心排课功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 课程安排编号 +campus_id int NULL NO NULL select,insert,update,references 校区ID +venue_id int NULL NO MUL NULL select,insert,update,references 场地ID +course_date date NULL NO MUL NULL select,insert,update,references 上课日期 +time_slot varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 上课时段 +start_time time NULL YES NULL select,insert,update,references +end_time time NULL YES NULL select,insert,update,references +course_id int NULL NO NULL select,insert,update,references 课程ID +coach_id int NULL NO MUL NULL select,insert,update,references 上课教练ID +participants json NULL YES NULL select,insert,update,references 参与人员列表,存储为JSON数组,包含学员ID和来源信息 +student_ids json NULL YES NULL select,insert,update,references 上课学生ID列表,存储为JSON数组 +available_capacity int NULL YES NULL select,insert,update,references 根据场地容量判断的可安排学员位置数量 +status enum('pending','upcoming','ongoing','completed') utf8mb4_general_ci YES pending select,insert,update,references 课程状态: pending-待开始, upcoming-即将开始, ongoing-进行中, completed-已结束 +auto_schedule tinyint(1) NULL YES NULL select,insert,update,references 是否自动排课1是0否 +created_by enum('manual','system') utf8mb4_general_ci NO NULL select,insert,update,references 课程安排创建方式: manual-人员安排, system-系统创建 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +deleted_at int NULL YES 0 select,insert,update,references 逻辑删除时间 +assistant_ids varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 助教ID列表(逗号分隔) +education_id int NULL YES NULL select,insert,update,references 教务ID +recurring_type enum('none','daily','weekly','monthly') utf8mb4_general_ci YES none select,insert,update,references 重复类型 +recurring_end_date date NULL YES NULL select,insert,update,references 重复结束日期 +is_trial_class tinyint(1) NULL YES 0 select,insert,update,references 是否体验课 +max_students int NULL YES NULL select,insert,update,references 本次课程最大学员数 +remarks varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 课程备注 +begin_img varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 开课图片 +class_id int NULL YES NULL select,insert,update,references 班级 id +``` + +## 功能用途 + +### 主要功能 +- **课程排期管理**: 管理具体的上课日期、时段和时间安排 +- **场地资源调度**: 分配和管理上课场地,控制场地使用冲突 +- **教练安排**: 分配主教练和助教,支持教练排课管理 +- **学员管理**: 管理参与课程的学员列表,控制课程容量 +- **容量控制**: 根据场地容量和课程设置控制学员数量上限 +- **课程状态跟踪**: 跟踪课程从待开始到已结束的全生命周期状态 +- **自动排课**: 支持系统自动排课和人工手动排课两种模式 +- **重复课程**: 支持日、周、月重复课程的批量生成 +- **体验课管理**: 区分正式课程和体验课程 +- **教务管理**: 支持教务人员的课程管理和监督 + +### 业务场景 +- **日常排课**: 教务人员根据课程计划安排具体的上课时间和场地 +- **教练调配**: 根据教练时间安排和专业能力分配合适的教练 +- **学员选课**: 学员根据课程安排选择合适的时间段上课 +- **场地管理**: 避免场地冲突,合理利用场地资源 +- **容量控制**: 确保课程人数不超过场地和教学质量要求 +- **课程调整**: 处理临时的课程时间、教练、场地变更 +- **体验课安排**: 为潜在学员安排体验课程 +- **批量排课**: 使用重复功能批量生成常规课程安排 +- **课程监控**: 实时监控课程状态和进度 + +## 关联关系 + +### 主要关联表 +- `school_campus`: 校区信息表 (campus_id) +- `school_venue`: 场地信息表 (venue_id) +- `school_course`: 课程信息表 (course_id) +- `school_personnel`: 人员信息表 (coach_id, assistant_ids, education_id) +- `school_class`: 班级信息表 (class_id) +- `school_member`: 学员信息表 (通过student_ids关联) +- `school_attendance`: 考勤记录表 (关联上课记录) +- `school_homework`: 作业管理表 (关联课程作业) +- `school_class_member`: 班级学员表 (关联班级学员) + +### 关联说明 +- **校区场地**: campus_id和venue_id确定上课的具体位置和场地 +- **课程关联**: course_id关联具体的课程信息,class_id关联班级 +- **人员关联**: coach_id关联主教练,assistant_ids关联助教,education_id关联教务 +- **学员关联**: student_ids(JSON)存储参与课程的学员ID列表 +- **参与人员**: participants(JSON)存储详细的参与人员信息 +- **教学关联**: 与考勤、作业等教学管理功能关联 +- **容量关联**: available_capacity与场地容量和课程设置关联 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: + - campus_id (校区查询) + - venue_id (场地查询,已存在MUL) + - course_id (课程查询) + - coach_id (教练查询,已存在MUL) + - class_id (班级查询) + - education_id (教务查询) +- **时间索引**: + - course_date (上课日期查询,已存在MUL) + - created_at (创建时间查询) +- **状态索引**: status (课程状态查询) +- **复合索引**: + - (campus_id, course_date) (校区日期查询) + - (venue_id, course_date, time_slot) (场地时间冲突检查) + - (coach_id, course_date) (教练排课查询) + - (course_id, course_date) (课程安排查询) + - (class_id, course_date) (班级课程查询) + - (course_date, status) (日期状态查询) +- **特殊索引**: + - recurring_type (重复课程查询) + - is_trial_class (体验课查询) + +## 注意事项 +- **时间逻辑**: end_time必须大于start_time,course_date不能是过去的日期 +- **场地冲突**: 同一场地在同一时间段不能安排多个课程 +- **教练冲突**: 同一教练在同一时间不能安排多个课程 +- **容量控制**: 实际学员数不能超过available_capacity和max_students +- **JSON字段**: student_ids和participants使用JSON格式,需要注意数据格式验证 +- **状态流转**: 课程状态有严格的时间顺序,不能随意跳跃 +- **重复课程**: recurring_type不为none时,必须设置recurring_end_date +- **软删除**: 使用deleted_at字段进行逻辑删除,删除时需要考虑关联数据 +- **自动排课**: auto_schedule为1时,系统可能自动调整课程安排 +- **体验课标识**: is_trial_class影响课程的计费和统计逻辑 +- **助教管理**: assistant_ids使用逗号分隔,需要验证人员ID的有效性 +- **图片管理**: begin_img需要验证图片格式和大小 +- **权限控制**: 不同角色对课程安排的操作权限需要严格控制 +- **数据一致性**: 修改课程安排时需要同步更新相关的考勤、作业等数据 +- **时区处理**: 时间字段需要考虑时区问题,确保时间显示正确 diff --git a/niucloud/databasedoc/school_customer_resource_changes.md b/niucloud/databasedoc/school_customer_resource_changes.md new file mode 100644 index 00000000..070c34e6 --- /dev/null +++ b/niucloud/databasedoc/school_customer_resource_changes.md @@ -0,0 +1,88 @@ +# school_customer_resource_changes 表文档 + +## 表概述 +**表名**: school_customer_resource_changes +**功能**: 客户资源变更记录表,用于记录和追踪客户资源的所有变更操作,包括字段级别的修改记录、操作人员信息、变更时间等,支持数据审计、回滚操作和合规管理 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 修改编号 +customer_resource_id int NULL NO NULL select,insert,update,references 客户资源的ID +operator_id int NULL NO NULL select,insert,update,references 操作人的ID +campus_id int NULL NO NULL select,insert,update,references 操作校区的ID +modified_fields text utf8mb4_general_ci NO NULL select,insert,update,references 修改的哪些字段 +old_values text utf8mb4_general_ci NO NULL select,insert,update,references 修改前的值 +new_values text utf8mb4_general_ci NO NULL select,insert,update,references 修改后的值 +modification_time timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 修改的时间 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建的时间 +deleted_at int NULL NO 0 select,insert,update,references 逻辑删除时间 +is_rolled_back tinyint(1) NULL YES 0 select,insert,update,references 数据是否回滚 +rollback_time timestamp NULL YES NULL select,insert,update,references 回滚的时间 +action_type varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 操作类型:新增、修改 +``` + +## 功能用途 + +### 主要功能 +- **变更记录追踪**: 详细记录客户资源的所有变更操作,实现完整的数据变更审计 +- **字段级别监控**: 精确记录被修改的字段名称,实现字段级别的变更追踪 +- **数据对比存储**: 完整保存修改前后的数据值,支持数据对比和分析 +- **操作人员记录**: 记录执行变更操作的人员信息,确保操作可追溯 +- **校区级别管理**: 按校区维度管理变更记录,支持多校区数据隔离 +- **回滚功能支持**: 支持数据回滚操作,可以恢复到变更前的状态 +- **操作类型分类**: 区分新增、修改等不同类型的操作,便于分类管理 +- **逻辑删除支持**: 支持逻辑删除功能,保留历史变更记录 + +### 业务场景 +- **客户信息变更**: 记录客户基本信息、联系方式、状态等关键数据的变更 +- **数据合规审计**: 满足数据保护法规要求,提供完整的数据变更审计轨迹 +- **操作行为监控**: 监控员工对客户数据的操作行为,识别异常操作 +- **数据质量管理**: 通过变更记录分析数据质量问题,优化数据管理流程 +- **客户服务支持**: 为客户服务提供历史变更信息,提升服务质量 +- **错误数据恢复**: 在数据错误时快速定位问题并恢复正确数据 +- **业务流程优化**: 分析变更模式,优化客户管理业务流程 +- **权限审计**: 配合权限系统,审计用户的数据操作权限使用情况 +- **数据分析支持**: 为客户行为分析和业务决策提供历史数据支持 + +## 关联关系 + +### 主要关联表 +- **school_customer_resources**: 客户资源表,记录被变更的客户资源信息 +- **school_personnel**: 人员表,关联执行变更操作的人员信息 +- **school_campus**: 校区表,关联变更操作发生的校区 +- **school_sys_user**: 系统用户表,关联操作用户的详细信息 +- **school_six_speed_modification_log**: 六速修改日志表,可能存在相似的变更记录 +- **school_member**: 会员表,客户资源可能关联到具体的会员信息 + +### 关联说明 +- `customer_resource_id` 关联 `school_customer_resources.id`,标识被变更的客户资源 +- `operator_id` 关联 `school_personnel.id` 或 `school_sys_user.id`,标识执行变更的操作人员 +- `campus_id` 关联 `school_campus.id`,标识变更操作发生的校区 +- 与权限管理系统关联,验证操作权限的合法性 +- 与工作流系统关联,支持变更审批和流程管理 +- 与通知系统关联,及时通知相关人员重要的数据变更 + +## 索引建议 +- **主键索引**: `PRIMARY KEY (id)` - 自动创建 +- **客户资源索引**: `INDEX idx_customer_resource_id (customer_resource_id)` - 支持按客户查询变更历史 +- **操作人索引**: `INDEX idx_operator_id (operator_id)` - 支持按操作人查询 +- **校区索引**: `INDEX idx_campus_id (campus_id)` - 支持按校区查询 +- **时间索引**: `INDEX idx_modification_time (modification_time)` - 支持按变更时间查询 +- **回滚状态索引**: `INDEX idx_is_rolled_back (is_rolled_back)` - 支持按回滚状态查询 +- **操作类型索引**: `INDEX idx_action_type (action_type)` - 支持按操作类型查询 +- **逻辑删除索引**: `INDEX idx_deleted_at (deleted_at)` - 支持逻辑删除查询 +- **复合索引**: `INDEX idx_customer_time (customer_resource_id, modification_time)` - 支持客户和时间的复合查询 + +## 注意事项 +- **数据完整性**: 确保变更前后数据的完整记录,避免数据丢失 +- **存储空间管理**: 大量变更记录可能占用大量存储空间,需要制定数据清理策略 +- **性能影响**: 高频变更操作可能影响系统性能,需要优化记录机制 +- **敏感信息保护**: 对敏感信息的变更需要特殊处理,考虑加密或脱敏 +- **回滚操作验证**: 执行回滚前需要验证数据一致性,避免产生冲突 +- **权限控制**: 严格控制变更记录的查看和操作权限 +- **并发处理**: 在高并发环境下确保变更记录的原子性和一致性 +- **数据保留策略**: 制定合理的历史数据保留策略,平衡审计需求和存储成本 +- **监控告警**: 建立异常变更的监控告警机制,及时发现问题 +- **备份恢复**: 定期备份变更记录,确保数据的安全性和可恢复性 diff --git a/niucloud/databasedoc/school_customer_resources.md b/niucloud/databasedoc/school_customer_resources.md new file mode 100644 index 00000000..c7fd3c57 --- /dev/null +++ b/niucloud/databasedoc/school_customer_resources.md @@ -0,0 +1,140 @@ +# school_customer_resources 表文档 + +## 表概述 +**表名**: school_customer_resources +**功能**: 客户资源管理表,负责管理教务系统中的潜在客户信息、销售线索跟踪、客户转化流程等客户关系管理功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 编号 +member_id int NULL YES 0 select,insert,update,references 会员表id(登录时使用member表) +create_year_month varchar(7) utf8mb4_general_ci NO NULL select,insert,update,references 入会时间 +create_date date NULL NO NULL select,insert,update,references 创建日期 +source_channel varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 来源渠道|0=线下 +source varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 来源 +consultant varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 顾问 +name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 姓名 +age varchar(5) utf8mb4_general_ci YES NULL select,insert,update,references 年龄 +gender enum('male','female','other') utf8mb4_general_ci NO NULL select,insert,update,references 性别: male-男性, female-女性, other-其他 +phone_number varchar(15) utf8mb4_general_ci NO UNI NULL select,insert,update,references 联系电话|唯一的 +demand text utf8mb4_general_ci YES NULL select,insert,update,references 需求 +purchasing_power varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 购买力 +cognitive_idea text utf8mb4_general_ci YES NULL select,insert,update,references 认知理念 +optional_class_time varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 可选上课时间 +distance varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 距离 +decision_maker varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 决策人 +initial_intent varchar(10) utf8mb4_general_ci YES NULL select,insert,update,references 客户初步意向度: high-高, medium-中, low-低 +campus int NULL YES NULL select,insert,update,references 所属校区 +trial_class_count int NULL YES 0 select,insert,update,references 体验课次数|默认0 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间 +deleted_at int NULL NO 0 select,insert,update,references 逻辑删除时间 +member_label varchar(255) utf8mb4_general_ci NO select,insert,update,references 会员标签 +rf_type varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 资源新增类型market市场人员新增sale销售人员新增teacher教练新增 +status varchar(15) utf8mb4_general_ci YES NULL select,insert,update,references 客户状态 +miniopenid varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 小程序 openid +wechatopenid varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 公众号 openid +referral_resource_id int NULL YES 0 select,insert,update,references 推荐人资源ID +password varchar(255) utf8mb4_general_ci YES select,insert,update,references 会员密码 +login_ip varchar(255) utf8mb4_general_ci YES select,insert,update,references 当前登录ip +login_count int NULL YES 0 select,insert,update,references 登录次数 +login_time int NULL YES 0 select,insert,update,references 当前登录时间 +blacklist tinyint NULL YES 1 select,insert,update,references 是否加入黑名单1 可追单 0 黑名单 +``` + +## 功能用途 + +### 主要功能 +- **客户信息管理**: 管理潜在客户的基本信息和联系方式 +- **来源渠道跟踪**: 记录客户的来源渠道和获客方式 +- **销售线索管理**: 跟踪客户的购买意向和决策过程 +- **顾问分配**: 为客户分配专属销售顾问进行跟进 +- **意向度评估**: 评估和记录客户的购买意向强度 +- **体验课管理**: 记录客户的体验课参与情况 +- **推荐关系**: 管理客户推荐关系和转介绍业务 +- **黑名单管理**: 控制不良客户的追单权限 +- **登录账户**: 支持客户登录查看相关信息 +- **微信集成**: 关联小程序和公众号用户身份 + +### 业务场景 +- **线索收集**: 从各种渠道收集潜在客户信息 +- **销售跟进**: 销售顾问跟进客户并记录沟通情况 +- **体验课安排**: 为潜在客户安排和记录体验课 +- **意向评估**: 评估客户购买意向并制定跟进策略 +- **转化分析**: 分析不同渠道的客户转化效果 +- **推荐奖励**: 处理客户推荐带来的新客户 +- **客户服务**: 为已注册客户提供信息查询服务 +- **营销活动**: 基于客户标签进行精准营销 +- **数据分析**: 分析客户来源、转化率等关键指标 + +## 关联关系 + +### 主要关联表 +- `school_member`: 会员信息表 (member_id) +- `school_campus`: 校区信息表 (campus) +- `school_personnel`: 人员信息表 (顾问关联) +- `school_course_schedule`: 课程安排表 (体验课关联) +- `school_order_table`: 订单信息表 (转化订单) +- `school_contract`: 合同信息表 (签约转化) +- `school_follow_record`: 跟进记录表 (客户跟进) +- `school_trial_class`: 体验课记录表 (体验课管理) + +### 关联说明 +- **会员关联**: member_id关联正式会员,支持客户转化为正式学员 +- **校区关联**: campus确定客户所属校区,便于就近服务 +- **顾问关联**: consultant字段关联销售顾问,支持客户分配和跟进 +- **推荐关联**: referral_resource_id建立客户推荐关系链 +- **体验课关联**: trial_class_count记录体验课参与情况 +- **转化关联**: 通过订单和合同表跟踪客户转化结果 +- **微信关联**: 通过openid关联微信生态用户身份 + +## 索引建议 +- **主键索引**: id (已存在) +- **唯一索引**: phone_number (已存在,客户唯一标识) +- **外键索引**: + - member_id (会员关联查询) + - campus (校区客户查询) + - referral_resource_id (推荐关系查询) +- **业务索引**: + - status (客户状态查询) + - initial_intent (意向度查询) + - source_channel (来源渠道分析) + - consultant (顾问客户查询) + - rf_type (资源类型查询) + - blacklist (黑名单过滤) +- **时间索引**: + - create_date (创建日期查询) + - create_year_month (月度统计) + - created_at (创建时间查询) + - login_time (登录时间查询) +- **软删除索引**: deleted_at (有效客户查询) +- **复合索引**: + - (campus, status, deleted_at) (校区有效客户查询) + - (consultant, status) (顾问客户状态查询) + - (source_channel, create_date) (渠道效果分析) + - (initial_intent, status) (意向客户查询) +- **微信索引**: + - miniopenid (小程序用户查询) + - wechatopenid (公众号用户查询) + +## 注意事项 +- **手机号唯一性**: phone_number字段具有唯一约束,确保客户不重复 +- **性别枚举**: gender字段使用枚举类型,只能是male/female/other +- **意向度标准**: initial_intent使用high/medium/low标准化意向度评估 +- **软删除机制**: deleted_at字段控制逻辑删除,保证数据完整性 +- **密码安全**: password字段需要加密存储,不能明文保存 +- **登录控制**: 通过login_count和login_time跟踪客户登录行为 +- **黑名单逻辑**: blacklist字段控制追单权限(1=可追单,0=黑名单) +- **推荐关系**: referral_resource_id建立推荐链,需要防止循环推荐 +- **体验课计数**: trial_class_count需要与实际体验课记录保持一致 +- **校区归属**: campus字段确定客户归属,影响服务分配 +- **来源跟踪**: source_channel和source字段用于渠道效果分析 +- **顾问分配**: consultant字段需要与人员表保持一致性 +- **微信绑定**: openid字段用于微信生态集成,需要保证唯一性 +- **数据完整性**: 客户转化为会员时需要同步更新member_id +- **时间一致性**: create_date和created_at需要保持逻辑一致 +- **标签管理**: member_label支持多标签,建议使用JSON格式 +- **状态流转**: status字段变更需要记录变更日志 +- **权限控制**: 不同角色对客户信息的访问权限需要严格控制 diff --git a/niucloud/databasedoc/school_departments.md b/niucloud/databasedoc/school_departments.md new file mode 100644 index 00000000..49fdb927 --- /dev/null +++ b/niucloud/databasedoc/school_departments.md @@ -0,0 +1,91 @@ +# school_departments 表文档 + +## 表概述 +**表名**: school_departments +**功能**: 部门管理表,负责管理教务系统中的组织架构和部门层级关系,支持多级部门结构和部门路径管理 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 部门编号 +department_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 部门名称 +parent_department_id int NULL YES NULL select,insert,update,references 上级部门ID +path varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 部门路径 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +deleted_at int NULL NO 0 select,insert,update,references +``` + +## 功能用途 + +### 主要功能 +1. **部门层级管理**: 管理多级部门组织架构,支持无限级部门嵌套 +2. **部门信息维护**: 维护部门名称、上级部门等基本信息 +3. **部门路径管理**: 通过path字段记录部门的完整层级路径 +4. **组织架构展示**: 为系统提供完整的组织架构数据 +5. **权限范围控制**: 为权限管理提供部门范围控制 +6. **人员归属管理**: 为人员分配提供部门归属依据 +7. **逻辑删除支持**: 支持部门的逻辑删除和恢复 +8. **时间追踪**: 记录部门的创建和修改时间 + +### 业务场景 +1. **组织架构搭建**: 初始化和维护学校的组织架构 +2. **部门人员管理**: 为人员分配和管理提供部门依据 +3. **权限分级管理**: 基于部门层级进行权限分配和控制 +4. **数据权限控制**: 控制用户只能查看本部门及下级部门数据 +5. **报表统计分析**: 按部门维度进行各类业务数据统计 +6. **审批流程设计**: 为审批流程提供部门层级依据 +7. **成本核算管理**: 按部门进行成本分摊和核算 +8. **绩效考核管理**: 按部门进行绩效考核和评估 +9. **组织架构调整**: 支持部门的新增、修改、删除等调整操作 + +## 关联关系 + +### 主要关联表 +1. **school_personnel**: 人员表(部门人员关联) +2. **school_campus**: 校区表(校区部门关联) +3. **school_sys_role**: 角色表(部门角色权限关联) +4. **school_approval_config**: 审批配置表(部门审批流程关联) +5. **school_performance_records**: 绩效记录表(部门绩效关联) +6. **school_salary**: 薪资表(部门薪资管理关联) +7. **school_course**: 课程表(部门课程管理关联) + +### 关联说明 +1. **自关联**: parent_department_id与本表id形成父子部门关系 +2. **人员关联**: 人员表通过部门ID关联,确定员工所属部门 +3. **权限关联**: 与角色权限系统关联,实现基于部门的权限控制 +4. **业务关联**: 各业务表通过部门关联实现数据权限控制 +5. **路径关联**: path字段存储完整部门路径,便于层级查询 +6. **审批关联**: 审批流程中的部门审批人配置 +7. **统计关联**: 各类统计报表按部门维度进行数据汇总 + +## 索引建议 +1. **主键索引**: id(已存在) +2. **外键索引**: parent_department_id(父部门查询) +3. **普通索引**: + - department_name(部门名称查询) + - path(路径查询) + - deleted_at(逻辑删除查询) +4. **复合索引**: + - (parent_department_id, deleted_at)(父部门有效子部门查询) + - (path, deleted_at)(路径有效部门查询) +5. **时间索引**: + - created_at(创建时间查询) + - updated_at(更新时间查询) + +## 注意事项 +1. **层级完整性**: 删除部门时需要检查是否有子部门 +2. **路径一致性**: path字段需要与实际层级关系保持一致 +3. **循环引用**: 防止部门层级出现循环引用 +4. **逻辑删除**: 使用deleted_at字段进行逻辑删除,0表示未删除 +5. **人员迁移**: 删除部门前需要处理部门内人员的归属 +6. **权限更新**: 部门变更时需要同步更新相关权限配置 +7. **路径更新**: 修改部门层级时需要更新所有子部门的path +8. **名称唯一性**: 同级部门名称应保持唯一 +9. **数据一致性**: 部门变更时需要同步更新相关业务数据 +10. **性能优化**: 深层级查询时需要考虑性能优化 +11. **备份策略**: 组织架构数据需要定期备份 +12. **审计要求**: 部门变更操作需要记录详细日志 +13. **并发控制**: 多用户同时修改部门时需要并发控制 +14. **历史追踪**: 重要的部门变更需要保留历史记录 diff --git a/niucloud/databasedoc/school_diy_form.md b/niucloud/databasedoc/school_diy_form.md new file mode 100644 index 00000000..e260b6c3 --- /dev/null +++ b/niucloud/databasedoc/school_diy_form.md @@ -0,0 +1,104 @@ +# school_diy_form 表文档 + +## 表概述 +**表名**: school_diy_form +**功能**: 自定义表单管理表,负责管理教务系统中的动态表单创建、表单配置、数据收集、表单模板等自定义表单功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +form_id int NULL NO PRI NULL auto_increment select,insert,update,references 表单id +page_title varchar(255) utf8mb4_general_ci NO select,insert,update,references 表单名称(用于后台展示) +title varchar(255) utf8mb4_general_ci NO select,insert,update,references 表单名称(用于前台展示) +type varchar(255) utf8mb4_general_ci NO select,insert,update,references 表单类型 +status tinyint NULL NO 0 select,insert,update,references 状态(0,关闭,1:开启) +template varchar(255) utf8mb4_general_ci NO select,insert,update,references 模板名称 +value longtext utf8mb4_general_ci YES NULL select,insert,update,references 表单数据,json格式,包含展示组件 +addon varchar(255) utf8mb4_general_ci NO select,insert,update,references 所属插件标识 +share varchar(1000) utf8mb4_general_ci NO select,insert,update,references 分享内容 +write_num int NULL NO 0 select,insert,update,references 表单填写总数量 +remark varchar(255) utf8mb4_general_ci NO select,insert,update,references 备注说明 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **动态表单创建**: 支持用户自定义创建各种类型的表单 +- **表单模板管理**: 管理和维护表单模板,支持模板复用 +- **表单配置**: 配置表单的字段、验证规则、显示样式等 +- **数据收集**: 收集和统计表单填写数据 +- **表单状态控制**: 管理表单的启用、禁用状态 +- **表单分享**: 支持表单的分享和传播功能 +- **填写统计**: 统计表单的填写次数和数据 +- **插件集成**: 支持与各种插件的集成使用 +- **JSON数据存储**: 灵活存储表单的结构和配置数据 + +### 业务场景 +- **信息收集**: 收集学生、教师、家长的各种信息 +- **报名登记**: 课程报名、活动报名等登记表单 +- **问卷调查**: 满意度调查、需求调研等问卷 +- **申请审批**: 各种申请表单的在线填写 +- **数据录入**: 批量数据录入和信息采集 +- **反馈收集**: 意见反馈、建议收集等 +- **考试报名**: 考试报名表单和信息收集 +- **活动报名**: 学校活动、比赛报名表单 +- **资料提交**: 各种资料和文档的在线提交 + +## 关联关系 + +### 主要关联表 +- `school_student`: 学生信息表 (学生填写表单) +- `school_personnel`: 人员信息表 (教师创建和管理表单) +- `school_course`: 课程信息表 (课程相关表单) +- `school_campus`: 校区信息表 (校区相关表单) +- `school_addon`: 插件表 (表单所属插件) +- `school_sys_attachment`: 附件表 (表单附件关联) +- `sys_log`: 系统日志表 (表单操作日志) + +### 关联说明 +- **用户关联**: 学生和教师可以填写和创建表单 +- **业务关联**: 表单可能关联具体的课程、校区等业务对象 +- **插件关联**: addon字段关联表单所属的插件模块 +- **附件关联**: 表单可能包含文件上传等附件功能 +- **模板关联**: template字段关联表单使用的模板 +- **数据关联**: value字段存储表单的结构和配置数据 +- **统计关联**: write_num字段统计表单的填写次数 + +## 索引建议 +- **主键索引**: form_id (已存在) +- **业务索引**: + - type (表单类型查询) + - status (状态查询) + - template (模板查询) + - addon (插件查询) +- **复合索引**: + - (status, type) (有效表单类型查询) + - (addon, status) (插件有效表单查询) + - (template, status) (模板有效表单查询) +- **时间索引**: + - create_time (创建时间查询) + - update_time (更新时间查询) +- **全文索引**: + - title (表单标题搜索) + - page_title (后台标题搜索) + +## 注意事项 +- **JSON格式验证**: value字段存储JSON数据,需要验证格式正确性 +- **表单状态一致性**: status字段变更需要同步更新相关业务逻辑 +- **模板有效性**: template字段需要确保模板文件存在且有效 +- **插件依赖**: addon字段确定表单归属,删除插件时需要处理相关表单 +- **数据完整性**: 表单配置数据需要保证完整性和一致性 +- **填写统计**: write_num字段需要实时更新,确保统计准确性 +- **权限控制**: 表单的创建、编辑、删除需要严格的权限控制 +- **数据备份**: 重要表单数据需要定期备份 +- **性能优化**: 大量表单数据查询时需要考虑性能优化 +- **表单验证**: 表单提交时需要验证数据的有效性 +- **分享安全**: 表单分享功能需要考虑安全性和隐私保护 +- **模板管理**: 表单模板的版本管理和兼容性 +- **数据导出**: 支持表单数据的导出和分析功能 +- **移动端适配**: 表单需要支持移动端的显示和填写 +- **缓存策略**: 频繁访问的表单可以使用缓存提高性能 +- **监控告警**: 表单异常情况需要监控和告警机制 diff --git a/niucloud/databasedoc/school_diy_form_fields.md b/niucloud/databasedoc/school_diy_form_fields.md new file mode 100644 index 00000000..a1c675af --- /dev/null +++ b/niucloud/databasedoc/school_diy_form_fields.md @@ -0,0 +1,99 @@ +# school_diy_form_fields 表文档 + +## 表概述 +**表名**: school_diy_form_fields +**功能**: 自定义表单字段管理表,负责管理教务系统中自定义表单的字段配置,包括字段类型、验证规则、显示属性、隐私保护等字段级别的详细配置 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +field_id int NULL NO PRI NULL auto_increment select,insert,update,references 字段id +form_id int NULL NO 0 select,insert,update,references 所属万能表单id +field_key varchar(255) utf8mb4_general_ci NO select,insert,update,references 字段唯一标识 +field_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 字段类型 +field_name varchar(255) utf8mb4_general_ci NO select,insert,update,references 字段名称 +field_remark varchar(255) utf8mb4_general_ci NO select,insert,update,references 字段说明 +field_default text utf8mb4_general_ci YES NULL select,insert,update,references 字段默认值 +write_num int NULL NO 0 select,insert,update,references 字段填写总数量 +field_required tinyint NULL NO 0 select,insert,update,references 字段是否必填 0:否 1:是 +field_hidden tinyint NULL NO 0 select,insert,update,references 字段是否隐藏 0:否 1:是 +field_unique tinyint NULL NO 0 select,insert,update,references 字段内容防重复 0:否 1:是 +privacy_protection tinyint NULL NO 0 select,insert,update,references 隐私保护 0:关闭 1:开启 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **字段配置管理**: 管理表单中每个字段的详细配置信息 +- **字段类型控制**: 支持多种字段类型(文本、数字、选择、日期等) +- **验证规则设置**: 配置字段的必填、唯一性、格式验证等规则 +- **显示控制**: 管理字段的显示/隐藏状态 +- **默认值设置**: 为字段设置默认值,提升用户体验 +- **隐私保护**: 对敏感字段进行隐私保护设置 +- **填写统计**: 统计每个字段的填写次数和使用情况 +- **字段标识**: 通过field_key提供字段的唯一标识 +- **字段说明**: 为字段提供详细的说明和帮助信息 + +### 业务场景 +- **表单设计**: 在创建自定义表单时配置各种字段 +- **数据收集**: 根据字段配置收集和验证用户输入数据 +- **表单验证**: 基于字段规则进行数据验证和格式检查 +- **隐私合规**: 对涉及隐私的字段进行特殊保护处理 +- **用户体验**: 通过默认值和说明提升表单填写体验 +- **数据分析**: 分析各字段的填写情况和使用频率 +- **表单优化**: 根据字段使用统计优化表单设计 +- **权限控制**: 根据字段属性控制不同用户的访问权限 + +## 关联关系 + +### 主要关联表 +- `school_diy_form`: 自定义表单表 (form_id) +- `school_diy_form_data`: 表单数据表 (通过field_key关联) +- `school_student`: 学生信息表 (表单填写者) +- `school_personnel`: 人员信息表 (表单创建者) +- `sys_log`: 系统日志表 (字段操作日志) + +### 关联说明 +- **表单关联**: form_id关联到school_diy_form表,确定字段所属表单 +- **数据关联**: field_key作为字段标识,关联到具体的表单数据 +- **用户关联**: 字段配置影响用户填写表单的体验和验证 +- **日志关联**: 字段的创建、修改、删除操作需要记录日志 +- **统计关联**: write_num字段统计该字段的填写次数 + +## 索引建议 +- **主键索引**: field_id (已存在) +- **外键索引**: form_id (表单字段查询) +- **唯一索引**: (form_id, field_key) (表单内字段唯一性) +- **业务索引**: + - field_type (字段类型查询) + - field_required (必填字段查询) + - field_hidden (显示字段查询) + - field_unique (唯一字段查询) +- **复合索引**: + - (form_id, field_hidden) (表单可见字段查询) + - (form_id, field_required) (表单必填字段查询) + - (field_type, field_required) (特定类型必填字段) +- **统计索引**: write_num (字段使用统计) +- **时间索引**: + - create_time (创建时间查询) + - update_time (更新时间查询) + +## 注意事项 +- **字段标识唯一性**: field_key在同一表单内必须唯一,作为字段的唯一标识 +- **表单关联完整性**: form_id必须对应有效的表单记录 +- **字段类型一致性**: field_type需要与实际数据类型保持一致 +- **验证规则合理性**: 必填、唯一性等规则需要合理设置,避免冲突 +- **默认值格式**: field_default需要符合字段类型的格式要求 +- **隐私保护合规**: privacy_protection字段涉及数据隐私,需要严格管理 +- **字段依赖关系**: 修改字段配置时需要考虑对现有数据的影响 +- **统计数据准确性**: write_num需要实时更新,确保统计准确 +- **字段删除影响**: 删除字段前需要检查是否有关联的表单数据 +- **权限控制**: 字段配置的修改需要适当的权限验证 +- **数据迁移**: 修改字段类型时需要考虑数据迁移和兼容性 +- **性能优化**: 大量字段的表单需要考虑查询性能优化 +- **缓存策略**: 频繁访问的字段配置可以使用缓存 +- **版本管理**: 字段配置的变更需要版本控制和回滚机制 +- **监控告警**: 字段配置异常需要监控和告警 diff --git a/niucloud/databasedoc/school_diy_form_records.md b/niucloud/databasedoc/school_diy_form_records.md new file mode 100644 index 00000000..64bb122e --- /dev/null +++ b/niucloud/databasedoc/school_diy_form_records.md @@ -0,0 +1,95 @@ +# school_diy_form_records 表文档 + +## 表概述 +**表名**: school_diy_form_records +**功能**: 自定义表单填写记录表,负责管理教务系统中用户填写自定义表单的记录数据,包括表单数据存储、填写人信息、业务关联等核心记录管理功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +record_id int NULL NO PRI NULL auto_increment select,insert,update,references 表单填写记录id +form_id int NULL NO 0 select,insert,update,references 所属万能表单id +value longtext utf8mb4_general_ci YES NULL select,insert,update,references 填写的表单数据 +member_id int NULL NO 0 select,insert,update,references 填写人会员id +relate_id int NULL NO 0 select,insert,update,references 关联业务id +create_time int NULL NO 0 select,insert,update,references 创建时间 +student_id int NULL YES NULL select,insert,update,references 学员 id +``` + +## 功能用途 + +### 主要功能 +- **表单记录管理**: 存储用户填写的表单完整记录信息 +- **数据持久化**: 将表单填写的数据以JSON格式持久化存储 +- **用户关联**: 记录表单填写者的会员和学员身份信息 +- **业务关联**: 支持表单记录与其他业务对象的关联 +- **数据追溯**: 提供表单填写的时间追溯和历史记录 +- **多身份支持**: 同时支持会员和学员两种身份的表单填写 +- **记录查询**: 支持按表单、用户、时间等维度查询记录 +- **数据统计**: 为表单使用情况统计提供基础数据 +- **数据导出**: 支持表单填写数据的导出和分析 + +### 业务场景 +- **信息收集**: 收集学生、教师、家长填写的各种信息表单 +- **报名记录**: 记录课程报名、活动报名等表单填写数据 +- **调查问卷**: 存储满意度调查、需求调研等问卷填写结果 +- **申请审批**: 记录各种申请表单的填写和提交数据 +- **数据录入**: 批量数据录入和信息采集的记录存储 +- **反馈收集**: 存储意见反馈、建议收集等表单数据 +- **考试报名**: 记录考试报名表单的填写信息 +- **活动参与**: 存储学校活动、比赛报名的参与记录 +- **资料提交**: 记录各种资料和文档的在线提交数据 + +## 关联关系 + +### 主要关联表 +- `school_diy_form`: 自定义表单表 (form_id) +- `school_member`: 会员信息表 (member_id) +- `school_student`: 学生信息表 (student_id) +- `school_diy_form_records_fields`: 表单记录字段表 (record_id) +- `school_personnel`: 人员信息表 (业务关联) +- `school_course`: 课程信息表 (relate_id业务关联) +- `school_class`: 班级信息表 (relate_id业务关联) +- `sys_log`: 系统日志表 (记录操作日志) + +### 关联说明 +- **表单关联**: form_id关联到school_diy_form表,确定记录所属表单 +- **用户关联**: member_id和student_id分别关联会员和学员信息 +- **字段关联**: 通过school_diy_form_records_fields表存储详细字段数据 +- **业务关联**: relate_id可以关联到不同的业务对象(课程、班级等) +- **数据关联**: value字段存储完整的表单填写数据(JSON格式) +- **时间关联**: create_time记录表单填写的具体时间 + +## 索引建议 +- **主键索引**: record_id (已存在) +- **外键索引**: + - form_id (表单记录查询) + - member_id (会员记录查询) + - student_id (学员记录查询) +- **业务索引**: relate_id (业务关联查询) +- **复合索引**: + - (form_id, member_id) (表单会员记录查询) + - (form_id, student_id) (表单学员记录查询) + - (form_id, create_time) (表单时间记录查询) + - (member_id, create_time) (会员时间记录查询) +- **时间索引**: create_time (创建时间查询) +- **全文索引**: value (表单内容搜索,如果需要) + +## 注意事项 +- **JSON格式验证**: value字段存储JSON数据,需要验证格式正确性 +- **表单关联完整性**: form_id必须对应有效的表单记录 +- **用户身份一致性**: member_id和student_id需要保持逻辑一致性 +- **数据完整性**: 表单记录的数据需要与表单字段配置保持一致 +- **业务关联有效性**: relate_id需要确保关联的业务对象存在 +- **数据隐私保护**: 涉及隐私的表单数据需要特殊保护 +- **存储空间管理**: value字段可能存储大量数据,需要考虑存储优化 +- **查询性能**: 大量记录查询时需要合理使用索引 +- **数据备份**: 重要表单记录需要定期备份 +- **权限控制**: 表单记录的查看和修改需要严格权限控制 +- **数据导出**: 支持表单数据的批量导出和分析 +- **历史记录**: 表单记录一般不允许删除,保证数据完整性 +- **关联清理**: 删除表单时需要处理相关记录数据 +- **性能监控**: 监控表单记录的查询和存储性能 +- **数据统计**: 为业务分析提供准确的统计数据 +- **缓存策略**: 频繁访问的记录可以使用缓存提高性能 diff --git a/niucloud/databasedoc/school_diy_form_records_fields.md b/niucloud/databasedoc/school_diy_form_records_fields.md new file mode 100644 index 00000000..2d7b51ad --- /dev/null +++ b/niucloud/databasedoc/school_diy_form_records_fields.md @@ -0,0 +1,114 @@ +# school_diy_form_records_fields 表文档 + +## 表概述 +**表名**: school_diy_form_records_fields +**功能**: 自定义表单记录字段详情表,负责管理教务系统中表单填写记录的字段级详细数据,包括字段值存储、字段属性、修改追踪等字段级数据管理功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +form_id int NULL NO 0 select,insert,update,references 所属万能表单id +form_field_id int NULL NO 0 select,insert,update,references 关联表单字段id +record_id int NULL NO 0 select,insert,update,references 关联表单填写记录id +member_id int NULL NO 0 select,insert,update,references 填写会员id +field_key varchar(255) utf8mb4_general_ci NO select,insert,update,references 字段唯一标识 +field_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 字段类型 +field_name varchar(255) utf8mb4_general_ci NO select,insert,update,references 字段名称 +field_value longtext utf8mb4_general_ci NO NULL select,insert,update,references 字段值,根据类型展示对应效果 +field_required tinyint NULL NO 0 select,insert,update,references 字段是否必填 0:否 1:是 +field_hidden tinyint NULL NO 0 select,insert,update,references 字段是否隐藏 0:否 1:是 +field_unique tinyint NULL NO 0 select,insert,update,references 字段内容防重复 0:否 1:是 +privacy_protection tinyint NULL NO 0 select,insert,update,references 隐私保护 0:关闭 1:开启 +update_num int NULL NO 0 select,insert,update,references 字段修改次数 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +- **字段级数据存储**: 存储表单记录中每个字段的具体值和属性 +- **字段值管理**: 管理不同类型字段的值存储和格式化 +- **字段属性记录**: 记录字段的必填、隐藏、唯一等属性状态 +- **修改追踪**: 跟踪字段值的修改次数和变更历史 +- **隐私保护**: 对敏感字段进行隐私保护标记和处理 +- **字段关联**: 关联表单配置中的字段定义和实际填写值 +- **数据验证**: 基于字段类型和属性进行数据验证 +- **查询优化**: 支持按字段维度的高效查询和统计 +- **数据分析**: 为字段级数据分析提供基础数据支持 + +### 业务场景 +- **表单数据查询**: 按字段维度查询和筛选表单填写数据 +- **字段统计分析**: 分析特定字段的填写情况和数据分布 +- **数据验证**: 验证字段值是否符合配置的规则和格式 +- **隐私数据处理**: 对涉及隐私的字段进行特殊处理和保护 +- **数据导出**: 按字段维度导出和分析表单数据 +- **字段使用统计**: 统计各字段的使用频率和修改情况 +- **数据清洗**: 对字段数据进行清洗和标准化处理 +- **报表生成**: 基于字段数据生成各种统计报表 +- **数据迁移**: 在表单结构变更时进行数据迁移 + +## 关联关系 + +### 主要关联表 +- `school_diy_form`: 自定义表单表 (form_id) +- `school_diy_form_fields`: 表单字段配置表 (form_field_id) +- `school_diy_form_records`: 表单记录表 (record_id) +- `school_member`: 会员信息表 (member_id) +- `school_student`: 学生信息表 (通过member关联) +- `sys_log`: 系统日志表 (字段操作日志) + +### 关联说明 +- **表单关联**: form_id关联到school_diy_form表,确定字段所属表单 +- **字段配置关联**: form_field_id关联到school_diy_form_fields表,获取字段配置信息 +- **记录关联**: record_id关联到school_diy_form_records表,确定字段所属记录 +- **用户关联**: member_id关联到填写表单的会员信息 +- **字段标识**: field_key作为字段的唯一标识,用于数据关联 +- **值存储**: field_value存储字段的实际填写值 +- **属性同步**: 字段属性与配置表保持同步 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: + - form_id (表单字段查询) + - form_field_id (字段配置查询) + - record_id (记录字段查询) + - member_id (会员字段查询) +- **唯一索引**: (record_id, field_key) (记录内字段唯一性) +- **业务索引**: + - field_key (字段标识查询) + - field_type (字段类型查询) + - field_required (必填字段查询) + - field_hidden (显示字段查询) +- **复合索引**: + - (form_id, field_key) (表单字段查询) + - (record_id, field_key) (记录字段查询) + - (member_id, field_key) (用户字段查询) + - (form_id, field_type) (表单类型字段查询) +- **统计索引**: update_num (修改统计查询) +- **时间索引**: + - create_time (创建时间查询) + - update_time (更新时间查询) +- **全文索引**: field_value (字段值搜索,根据需要) + +## 注意事项 +- **字段关联完整性**: form_field_id必须对应有效的字段配置 +- **记录关联一致性**: record_id必须对应有效的表单记录 +- **字段标识唯一性**: field_key在同一记录内必须唯一 +- **字段值格式**: field_value需要符合field_type的格式要求 +- **属性同步**: 字段属性需要与配置表保持同步 +- **隐私保护合规**: privacy_protection字段需要严格管理 +- **修改追踪**: update_num需要准确记录字段修改次数 +- **数据类型一致性**: 字段值类型需要与字段配置保持一致 +- **必填验证**: field_required为1时,field_value不能为空 +- **唯一性检查**: field_unique为1时,需要检查值的唯一性 +- **隐藏字段处理**: field_hidden为1的字段需要特殊处理 +- **存储优化**: field_value可能存储大量数据,需要优化存储 +- **查询性能**: 大量字段数据查询时需要合理使用索引 +- **数据备份**: 重要字段数据需要定期备份 +- **权限控制**: 字段数据的访问需要严格权限控制 +- **数据清理**: 删除记录时需要同步清理字段数据 +- **性能监控**: 监控字段数据的查询和存储性能 +- **缓存策略**: 频繁访问的字段数据可以使用缓存 diff --git a/niucloud/databasedoc/school_diy_form_submit_config.md b/niucloud/databasedoc/school_diy_form_submit_config.md new file mode 100644 index 00000000..fd37bd22 --- /dev/null +++ b/niucloud/databasedoc/school_diy_form_submit_config.md @@ -0,0 +1,111 @@ +# school_diy_form_submit_config 表文档 + +## 表概述 +**表名**: school_diy_form_submit_config +**功能**: 自定义表单提交配置表,负责管理教务系统中表单的提交规则和配置,包括提交限制、验证规则、通知设置等表单提交行为的控制和管理 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 主键id +form_id int NULL NO 0 select,insert,update,references 所属万能表单id +submit_after_action varchar(255) utf8mb4_general_ci NO select,insert,update,references 填表人提交后操作,text:文字信息,voucher:核销凭证 +tips_type varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 提示内容类型,default:默认提示,diy:自定义提示 +tips_text varchar(255) utf8mb4_general_ci NO select,insert,update,references 自定义提示内容 +time_limit_type varchar(255) utf8mb4_general_ci NO 0 select,insert,update,references 核销凭证有效期限制类型,no_limit:不限制,specify_time:指定固定开始结束时间,submission_time:按提交时间设置有效期 +time_limit_rule text utf8mb4_general_ci YES NULL select,insert,update,references 核销凭证时间限制规则,json格式 +voucher_content_rule text utf8mb4_general_ci YES NULL select,insert,update,references 核销凭证内容,json格式 +success_after_action text utf8mb4_general_ci YES NULL select,insert,update,references 填写成功后续操作 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **提交规则配置**: 配置表单的提交次数限制、时间限制等规则 +- **验证规则管理**: 设置表单提交时的数据验证规则和要求 +- **通知配置**: 配置表单提交后的通知方式和接收人 +- **权限控制**: 设置表单提交的权限要求和访问控制 +- **状态管理**: 管理表单的启用/禁用状态和提交开关 +- **限制设置**: 设置单用户提交次数、总提交次数等限制 +- **时间控制**: 配置表单的开放时间和截止时间 +- **审核配置**: 设置表单提交后的审核流程和规则 +- **数据处理**: 配置提交数据的处理方式和存储规则 + +### 业务场景 +- **报名表单**: 配置课程报名表单的提交限制和验证规则 +- **调查问卷**: 设置问卷调查的提交次数和时间限制 +- **申请表单**: 配置各类申请表单的审核流程和通知 +- **反馈表单**: 设置用户反馈表单的提交规则和处理方式 +- **考试报名**: 配置考试报名表单的时间限制和资格验证 +- **活动报名**: 设置活动报名表单的人数限制和条件 +- **信息收集**: 配置信息收集表单的数据验证和处理 +- **预约表单**: 设置预约表单的时间限制和冲突检查 +- **评价表单**: 配置课程评价表单的提交规则和统计 + +## 关联关系 + +### 主要关联表 +- `school_diy_form`: 自定义表单表 (form_id) +- `school_diy_form_records`: 表单记录表 (提交记录) +- `school_member`: 会员信息表 (提交权限) +- `school_student`: 学生信息表 (学员权限) +- `school_personnel`: 人员信息表 (教职工权限) +- `school_course`: 课程信息表 (课程相关表单) +- `school_class`: 班级信息表 (班级相关表单) +- `sys_log`: 系统日志表 (配置变更日志) + +### 关联说明 +- **表单关联**: form_id关联到school_diy_form表,确定配置所属表单 +- **提交记录**: 与school_diy_form_records表关联,控制提交行为 +- **用户权限**: 通过member_id等关联用户信息,控制提交权限 +- **业务关联**: 可能关联课程、班级等业务对象 +- **配置继承**: 子表单可以继承父表单的提交配置 +- **规则应用**: 配置规则应用到实际的表单提交过程 +- **通知关联**: 提交后的通知与用户和管理员关联 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: + - form_id (表单配置查询) + - site_id (站点配置查询) +- **唯一索引**: form_id (每个表单唯一配置) +- **业务索引**: + - status (状态查询) + - submit_limit_type (限制类型查询) + - is_need_login (登录要求查询) + - is_need_verify (验证要求查询) +- **复合索引**: + - (site_id, status) (站点状态查询) + - (form_id, status) (表单状态查询) + - (submit_limit_type, submit_limit_num) (限制规则查询) +- **时间索引**: + - submit_start_time (开始时间查询) + - submit_end_time (结束时间查询) + - create_time (创建时间查询) + - update_time (更新时间查询) +- **统计索引**: + - submit_limit_num (限制数量统计) + - total_submit_num (总提交数统计) + +## 注意事项 +- **表单关联完整性**: form_id必须对应有效的表单记录 +- **时间逻辑一致性**: submit_start_time必须小于submit_end_time +- **限制规则合理性**: submit_limit_num必须为正数且合理 +- **状态管理**: status变更需要考虑已有提交记录的影响 +- **权限验证**: is_need_login和is_need_verify需要与实际验证逻辑一致 +- **时间有效性**: 需要定期检查表单的时间有效性 +- **限制计数**: submit_limit_num的计数需要准确维护 +- **并发控制**: 高并发提交时需要考虑限制数量的准确性 +- **配置缓存**: 频繁查询的配置可以使用缓存提高性能 +- **变更影响**: 配置变更可能影响正在进行的提交流程 +- **数据一致性**: 配置与实际提交行为需要保持一致 +- **审核流程**: 如果启用审核,需要配置相应的审核人员 +- **通知设置**: 通知配置需要确保接收人的有效性 +- **备份恢复**: 重要配置需要定期备份 +- **权限控制**: 配置修改需要严格的权限控制 +- **日志记录**: 配置变更需要详细的日志记录 +- **性能监控**: 监控配置对表单提交性能的影响 +- **兼容性**: 配置变更需要考虑向后兼容性 diff --git a/niucloud/databasedoc/school_diy_form_write_config.md b/niucloud/databasedoc/school_diy_form_write_config.md new file mode 100644 index 00000000..eea3017f --- /dev/null +++ b/niucloud/databasedoc/school_diy_form_write_config.md @@ -0,0 +1,113 @@ +# school_diy_form_write_config 表文档 + +## 表概述 +**表名**: school_diy_form_write_config +**功能**: 自定义表单填写配置表,负责管理教务系统中表单的填写权限、规则和限制,包括填写方式、参与人员、次数限制、时间控制等表单填写行为的详细配置 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 主键id +form_id int NULL NO 0 select,insert,update,references 所属万能表单id +write_way varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 填写方式,no_limit:不限制,scan:仅限微信扫一扫,url:仅限链接进入 +join_member_type varchar(255) utf8mb4_general_ci NO all_member select,insert,update,references 参与会员,all_member:所有会员参与,selected_member_level:指定会员等级,selected_member_label:指定会员标签 +level_ids text utf8mb4_general_ci YES NULL select,insert,update,references 会员等级id集合 +label_ids text utf8mb4_general_ci YES NULL select,insert,update,references 会员标签id集合 +member_write_type varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 每人可填写次数,no_limit:不限制,diy:自定义 +member_write_rule text utf8mb4_general_ci NO NULL select,insert,update,references 每人可填写次数自定义规则 +form_write_type varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 表单可填写数量,no_limit:不限制,diy:自定义 +form_write_rule text utf8mb4_general_ci NO NULL select,insert,update,references 表单可填写总数自定义规则 +time_limit_type varchar(255) utf8mb4_general_ci NO 0 select,insert,update,references 填写时间限制类型,no_limit:不限制, specify_time:指定开始结束时间,open_day_time:设置每日开启时间 +time_limit_rule text utf8mb4_general_ci NO NULL select,insert,update,references 填写时间限制规则 +is_allow_update_content tinyint NULL NO 0 select,insert,update,references 是否允许修改自己填写的内容,0:否,1:是 +write_instruction text utf8mb4_general_ci YES NULL select,insert,update,references 表单填写须知 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **填写方式控制**: 配置表单的填写入口方式(不限制、扫码、链接) +- **参与人员管理**: 设置表单填写的参与人员范围和权限 +- **会员等级限制**: 基于会员等级控制表单填写权限 +- **会员标签筛选**: 通过会员标签精确控制参与人员 +- **次数限制管理**: 设置个人和表单总体的填写次数限制 +- **时间控制**: 配置表单的开放时间和填写时间限制 +- **修改权限**: 控制用户是否可以修改已填写的内容 +- **填写须知**: 提供表单填写的说明和注意事项 +- **规则引擎**: 支持复杂的填写规则配置和验证 + +### 业务场景 +- **课程报名**: 配置课程报名表单的参与人员和时间限制 +- **活动报名**: 设置活动报名的人数限制和资格要求 +- **问卷调查**: 配置调查问卷的填写次数和时间范围 +- **考试报名**: 设置考试报名的资格限制和截止时间 +- **信息收集**: 配置信息收集表单的填写权限和规则 +- **预约服务**: 设置服务预约的时间限制和人员范围 +- **反馈收集**: 配置反馈表单的填写频次和修改权限 +- **申请审批**: 设置申请表单的填写资格和时间控制 +- **会员专享**: 配置会员专享表单的等级和标签限制 + +## 关联关系 + +### 主要关联表 +- `school_diy_form`: 自定义表单表 (form_id) +- `school_member_level`: 会员等级表 (level_ids) +- `school_member_label`: 会员标签表 (label_ids) +- `school_diy_form_records`: 表单记录表 (填写记录) +- `school_member`: 会员信息表 (参与人员) +- `school_student`: 学生信息表 (学员参与) +- `school_personnel`: 人员信息表 (教职工参与) +- `sys_log`: 系统日志表 (配置变更日志) + +### 关联说明 +- **表单关联**: form_id关联到school_diy_form表,确定配置所属表单 +- **等级关联**: level_ids关联到school_member_level表,控制等级权限 +- **标签关联**: label_ids关联到school_member_label表,筛选参与人员 +- **记录关联**: 与school_diy_form_records表关联,统计填写次数 +- **用户关联**: 通过会员、学生、人员表控制填写权限 +- **规则应用**: 配置规则应用到实际的表单填写过程 +- **权限验证**: 填写时验证用户是否符合配置要求 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: form_id (表单配置查询) +- **唯一索引**: form_id (每个表单唯一配置) +- **业务索引**: + - write_way (填写方式查询) + - join_member_type (参与类型查询) + - member_write_type (个人次数类型查询) + - form_write_type (表单次数类型查询) + - time_limit_type (时间限制类型查询) + - is_allow_update_content (修改权限查询) +- **复合索引**: + - (form_id, write_way) (表单填写方式查询) + - (join_member_type, member_write_type) (参与规则查询) + - (time_limit_type, form_write_type) (时间次数规则查询) +- **时间索引**: + - create_time (创建时间查询) + - update_time (更新时间查询) +- **全文索引**: + - write_instruction (填写须知搜索) + +## 注意事项 +- **表单关联完整性**: form_id必须对应有效的表单记录 +- **等级ID格式**: level_ids需要使用正确的JSON或逗号分隔格式 +- **标签ID格式**: label_ids需要使用正确的JSON或逗号分隔格式 +- **规则JSON格式**: 各种rule字段需要使用有效的JSON格式 +- **填写方式枚举**: write_way必须是预定义的枚举值 +- **参与类型一致性**: join_member_type与level_ids、label_ids的使用要一致 +- **次数限制合理性**: 填写次数限制必须为正数且合理 +- **时间规则有效性**: 时间限制规则需要符合逻辑和格式要求 +- **权限验证**: 填写时需要严格验证用户是否符合配置要求 +- **规则缓存**: 频繁查询的配置规则可以使用缓存 +- **并发控制**: 次数限制在高并发时需要准确控制 +- **配置变更影响**: 配置变更可能影响正在进行的填写流程 +- **数据一致性**: 配置与实际填写行为需要保持一致 +- **备份恢复**: 重要配置需要定期备份 +- **权限控制**: 配置修改需要严格的权限控制 +- **日志记录**: 配置变更需要详细的日志记录 +- **性能监控**: 监控配置对表单填写性能的影响 +- **兼容性**: 配置变更需要考虑向后兼容性 diff --git a/niucloud/databasedoc/school_diy_page.md b/niucloud/databasedoc/school_diy_page.md new file mode 100644 index 00000000..fe2c4615 --- /dev/null +++ b/niucloud/databasedoc/school_diy_page.md @@ -0,0 +1,113 @@ +# school_diy_page 表文档 + +## 表概述 +**表名**: school_diy_page +**功能**: 自定义页面管理表,负责管理教务系统中的自定义页面内容,包括页面设计、内容编辑、布局配置、发布管理等页面构建和展示功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +page_title varchar(255) utf8mb4_general_ci NO select,insert,update,references 页面名称(用于后台展示) +title varchar(255) utf8mb4_general_ci NO select,insert,update,references 页面标题(用于前台展示) +name varchar(255) utf8mb4_general_ci NO select,insert,update,references 页面标识 +type varchar(255) utf8mb4_general_ci NO select,insert,update,references 页面模板 +template varchar(255) utf8mb4_general_ci NO select,insert,update,references 模板名称 +mode varchar(255) utf8mb4_general_ci NO diy select,insert,update,references 页面展示模式,diy:自定义,fixed:固定 +value longtext utf8mb4_general_ci YES NULL select,insert,update,references 页面数据,json格式 +is_default int NULL NO 0 select,insert,update,references 是否默认页面,1:是,0:否 +is_change int NULL NO 0 select,insert,update,references 数据是否发生过变化,1:变化了,2:没有 +share varchar(1000) utf8mb4_general_ci NO select,insert,update,references 分享内容 +visit_count int NULL NO 0 select,insert,update,references 访问量 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **页面内容管理**: 管理自定义页面的标题、内容和描述信息 +- **页面设计配置**: 支持页面的布局设计和样式配置 +- **页面状态控制**: 管理页面的发布状态和可见性 +- **页面分类管理**: 支持页面的分类和标签管理 +- **页面模板系统**: 提供页面模板的创建和应用 +- **内容编辑器**: 支持富文本编辑和可视化编辑 +- **页面预览**: 提供页面预览和实时编辑功能 +- **SEO优化**: 支持页面的SEO设置和优化 +- **访问统计**: 记录页面的访问量和用户行为 +- **版本管理**: 支持页面内容的版本控制和回滚 + +### 业务场景 +- **学校介绍**: 创建学校简介、师资力量等展示页面 +- **课程展示**: 制作课程详情、教学大纲等介绍页面 +- **活动宣传**: 设计活动介绍、报名须知等宣传页面 +- **新闻公告**: 发布学校新闻、通知公告等信息页面 +- **招生简章**: 制作招生政策、报名流程等说明页面 +- **教学资源**: 创建学习资料、教学视频等资源页面 +- **联系我们**: 设计联系方式、地址导航等信息页面 +- **帮助中心**: 制作使用说明、常见问题等帮助页面 +- **政策制度**: 发布学校规章、管理制度等政策页面 + +## 关联关系 + +### 主要关联表 +- `school_diy_route`: 自定义路由表 (页面路由配置) +- `school_addon`: 插件表 (页面功能扩展) +- `sys_attachment`: 附件表 (页面图片、文件) +- `school_member`: 会员表 (页面访问权限) +- `school_personnel`: 人员表 (页面编辑权限) +- `sys_log`: 系统日志表 (页面操作日志) +- `school_site_config`: 站点配置表 (页面全局设置) +- `school_navigation`: 导航表 (页面导航链接) + +### 关联说明 +- **路由关联**: 与school_diy_route表关联,配置页面的访问路由 +- **插件关联**: 通过school_addon表扩展页面功能和组件 +- **附件关联**: 与sys_attachment表关联,管理页面中的图片和文件 +- **权限关联**: 通过会员和人员表控制页面的访问和编辑权限 +- **日志关联**: 与sys_log表关联,记录页面的操作和访问日志 +- **配置关联**: 与站点配置表关联,应用全局页面设置 +- **导航关联**: 与导航表关联,将页面添加到网站导航中 +- **内容关联**: 页面内容可能引用其他业务数据和信息 + +## 索引建议 +- **主键索引**: id (已存在) +- **业务索引**: + - title (页面标题查询) + - status (页面状态查询) + - type (页面类型查询) + - is_published (发布状态查询) + - sort_order (排序查询) +- **复合索引**: + - (type, status) (类型状态查询) + - (is_published, sort_order) (发布排序查询) + - (status, create_time) (状态时间查询) +- **时间索引**: + - create_time (创建时间查询) + - update_time (更新时间查询) + - publish_time (发布时间查询) +- **全文索引**: + - title (标题搜索) + - content (内容搜索) + - description (描述搜索) + +## 注意事项 +- **内容安全**: 页面内容需要进行XSS和SQL注入防护 +- **HTML验证**: 页面HTML内容需要验证格式和安全性 +- **图片处理**: 页面图片需要压缩优化和格式转换 +- **缓存策略**: 页面内容需要合理的缓存策略提升性能 +- **SEO优化**: 页面需要设置合适的标题、关键词和描述 +- **响应式设计**: 页面需要适配不同设备和屏幕尺寸 +- **加载性能**: 页面内容和资源需要优化加载速度 +- **版本控制**: 重要页面修改需要保留历史版本 +- **权限控制**: 页面编辑和发布需要严格的权限控制 +- **内容审核**: 页面发布前需要内容审核和质量检查 +- **备份恢复**: 页面内容需要定期备份和恢复机制 +- **链接检查**: 页面中的链接需要定期检查有效性 +- **移动适配**: 页面需要在移动端有良好的显示效果 +- **搜索优化**: 页面内容需要便于搜索引擎收录 +- **用户体验**: 页面设计需要注重用户体验和易用性 +- **数据统计**: 需要统计页面的访问量和用户行为 +- **错误处理**: 页面加载失败需要友好的错误提示 +- **国际化**: 多语言环境下需要支持国际化 diff --git a/niucloud/databasedoc/school_diy_route.md b/niucloud/databasedoc/school_diy_route.md new file mode 100644 index 00000000..8fe2d56a --- /dev/null +++ b/niucloud/databasedoc/school_diy_route.md @@ -0,0 +1,107 @@ +# school_diy_route 表文档 + +## 表概述 +**表名**: school_diy_route +**功能**: 自定义路由管理表,负责管理教务系统中的自定义页面路由配置,包括路由规则、访问控制、重定向设置、SEO优化等路由管理功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +title varchar(255) utf8mb4_general_ci NO select,insert,update,references 页面名称 +name varchar(255) utf8mb4_general_ci NO select,insert,update,references 页面标识 +page varchar(255) utf8mb4_general_ci NO select,insert,update,references 页面路径 +share varchar(1000) utf8mb4_general_ci NO select,insert,update,references 分享内容 +is_share int NULL NO 0 select,insert,update,references 是否支持分享 +sort int NULL NO 0 select,insert,update,references 排序 +``` + +## 功能用途 + +### 主要功能 +- **路由规则管理**: 配置自定义页面的访问路径和路由规则 +- **URL美化**: 提供友好的URL格式和SEO优化路径 +- **访问控制**: 设置路由的访问权限和用户限制 +- **重定向管理**: 配置页面重定向和跳转规则 +- **参数传递**: 支持路由参数的定义和传递 +- **路由缓存**: 提供路由缓存机制提升访问性能 +- **多语言路由**: 支持多语言环境下的路由配置 +- **移动端适配**: 配置移动端专用的路由规则 +- **路由监控**: 监控路由的访问情况和性能指标 +- **动态路由**: 支持动态生成和配置路由规则 + +### 业务场景 +- **页面访问**: 为自定义页面配置友好的访问路径 +- **SEO优化**: 设置搜索引擎友好的URL结构 +- **权限控制**: 根据用户权限控制页面访问 +- **多语言支持**: 配置不同语言版本的页面路由 +- **移动适配**: 为移动端用户提供专门的页面路由 +- **营销推广**: 配置营销活动页面的专用路由 +- **API接口**: 为前端API调用配置路由规则 +- **静态资源**: 管理静态资源文件的访问路由 +- **错误处理**: 配置404、500等错误页面路由 + +## 关联关系 + +### 主要关联表 +- `school_diy_page`: 自定义页面表 (page_id) +- `school_addon`: 插件表 (路由功能扩展) +- `school_member`: 会员表 (访问权限控制) +- `school_personnel`: 人员表 (管理权限控制) +- `sys_log`: 系统日志表 (路由访问日志) +- `school_site_config`: 站点配置表 (全局路由设置) +- `school_navigation`: 导航表 (导航链接路由) +- `sys_attachment`: 附件表 (静态资源路由) + +### 关联说明 +- **页面关联**: page_id关联到school_diy_page表,确定路由对应的页面 +- **插件关联**: 通过school_addon表扩展路由功能和中间件 +- **权限关联**: 与会员和人员表关联,控制路由的访问权限 +- **日志关联**: 与sys_log表关联,记录路由的访问和操作日志 +- **配置关联**: 与站点配置表关联,应用全局路由设置 +- **导航关联**: 与导航表关联,为导航项配置路由 +- **资源关联**: 与附件表关联,管理静态资源的路由访问 +- **业务关联**: 路由可能关联到各种业务模块和功能 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: page_id (页面路由查询) +- **唯一索引**: + - route_path (路由路径唯一性) + - (domain, route_path) (域名路径组合唯一) +- **业务索引**: + - status (路由状态查询) + - type (路由类型查询) + - is_active (激活状态查询) + - priority (优先级排序) +- **复合索引**: + - (status, is_active) (状态激活查询) + - (type, priority) (类型优先级查询) + - (domain, status) (域名状态查询) +- **时间索引**: + - create_time (创建时间查询) + - update_time (更新时间查询) +- **全文索引**: + - route_name (路由名称搜索) + - description (描述搜索) + +## 注意事项 +- **路径唯一性**: route_path在同一域名下必须保持唯一 +- **页面关联完整性**: page_id必须对应有效的页面记录 +- **路由格式验证**: 路由路径需要符合URL规范和格式要求 +- **权限验证**: 路由访问需要严格的权限验证机制 +- **缓存策略**: 路由规则需要合理的缓存策略提升性能 +- **重定向循环**: 避免重定向规则造成的无限循环 +- **SEO友好**: 路由设计需要考虑搜索引擎优化 +- **参数安全**: 路由参数需要进行安全验证和过滤 +- **性能监控**: 监控路由的访问性能和响应时间 +- **错误处理**: 路由匹配失败需要友好的错误处理 +- **版本兼容**: 路由变更需要考虑向后兼容性 +- **多语言支持**: 多语言环境下路由配置的一致性 +- **移动适配**: 移动端路由的特殊处理和优化 +- **安全防护**: 防止路由注入和恶意访问 +- **日志记录**: 详细记录路由的访问和操作日志 +- **备份恢复**: 重要路由配置需要备份和恢复机制 +- **测试验证**: 路由配置变更需要充分的测试验证 +- **文档维护**: 保持路由配置文档的及时更新 diff --git a/niucloud/databasedoc/school_diy_theme.md b/niucloud/databasedoc/school_diy_theme.md new file mode 100644 index 00000000..50c1c6d7 --- /dev/null +++ b/niucloud/databasedoc/school_diy_theme.md @@ -0,0 +1,104 @@ +# school_diy_theme 表文档 + +## 表概述 +**表名**: school_diy_theme +**功能**: 自定义主题配色管理表,负责管理教务系统中的界面主题和配色方案,包括主题创建、配色设置、模式切换等界面个性化定制功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +title varchar(255) utf8mb4_general_ci NO select,insert,update,references 标题 +type varchar(255) utf8mb4_general_ci NO select,insert,update,references 插件类型app,addon +addon varchar(255) utf8mb4_general_ci NO select,insert,update,references 所属应用,app:系统,shop:商城、o2o:上门服务 +color_mark varchar(255) utf8mb4_general_ci NO select,insert,update,references 颜色标识 +color_name varchar(255) utf8mb4_general_ci NO select,insert,update,references 颜色名称 +mode varchar(255) utf8mb4_general_ci NO select,insert,update,references 模式,default:默认【跟随系统】,diy:自定义配色 +value text utf8mb4_general_ci YES NULL select,insert,update,references 配色 +diy_value text utf8mb4_general_ci YES NULL select,insert,update,references 自定义配色 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **主题管理**: 创建和管理不同的界面主题方案 +- **配色设置**: 设置和调整系统的配色方案 +- **模式切换**: 支持默认模式和自定义模式的切换 +- **颜色标识**: 为不同主题设置颜色标识和名称 +- **应用适配**: 支持不同应用模块的主题适配 +- **配色预览**: 提供主题配色的预览功能 +- **主题导入导出**: 支持主题配置的导入和导出 +- **版本管理**: 管理主题的版本和更新 +- **用户个性化**: 支持用户个性化主题设置 +- **主题分享**: 支持主题配置的分享和复用 + +### 业务场景 +- **品牌定制**: 根据机构品牌色彩定制系统主题 +- **节日主题**: 在特殊节日使用特定的主题配色 +- **用户体验**: 提供多样化的界面风格选择 +- **视觉识别**: 通过主题强化品牌视觉识别 +- **季节变换**: 根据季节变化调整系统配色 +- **活动推广**: 配合营销活动使用特定主题 +- **个性化服务**: 为不同用户群体提供个性化界面 +- **无障碍设计**: 提供高对比度等无障碍主题 +- **夜间模式**: 提供护眼的夜间模式主题 + +## 关联关系 + +### 主要关联表 +- `school_diy_page`: 自定义页面表 (主题应用) +- `school_sys_config`: 系统配置表 (默认主题设置) +- `school_sys_user`: 系统用户表 (用户主题偏好) +- `school_campus`: 校区表 (校区主题定制) +- `school_addon`: 插件表 (插件主题适配) +- `school_web_adv`: 网站广告表 (主题适配) +- `school_template_message`: 模板消息表 (主题色彩) +- `sys_log`: 系统日志表 (主题操作日志) + +### 关联说明 +- **页面关联**: 自定义页面应用特定的主题配色 +- **配置关联**: 系统配置中设置默认主题 +- **用户关联**: 用户可以设置个人主题偏好 +- **校区关联**: 不同校区可以使用不同的主题 +- **插件关联**: 插件模块适配相应的主题风格 +- **广告关联**: 广告内容与主题色彩协调 +- **消息关联**: 消息模板使用主题配色 +- **日志关联**: 记录主题的操作和变更历史 +- **业务关联**: 各业务模块应用统一的主题风格 + +## 索引建议 +- **主键索引**: id (已存在) +- **业务索引**: + - type (插件类型查询) + - addon (应用类型查询) + - mode (模式查询) + - create_time (创建时间查询) + - update_time (更新时间查询) +- **复合索引**: + - (type, addon) (类型应用查询) + - (addon, mode) (应用模式查询) +- **全文索引**: + - title (主题标题搜索) + - color_name (颜色名称搜索) + +## 注意事项 +- **主题兼容性**: 确保主题在不同设备和浏览器上的兼容性 +- **配色规范**: 遵循UI设计规范和无障碍设计标准 +- **性能影响**: 主题切换不应影响系统性能 +- **数据格式**: value和diy_value字段存储JSON格式数据 +- **默认主题**: 系统必须有一个默认主题作为备选 +- **颜色对比度**: 确保文字和背景有足够的对比度 +- **主题缓存**: 主题配置应该合理缓存提升加载速度 +- **版本控制**: 主题更新时需要考虑向后兼容性 +- **用户体验**: 主题切换应该平滑无闪烁 +- **移动适配**: 主题在移动端的显示效果 +- **品牌一致性**: 主题设计应符合机构品牌形象 +- **配色数量**: 避免过多的配色选项影响用户选择 +- **主题测试**: 新主题上线前需要充分测试 +- **回滚机制**: 主题出现问题时的快速回滚机制 +- **用户反馈**: 收集用户对主题的反馈和建议 +- **定期更新**: 定期更新主题以保持界面的现代感 +- **数据备份**: 重要主题配置需要备份 diff --git a/niucloud/databasedoc/school_document_data_source_config.md b/niucloud/databasedoc/school_document_data_source_config.md new file mode 100644 index 00000000..523b415c --- /dev/null +++ b/niucloud/databasedoc/school_document_data_source_config.md @@ -0,0 +1,109 @@ +# school_document_data_source_config 表文档 + +## 表概述 +**表名**: school_document_data_source_config +**功能**: 文档数据源配置表,负责管理教务系统中文档生成的数据源配置,包括数据源定义、字段映射、查询条件等文档数据获取和处理功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +contract_id int NULL NO MUL NULL select,insert,update,references 合同ID +placeholder varchar(255) utf8mb4_0900_ai_ci NO NULL select,insert,update,references 占位符 +data_type enum('database','system','user_input','sign_img','signature') utf8mb4_0900_ai_ci YES user_input select,insert,update,references 数据类型 +system_function varchar(100) utf8mb4_0900_ai_ci YES select,insert,update,references 系统函数名称 +table_name varchar(100) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 数据表名 +field_name varchar(100) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 字段名 +field_type varchar(50) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 字段类型 +is_required tinyint NULL YES 0 select,insert,update,references 是否必填 +default_value text utf8mb4_0900_ai_ci YES NULL select,insert,update,references 默认值 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references +validation_rule text utf8mb4_0900_ai_ci YES NULL select,insert,update,references 数据验证规则,JSON格式存储 +sign_party enum('party_a','party_b') utf8mb4_0900_ai_ci YES NULL select,insert,update,references 签署方:party_a-甲方,party_b-乙方 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **数据源管理**: 配置和管理文档生成的数据源 +- **字段映射**: 定义数据源字段与文档模板的映射关系 +- **查询配置**: 设置数据查询的条件和参数 +- **数据过滤**: 配置数据筛选和过滤规则 +- **格式转换**: 处理数据格式转换和标准化 +- **关联查询**: 配置多表关联查询逻辑 +- **数据验证**: 验证数据源的有效性和完整性 +- **缓存策略**: 配置数据缓存和更新策略 +- **权限控制**: 控制数据源的访问权限 +- **版本管理**: 管理数据源配置的版本和变更 + +### 业务场景 +- **成绩单生成**: 配置学生成绩数据源生成成绩单 +- **证书制作**: 配置学员信息数据源生成证书 +- **报表生成**: 配置统计数据源生成各类报表 +- **通知书制作**: 配置学员数据生成入学通知书 +- **档案整理**: 配置学员档案数据生成档案文件 +- **财务报表**: 配置财务数据生成财务报表 +- **教学计划**: 配置课程数据生成教学计划文档 +- **考试安排**: 配置考试数据生成考试安排表 +- **毕业证书**: 配置毕业生数据生成毕业证书 + +## 关联关系 + +### 主要关联表 +- `school_document_template`: 文档模板表 (模板数据源) +- `school_document_generate_log`: 文档生成日志表 (生成记录) +- `school_student`: 学员表 (学员数据源) +- `school_course`: 课程表 (课程数据源) +- `school_class`: 班级表 (班级数据源) +- `school_teacher`: 教师表 (教师数据源) +- `school_exam`: 考试表 (考试数据源) +- `school_grade`: 成绩表 (成绩数据源) +- `school_finance`: 财务表 (财务数据源) +- `sys_config`: 系统配置表 (配置参数) + +### 关联说明 +- **模板关联**: 文档模板使用特定的数据源配置 +- **日志关联**: 记录数据源在文档生成中的使用情况 +- **学员关联**: 学员相关文档使用学员数据源 +- **课程关联**: 课程相关文档使用课程数据源 +- **班级关联**: 班级相关文档使用班级数据源 +- **教师关联**: 教师相关文档使用教师数据源 +- **考试关联**: 考试相关文档使用考试数据源 +- **成绩关联**: 成绩相关文档使用成绩数据源 +- **财务关联**: 财务相关文档使用财务数据源 +- **配置关联**: 系统配置影响数据源的行为 + +## 索引建议 +- **主键索引**: id (已存在) +- **业务索引**: + - template_id (模板查询) + - data_source_type (数据源类型查询) + - status (状态查询) + - create_time (创建时间查询) + - update_time (更新时间查询) +- **复合索引**: + - (template_id, data_source_type) (模板数据源查询) + - (data_source_type, status) (类型状态查询) +- **全文索引**: + - name (数据源名称搜索) + - description (描述搜索) + +## 注意事项 +- **数据安全**: 确保数据源配置不泄露敏感信息 +- **性能优化**: 合理配置查询条件避免性能问题 +- **数据一致性**: 确保数据源配置与实际数据结构一致 +- **权限控制**: 严格控制数据源的访问权限 +- **配置验证**: 数据源配置变更前需要验证有效性 +- **版本兼容**: 数据源配置变更需要考虑向后兼容性 +- **错误处理**: 完善的错误处理和异常捕获机制 +- **日志记录**: 详细记录数据源的使用和变更日志 +- **缓存管理**: 合理使用缓存提升数据获取效率 +- **数据格式**: config字段存储JSON格式的配置信息 +- **查询优化**: 优化数据源查询语句提升性能 +- **连接管理**: 合理管理数据库连接避免连接泄露 +- **事务处理**: 涉及多表操作时注意事务一致性 +- **监控告警**: 监控数据源的可用性和性能 +- **备份恢复**: 重要配置需要定期备份 +- **文档同步**: 配置变更时同步更新相关文档 diff --git a/niucloud/databasedoc/school_document_data_source_config_backup.md b/niucloud/databasedoc/school_document_data_source_config_backup.md new file mode 100644 index 00000000..4ee58b52 --- /dev/null +++ b/niucloud/databasedoc/school_document_data_source_config_backup.md @@ -0,0 +1,118 @@ +# school_document_data_source_config_backup 表文档 + +## 表概述 +**表名**: school_document_data_source_config_backup +**功能**: 文档数据源配置备份表,用于备份和管理文档生成时的数据源配置信息 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 配置ID +contract_id int NULL NO MUL 0 select,insert,update,references 合同ID +table_name varchar(64) utf8mb4_general_ci NO MUL NULL select,insert,update,references 数据表名 +table_alias varchar(64) utf8mb4_general_ci YES NULL select,insert,update,references 表别名(显示名称) +field_name varchar(64) utf8mb4_general_ci NO NULL select,insert,update,references 字段名 +field_alias varchar(64) utf8mb4_general_ci YES NULL select,insert,update,references 字段别名(显示名称) +field_type varchar(32) utf8mb4_general_ci YES text select,insert,update,references 字段类型:text-文本,number-数字,date-日期,datetime-日期时间 +is_active tinyint(1) NULL YES MUL 1 select,insert,update,references 是否启用:1-启用,0-禁用 +sort_order int NULL YES 0 select,insert,update,references 排序 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **配置备份**: 备份文档生成时使用的数据源配置信息 +- **合同关联**: 通过contract_id关联具体的合同文档 +- **表结构映射**: 记录数据表名和字段名的映射关系 +- **别名管理**: 管理表名和字段名的显示别名,提高可读性 +- **字段类型**: 定义字段的数据类型(文本、数字、日期等) +- **状态控制**: 通过is_active控制配置的启用状态 +- **排序管理**: 通过sort_order控制字段的显示顺序 +- **版本控制**: 记录配置的创建和更新时间,支持版本追踪 +- **数据恢复**: 在配置丢失时可以从备份中恢复 +- **配置审计**: 提供配置变更的审计追踪功能 + +### 业务场景 +- **合同文档生成**: 为合同文档生成提供数据源配置备份 +- **报表模板**: 为各类报表模板提供数据字段配置 +- **文档模板**: 为文档模板系统提供数据源映射配置 +- **数据导出**: 为数据导出功能提供字段配置信息 +- **配置恢复**: 在系统故障时恢复数据源配置 +- **版本管理**: 管理不同版本的数据源配置 +- **配置迁移**: 在系统升级时迁移配置数据 +- **模板复制**: 复制现有模板的数据源配置 +- **批量处理**: 批量处理多个合同的配置备份 +- **配置审计**: 审计配置变更历史和操作记录 + +## 关联关系 + +### 主要关联表 +- **school_contract**: 合同表,通过contract_id关联合同信息 +- **school_document_data_source_config**: 原始数据源配置表 +- **school_document_template**: 文档模板表,关联模板信息 +- **school_document_generate_log**: 文档生成日志表,关联生成记录 +- **school_sys_user**: 系统用户表,关联配置操作用户 +- **school_member**: 会员表,合同相关的会员信息 +- **school_course**: 课程表,课程相关的合同配置 +- **school_campus**: 校区表,校区相关的配置信息 + +### 关联说明 +- `contract_id` 关联 `school_contract.id`,标识配置所属的合同 +- `table_name` 标识数据源表名,对应系统中的实际数据表 +- `field_name` 标识具体的字段名,对应表中的实际字段 +- `table_alias` 和 `field_alias` 提供用户友好的显示名称 +- **配置关联**: 与原始配置表关联,实现配置的备份和恢复 +- **模板关联**: 与文档模板关联,支持模板的数据源配置 +- **合同关联**: 与合同表关联,获取合同的详细信息 +- **日志关联**: 与生成日志关联,追踪配置的使用情况 +- **用户关联**: 与用户表关联,记录配置的操作者 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 合同ID索引(用于查询合同的配置备份) +INDEX idx_contract_id (contract_id) + +-- 表名索引(用于按表查询配置) +INDEX idx_table_name (table_name) + +-- 启用状态索引(用于查询启用的配置) +INDEX idx_is_active (is_active) + +-- 创建时间索引(用于按时间查询) +INDEX idx_created_at (created_at) + +-- 更新时间索引(用于按更新时间查询) +INDEX idx_updated_at (updated_at) + +-- 复合索引(用于查询合同的启用配置) +INDEX idx_contract_active (contract_id, is_active) + +-- 复合索引(用于查询表的字段配置) +INDEX idx_table_field (table_name, field_name) + +-- 复合索引(用于排序查询) +INDEX idx_contract_sort (contract_id, sort_order) +``` + +## 注意事项 +- **数据一致性**: 确保备份的配置与原始配置保持一致 +- **字段类型**: field_type字段值需要严格按照规范设置 +- **表名有效性**: table_name必须对应系统中实际存在的数据表 +- **字段名有效性**: field_name必须对应表中实际存在的字段 +- **别名唯一性**: 在同一合同内,别名应该保持唯一性 +- **排序合理性**: sort_order应该保证字段显示的合理顺序 +- **状态管理**: is_active状态变更需要考虑对文档生成的影响 +- **备份时机**: 在配置变更前应及时创建备份 +- **数据清理**: 定期清理过期或无效的配置备份 +- **权限控制**: 配置备份的查看和操作需要严格权限控制 +- **版本管理**: 通过时间戳实现配置的版本管理 +- **恢复验证**: 从备份恢复配置时需要验证数据完整性 +- **性能优化**: 大量配置查询时需要考虑缓存机制 +- **监控告警**: 监控配置备份的创建和使用情况 +- **数据备份**: 重要的配置备份数据需要定期备份到外部存储 diff --git a/niucloud/databasedoc/school_document_generate_log.md b/niucloud/databasedoc/school_document_generate_log.md new file mode 100644 index 00000000..15df2390 --- /dev/null +++ b/niucloud/databasedoc/school_document_generate_log.md @@ -0,0 +1,113 @@ +# school_document_generate_log 表文档 + +## 表概述 +**表名**: school_document_generate_log +**功能**: 文档生成日志表,负责记录教务系统中文档生成的操作日志,包括生成记录、状态跟踪、错误信息等文档生成过程的完整记录和监控功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +user_type int NULL NO 0 select,insert,update,references 人员类型1内部 2外部 +template_id int NULL NO MUL NULL select,insert,update,references 模板ID +template_name varchar(255) utf8mb4_0900_ai_ci YES select,insert,update,references 模板名称 +user_id int NULL NO NULL select,insert,update,references 操作用户 +user_name varchar(100) utf8mb4_0900_ai_ci YES select,insert,update,references 用户姓名 +business_id int NULL YES NULL select,insert,update,references 关联业务ID +business_type varchar(50) utf8mb4_0900_ai_ci YES select,insert,update,references 业务类型 +fill_data text utf8mb4_0900_ai_ci YES NULL select,insert,update,references 填充数据JSON +original_data longtext utf8mb4_0900_ai_ci YES NULL select,insert,update,references 生成时使用的原始数据JSON +generated_file varchar(500) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 生成文件路径 +file_size bigint NULL YES 0 select,insert,update,references 生成文件大小 +download_count int NULL YES 0 select,insert,update,references 下载次数 +status enum('pending','processing','completed','failed') utf8mb4_0900_ai_ci YES MUL pending select,insert,update,references +error_msg text utf8mb4_0900_ai_ci YES NULL select,insert,update,references 错误信息 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +completed_at timestamp NULL YES NULL select,insert,update,references 完成时间 +``` + +## 功能用途 + +### 主要功能 +- **生成记录**: 记录文档生成的完整过程和结果 +- **状态跟踪**: 跟踪文档生成的各个阶段状态 +- **错误日志**: 记录生成过程中的错误和异常信息 +- **性能监控**: 监控文档生成的耗时和性能指标 +- **用户追踪**: 记录文档生成的操作用户信息 +- **模板使用**: 记录使用的文档模板和数据源 +- **文件管理**: 管理生成的文档文件路径和存储信息 +- **批量处理**: 支持批量文档生成的日志记录 +- **审计追踪**: 提供完整的文档生成审计轨迹 +- **统计分析**: 支持文档生成的统计和分析功能 + +### 业务场景 +- **成绩单生成**: 记录学生成绩单的生成过程和结果 +- **证书制作**: 记录各类证书的制作日志和状态 +- **报表生成**: 记录各种报表的生成历史和性能 +- **通知书制作**: 记录入学通知书等文档的生成情况 +- **批量导出**: 记录批量文档导出的处理过程 +- **定时任务**: 记录定时生成文档任务的执行情况 +- **错误排查**: 通过日志排查文档生成失败的原因 +- **性能优化**: 分析生成耗时优化文档生成性能 +- **合规审计**: 提供文档生成的合规性审计记录 + +## 关联关系 + +### 主要关联表 +- `school_document_template`: 文档模板表 (使用的模板) +- `school_document_data_source_config`: 数据源配置表 (使用的数据源) +- `school_student`: 学员表 (文档相关学员) +- `school_course`: 课程表 (文档相关课程) +- `school_class`: 班级表 (文档相关班级) +- `school_teacher`: 教师表 (文档相关教师) +- `school_exam`: 考试表 (文档相关考试) +- `sys_user`: 系统用户表 (操作用户) +- `sys_file`: 系统文件表 (生成的文件) +- `sys_log`: 系统日志表 (系统操作日志) + +### 关联说明 +- **模板关联**: 记录使用的文档模板信息 +- **数据源关联**: 记录使用的数据源配置 +- **学员关联**: 记录文档涉及的学员信息 +- **课程关联**: 记录文档涉及的课程信息 +- **班级关联**: 记录文档涉及的班级信息 +- **教师关联**: 记录文档涉及的教师信息 +- **考试关联**: 记录文档涉及的考试信息 +- **用户关联**: 记录执行文档生成的用户 +- **文件关联**: 关联生成的文档文件 +- **日志关联**: 与系统日志形成完整的操作记录 + +## 索引建议 +- **主键索引**: id (已存在) +- **业务索引**: + - template_id (模板查询) + - user_id (用户查询) + - status (状态查询) + - generate_time (生成时间查询) + - create_time (创建时间查询) +- **复合索引**: + - (template_id, status) (模板状态查询) + - (user_id, generate_time) (用户时间查询) + - (status, generate_time) (状态时间查询) +- **时间索引**: + - generate_time (按生成时间排序) + - create_time (按创建时间排序) + +## 注意事项 +- **日志保留**: 合理设置日志保留期限避免数据过度膨胀 +- **性能影响**: 日志记录不应影响文档生成的性能 +- **存储优化**: 大量日志数据需要考虑存储优化策略 +- **隐私保护**: 日志中不应包含敏感的个人信息 +- **错误处理**: 完善的错误信息记录便于问题排查 +- **并发控制**: 高并发场景下的日志写入控制 +- **数据完整性**: 确保日志记录的完整性和准确性 +- **查询优化**: 优化日志查询性能避免影响系统 +- **归档策略**: 制定合理的历史日志归档策略 +- **监控告警**: 监控异常日志并及时告警 +- **数据格式**: params和result字段存储JSON格式数据 +- **文件清理**: 定期清理无效的生成文件 +- **统计分析**: 利用日志数据进行业务分析和优化 +- **备份恢复**: 重要日志数据需要定期备份 +- **权限控制**: 控制日志数据的访问权限 +- **实时性**: 确保日志记录的实时性和准确性 diff --git a/niucloud/databasedoc/school_document_generate_log_backup.md b/niucloud/databasedoc/school_document_generate_log_backup.md new file mode 100644 index 00000000..b7d0f275 --- /dev/null +++ b/niucloud/databasedoc/school_document_generate_log_backup.md @@ -0,0 +1,104 @@ +# school_document_generate_log_backup 表文档 + +## 表概述 +**表名**: school_document_generate_log_backup +**功能**: 文档生成日志备份表,用于备份和管理文档生成的历史记录,包括生成状态、文件信息和下载统计 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 记录ID +template_id int NULL NO MUL NULL select,insert,update,references 模板ID(关联school_contract.id) +user_id int NULL NO MUL NULL select,insert,update,references 操作用户ID +user_type varchar(20) utf8mb4_general_ci YES admin select,insert,update,references 用户类型:1 员工 2 外部用户 +fill_data json NULL YES NULL select,insert,update,references 填充数据JSON格式 +generated_file_path varchar(500) utf8mb4_general_ci YES NULL select,insert,update,references 生成文件路径 +generated_file_name varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 生成文件名 +status enum('pending','processing','completed','failed') utf8mb4_general_ci NO MUL pending select,insert,update,references 生成状态:pending-等待,processing-处理中,completed-完成,failed-失败 +error_msg text utf8mb4_general_ci YES NULL select,insert,update,references 错误信息 +process_start_time timestamp NULL YES NULL select,insert,update,references 处理开始时间 +process_end_time timestamp NULL YES NULL select,insert,update,references 处理完成时间 +download_count int NULL YES 0 select,insert,update,references 下载次数 +last_download_time timestamp NULL YES NULL select,insert,update,references 最后下载时间 +created_at int NULL NO MUL 0 select,insert,update,references 创建时间 +updated_at int NULL NO 0 select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **日志备份**: 备份文档生成的历史记录和操作日志 +- **状态追踪**: 跟踪文档生成的完整生命周期状态 +- **文件管理**: 管理生成文件的存储路径和文件名信息 +- **错误记录**: 记录文档生成过程中的错误信息和失败原因 +- **性能监控**: 监控文档生成的处理时间和性能指标 +- **下载统计**: 统计生成文档的下载次数和使用情况 +- **用户追踪**: 记录文档生成的操作用户和用户类型 +- **数据恢复**: 提供文档生成数据的备份和恢复功能 +- **审计追溯**: 支持文档生成操作的审计和追溯 + +### 业务场景 +- **合同文档生成**: 备份教学合同、协议等文档的生成记录 +- **报表文档生成**: 备份各种统计报表的生成历史 +- **证书文档生成**: 备份学员证书、荣誉证书的生成记录 +- **通知文档生成**: 备份家长通知、缴费通知等文档生成 +- **批量文档生成**: 备份批量生成文档的操作记录 +- **模板文档生成**: 备份基于模板生成文档的历史记录 +- **自定义文档生成**: 备份用户自定义文档的生成记录 +- **系统文档生成**: 备份系统自动生成文档的记录 +- **历史数据恢复**: 从备份中恢复历史文档生成数据 + +## 关联关系 + +### 主要关联表 +- `school_contract`: 合同表(模板ID关联合同记录) +- `school_document_generate_log`: 文档生成日志表(主表备份关系) +- `school_sys_user`: 系统用户表(操作用户关联) +- `school_member`: 会员表(外部用户关联) +- `school_document_template`: 文档模板表(模板配置关联) +- `school_sys_attachment`: 附件表(生成文件关联) +- `school_campus`: 校区表(校区相关文档) + +### 关联说明 +- **模板关联**: template_id关联到具体的文档模板或合同记录 +- **用户关联**: user_id根据user_type关联到不同的用户表 +- **文件关联**: generated_file_path关联到实际的文件存储位置 +- **状态关联**: status字段反映文档生成的当前状态 +- **时间关联**: 记录文档生成的完整时间线信息 +- **备份关联**: 与主日志表保持数据一致性和完整性 + +## 索引建议 +- **主键索引**: id(已存在) +- **外键索引**: + - template_id(模板查询) + - user_id(用户查询) +- **状态索引**: status(状态查询) +- **时间索引**: + - created_at(创建时间查询) + - updated_at(更新时间查询) + - process_start_time(处理开始时间) + - process_end_time(处理完成时间) + - last_download_time(最后下载时间) +- **复合索引**: + - (user_id, user_type)(用户类型查询优化) + - (template_id, status)(模板状态查询) + - (status, created_at)(状态时间查询) + - (user_id, created_at)(用户历史查询) + +## 注意事项 +- **数据一致性**: 确保备份数据与主表数据的一致性 +- **存储管理**: 生成文件的存储路径需要有效管理,防止文件丢失 +- **状态同步**: 文档生成状态变更需要及时同步到备份表 +- **文件清理**: 定期清理过期的生成文件,释放存储空间 +- **权限控制**: 备份数据的访问需要严格的权限控制 +- **错误处理**: 详细记录错误信息,便于问题排查和解决 +- **性能监控**: 监控文档生成的性能,优化处理效率 +- **备份策略**: 制定合理的数据备份和归档策略 +- **数据恢复**: 建立完善的数据恢复机制和流程 +- **审计合规**: 确保备份数据符合审计和合规要求 +- **版本管理**: 支持备份数据的版本管理和历史追溯 +- **安全保护**: 备份数据需要加密存储,防止数据泄露 +- **监控告警**: 建立异常情况的监控和告警机制 +- **容量规划**: 合理规划备份数据的存储容量和增长 +- **数据迁移**: 系统升级时需要考虑备份数据的迁移 diff --git a/niucloud/databasedoc/school_exam_answers.md b/niucloud/databasedoc/school_exam_answers.md new file mode 100644 index 00000000..c5e171c6 --- /dev/null +++ b/niucloud/databasedoc/school_exam_answers.md @@ -0,0 +1,100 @@ +# school_exam_answers 表文档 + +## 表概述 +**表名**: school_exam_answers +**功能**: 考试答题记录表,负责管理教务系统中的具体答题记录,记录用户对每道题目的答案和正确性判断 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 答题记录编号 +campus_id int NULL NO NULL select,insert,update,references 校区ID +user_id int NULL NO NULL select,insert,update,references 人员ID +question_id int NULL NO NULL select,insert,update,references 试题ID +answer text utf8mb4_general_ci YES NULL select,insert,update,references 用户答案 +is_correct tinyint(1) NULL YES NULL select,insert,update,references 是否正确 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +1. **答题记录管理**: 记录用户对每道题目的具体答案 +2. **正确性判断**: 自动判断和记录答案的正确性 +3. **人员答题跟踪**: 跟踪特定人员的答题情况 +4. **题目答题统计**: 统计每道题目的答题情况 +5. **校区数据管理**: 按校区管理答题记录 +6. **答题时间记录**: 记录答题的时间信息 +7. **成绩计算支持**: 为考试成绩计算提供基础数据 +8. **答题分析支持**: 为答题情况分析提供详细数据 +9. **考试过程追踪**: 详细记录考试过程中的每一步 + +### 业务场景 +1. **实时答题**: 记录考试过程中的实时答题情况 +2. **成绩计算**: 基于答题记录计算考试总成绩 +3. **错题分析**: 分析学员/员工的错题情况,提供针对性指导 +4. **题目质量评估**: 基于答题统计评估题目的难度和质量 +5. **学习效果评估**: 评估学员的学习效果和知识掌握情况 +6. **考试作弊检测**: 通过答题模式检测可能的作弊行为 +7. **个性化推荐**: 基于答题情况推荐相关学习内容 +8. **教学改进**: 为教师提供学员答题数据,改进教学方法 +9. **数据挖掘**: 挖掘答题数据中的学习规律和趋势 + +## 关联关系 + +### 主要关联表 +1. **school_exam_questions**: 考试题目表(question_id外键关联) +2. **school_personnel**: 人员表(user_id关联员工) +3. **school_student**: 学员表(user_id关联学员) +4. **school_campus**: 校区表(campus_id外键关联) +5. **school_exam_records**: 考试记录表(考试实例关联) +6. **school_exam_papers**: 试卷表(间接关联) +7. **school_course**: 课程表(课程答题关联) +8. **school_class**: 班级表(班级答题关联) + +### 关联说明 +1. **题目关联**: question_id字段关联到具体的考试题目 +2. **人员关联**: user_id字段关联到答题人员(员工或学员) +3. **校区关联**: campus_id字段关联到具体校区 +4. **考试关联**: 通过user_id和时间关联到具体的考试记录 +5. **试卷关联**: 通过题目间接关联到试卷 +6. **课程关联**: 答题可以关联到具体的课程或班级 +7. **正确性关联**: is_correct字段用于成绩计算和统计 +8. **答案关联**: answer字段存储用户的具体答案内容 + +## 索引建议 +1. **主键索引**: id(已存在) +2. **外键索引**: + - campus_id(校区查询) + - user_id(人员查询) + - question_id(题目查询) +3. **普通索引**: + - is_correct(正确性查询) +4. **复合索引**: + - (user_id, question_id)(人员+题目查询,防重复答题) + - (question_id, is_correct)(题目+正确性统计) + - (campus_id, user_id)(校区+人员查询) + - (user_id, is_correct)(人员+正确性查询) +5. **时间索引**: + - created_at(答题时间查询) + - updated_at(更新时间查询) +6. **全文索引**: + - answer(答案内容搜索) + +## 注意事项 +1. **外键完整性**: campus_id、user_id、question_id必须存在 +2. **答案格式**: answer字段格式需要与题目类型匹配 +3. **正确性判断**: is_correct应基于标准答案自动判断 +4. **重复答题**: 同一用户同一题目可能有多次答题记录 +5. **答案验证**: 答案内容需要进行格式和有效性验证 +6. **数据一致性**: 答题记录与考试记录的时间应保持一致 +7. **权限控制**: 只有答题人员本人和管理员可以查看答题记录 +8. **答案安全**: 答案内容需要进行安全性检查 +9. **性能优化**: 大量答题记录查询需要考虑性能 +10. **数据完整性**: 删除题目或人员时需要处理相关答题记录 +11. **审计要求**: 答题过程需要记录详细的操作日志 +12. **备份策略**: 重要答题数据需要定期备份 +13. **数据归档**: 历史答题记录需要定期归档处理 +14. **统计准确性**: 基于答题记录的统计数据需要保证准确性 diff --git a/niucloud/databasedoc/school_exam_papers.md b/niucloud/databasedoc/school_exam_papers.md new file mode 100644 index 00000000..3f2da24f --- /dev/null +++ b/niucloud/databasedoc/school_exam_papers.md @@ -0,0 +1,101 @@ +# school_exam_papers 表文档 + +## 表概述 +**表名**: school_exam_papers +**功能**: 试卷管理表,负责管理教务系统中的考试试卷配置,支持随机组卷和手动组卷两种模式,管理试卷题目、分数设置和考试类型 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 试卷编号 +selection_mode enum('random','manual') utf8mb4_general_ci NO NULL select,insert,update,references 题目选择模式: random-随机主题, manual-自选题目 +total_score decimal(5,2) NULL NO NULL select,insert,update,references 总分 +passing_score decimal(5,2) NULL NO NULL select,insert,update,references 合格分数 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +questions_ids text utf8mb4_general_ci YES NULL select,insert,update,references 问题 id +title varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 试卷名称 +single_choice_count int NULL NO 0 select,insert,update,references 单选题数量 +multiple_choice_count int NULL NO 0 select,insert,update,references 多选题数量 +true_false_count int NULL NO 0 select,insert,update,references 判断题数量 +every_score decimal(10,1) unsigned NULL NO 0.0 select,insert,update,references 每道题分数 +number_answers int NULL YES NULL select,insert,update,references 答题次数 +answer_type tinyint NULL YES NULL select,insert,update,references 答题类型 1 员工考试 2 学员考试 +``` + +## 功能用途 + +### 主要功能 +1. **试卷配置管理**: 创建和管理考试试卷的基本配置信息 +2. **组卷模式控制**: 支持随机组卷和手动选题两种组卷方式 +3. **分数设置管理**: 设置试卷总分、合格分数和每题分数 +4. **题型数量控制**: 管理单选题、多选题、判断题的数量配置 +5. **题目关联管理**: 通过questions_ids字段关联具体的考试题目 +6. **考试类型分类**: 区分员工考试和学员考试两种类型 +7. **答题次数限制**: 控制试卷的答题次数限制 +8. **试卷命名管理**: 为试卷提供清晰的标题和标识 +9. **时间追踪**: 记录试卷的创建和修改时间 + +### 业务场景 +1. **员工考核**: 创建员工技能考试、入职考试、培训考试试卷 +2. **学员测评**: 创建学员课程测试、阶段考试、毕业考试试卷 +3. **随机考试**: 使用随机组卷模式创建不同难度的考试 +4. **定制考试**: 使用手动选题模式创建针对性考试 +5. **分级考试**: 根据不同级别设置不同的合格分数 +6. **题型配置**: 根据考试需要配置不同题型的数量比例 +7. **重复考试**: 设置答题次数限制,支持多次考试 +8. **考试分析**: 基于试卷配置进行考试结果分析 +9. **模板管理**: 创建试卷模板供重复使用 + +## 关联关系 + +### 主要关联表 +1. **school_exam_questions**: 考试题目表(questions_ids字段关联) +2. **school_exam_records**: 考试记录表(试卷考试记录关联) +3. **school_exam_answers**: 考试答案表(试卷答题记录关联) +4. **school_personnel**: 人员表(员工考试关联) +5. **school_student**: 学员表(学员考试关联) +6. **school_course**: 课程表(课程考试关联) +7. **school_class**: 班级表(班级考试关联) +8. **school_campus**: 校区表(校区考试管理关联) + +### 关联说明 +1. **题目关联**: questions_ids字段存储试卷包含的题目ID列表 +2. **考试记录**: 考试记录表记录基于此试卷的具体考试实例 +3. **答题记录**: 答案表记录学员/员工对此试卷的答题情况 +4. **人员关联**: 根据answer_type区分员工考试和学员考试 +5. **课程关联**: 试卷可以关联到具体的课程或班级 +6. **校区关联**: 试卷可以按校区进行管理和使用 +7. **类型关联**: answer_type字段区分不同的考试对象 + +## 索引建议 +1. **主键索引**: id(已存在) +2. **普通索引**: + - title(试卷名称查询) + - selection_mode(组卷模式查询) + - answer_type(考试类型查询) +3. **复合索引**: + - (answer_type, selection_mode)(类型+模式查询) + - (total_score, passing_score)(分数范围查询) +4. **时间索引**: + - created_at(创建时间查询) + - updated_at(更新时间查询) +5. **全文索引**: + - title(试卷标题搜索) + +## 注意事项 +1. **分数逻辑**: passing_score不能大于total_score +2. **题目数量**: 各题型数量之和应与实际题目数量一致 +3. **分数计算**: every_score * 题目总数应等于total_score +4. **题目ID格式**: questions_ids字段需要验证JSON格式和题目ID有效性 +5. **组卷模式**: 随机模式需要足够的题库支持 +6. **答题次数**: number_answers为0表示无限制,大于0表示限制次数 +7. **考试类型**: answer_type必须为1(员工)或2(学员) +8. **数据完整性**: 删除试卷前需要检查是否有关联的考试记录 +9. **题目更新**: 修改questions_ids时需要重新计算分数 +10. **权限控制**: 不同角色对试卷的操作权限需要严格控制 +11. **备份策略**: 重要试卷数据需要定期备份 +12. **版本管理**: 试卷修改时建议保留历史版本 +13. **性能优化**: 大量题目的试卷查询需要考虑性能 +14. **审计要求**: 试卷操作需要记录详细的操作日志 diff --git a/niucloud/databasedoc/school_exam_questions.md b/niucloud/databasedoc/school_exam_questions.md new file mode 100644 index 00000000..7113bca2 --- /dev/null +++ b/niucloud/databasedoc/school_exam_questions.md @@ -0,0 +1,97 @@ +# school_exam_questions 表文档 + +## 表概述 +**表名**: school_exam_questions +**功能**: 考试题目管理表,负责管理教务系统中的考试题库,支持单选题、多选题、判断题三种题型,支持文本和图片两种题干类型 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 试题编号 +question_type enum('single_choice','multiple_choice','true_false') utf8mb4_general_ci NO NULL select,insert,update,references 题型: single_choice-单选, multiple_choice-多选, true_false-判断 +title varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 题目标题 +question_content_type enum('text','image') utf8mb4_general_ci NO NULL select,insert,update,references 题干类型: text-文本, image-图片 +question_content text utf8mb4_general_ci NO NULL select,insert,update,references 题干内容(如果是图片则存储URL) +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +option_json text utf8mb4_general_ci YES NULL select,insert,update,references 选项 +correct_answer varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 正确答案 +``` + +## 功能用途 + +### 主要功能 +1. **题目信息管理**: 创建和维护考试题目的基本信息 +2. **题型分类管理**: 支持单选题、多选题、判断题三种题型 +3. **题干内容管理**: 支持文本和图片两种题干内容类型 +4. **选项配置管理**: 通过option_json字段管理题目选项 +5. **答案设置管理**: 设置和管理题目的正确答案 +6. **题目标题管理**: 为题目提供清晰的标题标识 +7. **内容类型控制**: 区分文本题干和图片题干 +8. **时间追踪**: 记录题目的创建和修改时间 +9. **题库构建**: 为试卷组卷提供题目资源 + +### 业务场景 +1. **题库建设**: 构建完整的考试题库资源 +2. **试卷组卷**: 为试卷提供题目选择和组合 +3. **员工考试**: 创建员工技能测试、入职考试题目 +4. **学员测评**: 创建学员课程测试、阶段考试题目 +5. **随机抽题**: 支持系统随机抽取题目组成试卷 +6. **题目分类**: 按照题型和难度对题目进行分类管理 +7. **题目复用**: 同一题目可以在多个试卷中使用 +8. **题目维护**: 定期更新和维护题目内容和答案 +9. **质量控制**: 对题目质量进行审核和管理 + +## 关联关系 + +### 主要关联表 +1. **school_exam_papers**: 试卷表(试卷题目关联) +2. **school_exam_answers**: 考试答案表(答题记录关联) +3. **school_exam_records**: 考试记录表(考试题目关联) +4. **school_personnel**: 人员表(出题人关联) +5. **school_student**: 学员表(答题人关联) +6. **school_course**: 课程表(课程题目关联) +7. **school_sys_attachment**: 附件表(图片题干关联) +8. **school_campus**: 校区表(题库管理关联) + +### 关联说明 +1. **试卷关联**: 试卷通过questions_ids字段关联到具体题目 +2. **答题关联**: 答案表记录用户对具体题目的答题情况 +3. **考试关联**: 考试记录关联到具体的题目和答案 +4. **人员关联**: 题目可以关联到出题人和答题人 +5. **课程关联**: 题目可以按课程进行分类和管理 +6. **附件关联**: 图片类型题干关联到附件表 +7. **校区关联**: 题目可以按校区进行管理和使用 +8. **内容关联**: 题干内容根据类型存储文本或图片URL + +## 索引建议 +1. **主键索引**: id(已存在) +2. **普通索引**: + - question_type(题型查询) + - question_content_type(内容类型查询) + - title(题目标题查询) +3. **复合索引**: + - (question_type, question_content_type)(题型+内容类型查询) +4. **时间索引**: + - created_at(创建时间查询) + - updated_at(更新时间查询) +5. **全文索引**: + - title(题目标题搜索) + - question_content(题干内容搜索) + +## 注意事项 +1. **题型一致性**: question_type必须为枚举值中的一种 +2. **选项格式**: option_json字段必须为有效的JSON格式 +3. **答案格式**: correct_answer格式需要与题型匹配 +4. **内容类型**: question_content_type决定question_content的存储格式 +5. **图片URL**: 图片类型题干需要验证URL的有效性 +6. **选项数量**: 单选题和多选题必须有足够的选项 +7. **答案验证**: 正确答案必须在选项范围内 +8. **JSON结构**: option_json需要统一的数据结构 +9. **内容安全**: 题目内容需要进行安全性检查 +10. **数据完整性**: 删除题目前需要检查是否被试卷使用 +11. **版本管理**: 题目修改时建议保留历史版本 +12. **权限控制**: 题目的创建和修改需要权限验证 +13. **备份策略**: 重要题目数据需要定期备份 +14. **审计要求**: 题目操作需要记录详细的操作日志 diff --git a/niucloud/databasedoc/school_exam_records.md b/niucloud/databasedoc/school_exam_records.md new file mode 100644 index 00000000..7a7c60a0 --- /dev/null +++ b/niucloud/databasedoc/school_exam_records.md @@ -0,0 +1,103 @@ +# school_exam_records 表文档 + +## 表概述 +**表名**: school_exam_records +**功能**: 考试记录管理表,负责管理教务系统中的考试实例记录,跟踪考试过程、记录考试成绩和管理考试状态 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 记录编号 +campus_id int NULL NO NULL select,insert,update,references 校区ID +user_id int NULL NO NULL select,insert,update,references 人员ID +paper_id int NULL NO NULL select,insert,update,references 试卷ID +score decimal(5,2) NULL YES NULL select,insert,update,references 得分 +status enum('in_progress','completed') utf8mb4_general_ci YES in_progress select,insert,update,references 考试状态: in_progress-进行中, completed-已完成 +start_time datetime NULL YES NULL select,insert,update,references 考试开始时间 +end_time datetime NULL YES NULL select,insert,update,references 考试结束时间 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +1. **考试实例管理**: 创建和管理具体的考试实例记录 +2. **考试状态跟踪**: 跟踪考试的进行状态(进行中/已完成) +3. **成绩记录管理**: 记录和管理考试的最终得分 +4. **时间管理**: 记录考试的开始时间和结束时间 +5. **人员关联管理**: 关联考试人员和试卷信息 +6. **校区管理**: 按校区管理考试记录 +7. **考试过程控制**: 控制考试的开始、进行和结束流程 +8. **数据统计支持**: 为考试数据分析提供基础数据 +9. **时间追踪**: 记录考试记录的创建和修改时间 + +### 业务场景 +1. **员工考试**: 记录员工技能测试、入职考试、培训考试过程 +2. **学员测评**: 记录学员课程测试、阶段考试、毕业考试过程 +3. **考试监控**: 实时监控考试进行状态和完成情况 +4. **成绩管理**: 统计和管理考试成绩,生成成绩报告 +5. **考试分析**: 分析考试时长、通过率等数据 +6. **补考管理**: 管理需要补考的人员和考试安排 +7. **考试审计**: 提供考试过程的审计追踪 +8. **数据导出**: 导出考试记录用于外部分析 +9. **考试统计**: 按时间、人员、试卷等维度统计考试情况 + +## 关联关系 + +### 主要关联表 +1. **school_exam_papers**: 试卷表(paper_id外键关联) +2. **school_personnel**: 人员表(user_id关联员工) +3. **school_student**: 学员表(user_id关联学员) +4. **school_campus**: 校区表(campus_id外键关联) +5. **school_exam_answers**: 考试答案表(考试答题记录关联) +6. **school_course**: 课程表(课程考试关联) +7. **school_class**: 班级表(班级考试关联) +8. **school_exam_questions**: 考试题目表(间接关联) + +### 关联说明 +1. **试卷关联**: paper_id字段关联到具体的试卷配置 +2. **人员关联**: user_id字段关联到考试人员(员工或学员) +3. **校区关联**: campus_id字段关联到具体校区 +4. **答题关联**: 考试答案表记录此次考试的具体答题情况 +5. **课程关联**: 考试可以关联到具体的课程或班级 +6. **题目关联**: 通过试卷间接关联到考试题目 +7. **状态关联**: 考试状态决定是否可以查看成绩 +8. **时间关联**: 开始和结束时间用于计算考试时长 + +## 索引建议 +1. **主键索引**: id(已存在) +2. **外键索引**: + - campus_id(校区查询) + - user_id(人员查询) + - paper_id(试卷查询) +3. **普通索引**: + - status(状态查询) + - score(成绩查询) +4. **复合索引**: + - (campus_id, user_id)(校区+人员查询) + - (paper_id, status)(试卷+状态查询) + - (user_id, status)(人员+状态查询) + - (start_time, end_time)(时间范围查询) +5. **时间索引**: + - start_time(开始时间查询) + - end_time(结束时间查询) + - created_at(创建时间查询) + - updated_at(更新时间查询) + +## 注意事项 +1. **状态一致性**: status必须为枚举值中的一种 +2. **时间逻辑**: end_time必须大于start_time +3. **成绩范围**: score应在试卷设定的分数范围内 +4. **外键完整性**: campus_id、user_id、paper_id必须存在 +5. **状态流转**: 只能从in_progress转换为completed +6. **并发控制**: 同一人员同一试卷同时只能有一个进行中的考试 +7. **时间控制**: 考试时间不能超过试卷设定的时间限制 +8. **成绩计算**: 成绩应基于答题情况自动计算 +9. **数据完整性**: 删除考试记录需要同时删除相关答题记录 +10. **权限验证**: 只有考试人员本人和管理员可以查看考试记录 +11. **审计要求**: 考试过程需要记录详细的操作日志 +12. **备份策略**: 重要考试数据需要定期备份 +13. **性能优化**: 大量考试记录查询需要考虑性能 +14. **数据归档**: 历史考试记录需要定期归档处理 diff --git a/niucloud/databasedoc/school_generate_column.md b/niucloud/databasedoc/school_generate_column.md new file mode 100644 index 00000000..4db0a071 --- /dev/null +++ b/niucloud/databasedoc/school_generate_column.md @@ -0,0 +1,103 @@ +# school_generate_column 表文档 + +## 表概述 +**表名**: school_generate_column +**功能**: 代码生成器字段配置表,用于管理代码生成器中每个字段的详细配置信息,包括表单控件类型、显示属性、验证规则、查询方式等,支持动态表单生成和自动化代码生成 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references id +table_id int NULL NO 0 select,insert,update,references 表id +column_name varchar(100) utf8mb4_general_ci NO select,insert,update,references 字段名称 +column_comment varchar(300) utf8mb4_general_ci NO select,insert,update,references 字段描述 +column_type varchar(100) utf8mb4_general_ci NO select,insert,update,references 字段类型 +is_required tinyint(1) NULL YES 0 select,insert,update,references 是否必填 0-非必填 1-必填 +is_pk tinyint(1) NULL YES 0 select,insert,update,references 是否为主键 0-不是 1-是 +is_insert tinyint(1) NULL YES 0 select,insert,update,references 是否为插入字段 0-不是 1-是 +is_update tinyint(1) NULL YES 0 select,insert,update,references 是否为更新字段 0-不是 1-是 +is_lists tinyint(1) NULL YES 1 select,insert,update,references 是否为列表字段 0-不是 1-是 +is_query tinyint(1) NULL YES 1 select,insert,update,references 是否为查询字段 0-不是 1-是 +is_search tinyint(1) NULL YES 1 select,insert,update,references 是否搜索字段 +query_type varchar(100) utf8mb4_general_ci YES = select,insert,update,references 查询类型 +view_type varchar(100) utf8mb4_general_ci YES input select,insert,update,references 显示类型 +dict_type varchar(255) utf8mb4_general_ci YES select,insert,update,references 字典类型 +addon varchar(255) utf8mb4_general_ci YES select,insert,update,references 远程下拉关联应用 +model varchar(255) utf8mb4_general_ci YES select,insert,update,references 远程下拉关联model +label_key varchar(255) utf8mb4_general_ci YES select,insert,update,references 远程下拉标题字段 +value_key varchar(255) utf8mb4_general_ci YES select,insert,update,references 远程下拉value字段 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 修改时间 +is_delete tinyint NULL YES 0 select,insert,update,references 是否为软删除字段 0-不是 1-是 +is_order tinyint NULL YES 0 select,insert,update,references 是否为排序字段 0-不是 1-是 +validate_type varchar(255) utf8mb4_general_ci YES select,insert,update,references 验证类型 +``` + +## 功能用途 + +### 主要功能 +- **字段配置管理**: 管理代码生成器中每个字段的详细配置信息 +- **表单控件配置**: 定义字段在表单中的显示类型和交互方式 +- **列表显示控制**: 控制字段是否在列表页面中显示 +- **查询条件配置**: 设置字段的查询类型和搜索方式 +- **数据验证规则**: 定义字段的验证类型和必填规则 +- **字典关联管理**: 配置字段与数据字典的关联关系 +- **远程数据源**: 支持远程下拉选择的数据源配置 +- **字段权限控制**: 控制字段的增删改查权限 + +### 业务场景 +- **代码自动生成**: 根据配置自动生成CRUD页面和表单 +- **动态表单构建**: 根据配置动态生成各种业务表单 +- **数据列表定制**: 自定义数据列表的显示字段和格式 +- **搜索条件配置**: 配置高级搜索的查询条件和方式 +- **数据导入导出**: 配置数据导入导出的字段映射 +- **报表字段配置**: 定义报表中的字段显示和计算规则 +- **API接口生成**: 根据配置自动生成RESTful API接口 +- **移动端适配**: 配置字段在移动端的显示方式 +- **多语言支持**: 支持字段标签的多语言配置 + +## 关联关系 + +### 主要关联表 +- **school_generate_table**: 生成表配置表,关联字段所属的表配置 +- **school_sys_dict_type**: 字典类型表,关联字段的字典配置 +- **school_sys_dict_data**: 字典数据表,提供字段的选项数据 +- **school_sys_addon**: 插件表,关联远程下拉的插件信息 +- **school_sys_model**: 模型表,关联远程下拉的数据模型 +- **school_sys_user**: 用户表,关联配置的创建和修改人员 +- **school_form_template**: 表单模板表,关联生成的表单模板 +- **school_report_config**: 报表配置表,关联报表字段配置 + +### 关联说明 +- `table_id` 关联 `school_generate_table.id`,标识字段所属的表 +- `dict_type` 关联 `school_sys_dict_type.type`,关联字典类型 +- `addon` 关联 `school_sys_addon.key`,关联远程数据源插件 +- `model` 关联 `school_sys_model.name`,关联数据模型 +- `label_key` 和 `value_key` 定义远程下拉的显示和值字段 +- 与代码生成器引擎关联,实现自动化代码生成 +- 与表单渲染引擎关联,实现动态表单生成 +- 与数据验证引擎关联,实现字段验证规则 + +## 索引建议 +- **主键索引**: `PRIMARY KEY (id)` - 自动创建 +- **表ID索引**: `INDEX idx_table_id (table_id)` - 支持按表查询字段配置 +- **字段名索引**: `INDEX idx_column_name (column_name)` - 支持按字段名查询 +- **字段类型索引**: `INDEX idx_column_type (column_type)` - 支持按字段类型查询 +- **显示类型索引**: `INDEX idx_view_type (view_type)` - 支持按显示类型查询 +- **字典类型索引**: `INDEX idx_dict_type (dict_type)` - 支持按字典类型查询 +- **创建时间索引**: `INDEX idx_create_time (create_time)` - 支持按创建时间查询 +- **复合索引**: `INDEX idx_table_column (table_id, column_name)` - 支持表和字段的复合查询 +- **状态索引**: `INDEX idx_flags (is_required, is_pk, is_insert, is_update)` - 支持按字段状态查询 + +## 注意事项 +- **配置一致性**: 确保字段配置与实际数据库表结构保持一致 +- **类型匹配**: 验证字段类型与显示类型的兼容性 +- **权限控制**: 严格控制字段配置的修改权限,防止误操作 +- **缓存管理**: 合理使用缓存提高配置读取性能 +- **版本控制**: 建立配置变更的版本控制和回滚机制 +- **数据验证**: 确保验证规则的正确性和有效性 +- **性能优化**: 避免过多的字段配置影响页面渲染性能 +- **兼容性**: 确保配置在不同浏览器和设备上的兼容性 +- **安全性**: 防止通过字段配置进行SQL注入等安全攻击 +- **备份恢复**: 定期备份重要的字段配置数据 diff --git a/niucloud/databasedoc/school_generate_table.md b/niucloud/databasedoc/school_generate_table.md new file mode 100644 index 00000000..2d4d128d --- /dev/null +++ b/niucloud/databasedoc/school_generate_table.md @@ -0,0 +1,98 @@ +# school_generate_table 表文档 + +## 表概述 +**表名**: school_generate_table +**功能**: 代码生成表管理表,用于存储和管理代码生成器的表配置信息,支持自动化代码生成、表结构管理和代码模板配置,为系统开发提供快速的代码生成服务 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 主键 +table_name varchar(255) utf8mb4_general_ci NO select,insert,update,references 表名 +table_content varchar(255) utf8mb4_general_ci NO select,insert,update,references 描述前缀 +module_name varchar(255) utf8mb4_general_ci NO select,insert,update,references 模块名 +class_name varchar(255) utf8mb4_general_ci NO select,insert,update,references 类名前缀 +create_time int NULL NO 0 select,insert,update,references 添加时间 +edit_type int NULL NO 1 select,insert,update,references 编辑方式 1-弹框 2-新页面 +addon_name varchar(255) utf8mb4_general_ci NO select,insert,update,references 插件名 +order_type int NULL NO 0 select,insert,update,references 排序方式 0-无排序 1-正序 2-倒序 +parent_menu varchar(255) utf8mb4_general_ci NO select,insert,update,references 上级菜单 +relations text utf8mb4_general_ci YES NULL select,insert,update,references 关联配置 +synchronous_number int NULL NO 0 select,insert,update,references 同步次数 +``` + +## 功能用途 + +### 主要功能 +- **表配置管理**: 存储数据库表的基本信息和生成配置 +- **代码生成配置**: 管理代码生成的模板和参数设置 +- **表结构分析**: 记录表的字段信息和结构特征 +- **生成历史跟踪**: 跟踪代码生成的历史记录和版本信息 +- **模板管理**: 管理不同类型的代码生成模板 +- **自动化配置**: 支持批量表的自动化代码生成配置 +- **权限控制**: 控制不同用户对代码生成功能的访问权限 +- **备注说明**: 记录表的用途和生成说明信息 + +### 业务场景 +- **快速开发**: 为新功能模块快速生成基础代码框架 +- **CRUD生成**: 自动生成增删改查的控制器和服务代码 +- **API接口生成**: 根据表结构自动生成RESTful API接口 +- **前端页面生成**: 生成对应的前端表单和列表页面 +- **数据模型生成**: 自动生成数据模型和实体类 +- **文档生成**: 根据表结构生成API文档和数据字典 +- **测试代码生成**: 生成单元测试和集成测试代码 +- **数据库迁移**: 生成数据库迁移脚本和SQL语句 +- **代码重构**: 支持现有代码的重构和优化 +- **多语言支持**: 支持生成多种编程语言的代码 + +## 关联关系 + +### 主要关联表 +- **school_generate_column**: 代码生成字段表,存储表字段的详细配置 +- **school_sys_user**: 系统用户表,记录代码生成的操作用户 +- **school_sys_menu**: 系统菜单表,可能生成对应的菜单项 +- **school_sys_dict**: 系统字典表,可能引用字典数据进行代码生成 +- **information_schema.tables**: 数据库表信息,获取实际表结构 +- **information_schema.columns**: 数据库字段信息,获取字段详情 + +### 关联说明 +- 与school_generate_column表形成一对多关系,一个表对应多个字段配置 +- 通过table_name字段关联实际的数据库表 +- 生成的代码可能涉及多个系统表的关联和引用 +- 支持跨表关联的代码生成和业务逻辑处理 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 表名唯一索引(确保表名唯一性) +UNIQUE INDEX idx_table_name (table_name) + +-- 模块名索引(用于按模块查询) +INDEX idx_module_name (module_name) + +-- 创建时间索引(用于按时间排序) +INDEX idx_create_time (create_time) + +-- 更新时间索引(用于查询最近更新的配置) +INDEX idx_update_time (update_time) + +-- 复合索引(模块名+表名) +INDEX idx_module_table (module_name, table_name) +``` + +## 注意事项 +- **表名规范**: 确保table_name与实际数据库表名保持一致 +- **代码规范**: 生成的代码应符合项目的编码规范和标准 +- **版本控制**: 代码生成前应备份现有代码,避免覆盖重要修改 +- **权限安全**: 严格控制代码生成功能的使用权限 +- **模板管理**: 定期更新和维护代码生成模板 +- **配置验证**: 生成前验证表配置的完整性和正确性 +- **依赖关系**: 考虑表间的依赖关系,合理安排生成顺序 +- **性能优化**: 大批量生成时需要考虑性能和资源消耗 +- **错误处理**: 完善的错误处理和回滚机制 +- **文档同步**: 生成代码后及时更新相关文档 +- **测试验证**: 生成的代码需要经过充分的测试验证 +- **备份恢复**: 建立完善的备份和恢复机制 diff --git a/niucloud/databasedoc/school_jobs.md b/niucloud/databasedoc/school_jobs.md new file mode 100644 index 00000000..252985f3 --- /dev/null +++ b/niucloud/databasedoc/school_jobs.md @@ -0,0 +1,98 @@ +# school_jobs 表文档 + +## 表概述 +**表名**: school_jobs +**功能**: 队列任务管理表,负责管理教务系统中的异步任务队列,支持任务调度、重试机制和任务状态跟踪 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +queue varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references +payload longtext utf8mb4_general_ci NO NULL select,insert,update,references +attempts tinyint unsigned NULL NO 0 select,insert,update,references +reserve_time int unsigned NULL YES 0 select,insert,update,references +available_time int unsigned NULL YES 0 select,insert,update,references +create_time int unsigned NULL YES 0 select,insert,update,references +``` + +## 功能用途 + +### 主要功能 +1. **队列任务管理**: 管理系统中的异步任务队列 +2. **任务负载存储**: 通过payload字段存储任务的具体数据和参数 +3. **重试机制**: 通过attempts字段跟踪任务的执行次数 +4. **任务调度**: 通过reserve_time和available_time控制任务的执行时机 +5. **队列分类**: 通过queue字段对不同类型的任务进行分类管理 +6. **任务状态跟踪**: 跟踪任务的执行状态和进度 +7. **延迟执行**: 支持任务的延迟执行和定时调度 +8. **失败重试**: 自动重试失败的任务,提高系统可靠性 +9. **任务监控**: 监控任务队列的执行情况和性能 + +### 业务场景 +1. **邮件发送**: 异步处理邮件发送任务,避免阻塞主流程 +2. **数据导出**: 处理大量数据的导出任务,如成绩单、报表等 +3. **文件处理**: 处理文件上传、转换、压缩等耗时操作 +4. **通知推送**: 批量发送系统通知、短信、微信消息等 +5. **数据同步**: 与第三方系统进行数据同步和交换 +6. **定时任务**: 执行定时的数据清理、备份、统计等任务 +7. **图片处理**: 处理图片的缩放、裁剪、水印等操作 +8. **报表生成**: 生成复杂的统计报表和分析数据 +9. **系统维护**: 执行系统清理、优化、更新等维护任务 + +## 关联关系 + +### 主要关联表 +1. **school_sys_user**: 系统用户表(任务创建者关联) +2. **school_campus**: 校区表(任务校区关联) +3. **school_sys_config**: 系统配置表(队列配置关联) +4. **school_addon**: 插件表(插件任务关联) +5. **sys_log**: 系统日志表(任务执行日志关联) +6. **school_sys_attachment**: 附件表(文件处理任务关联) +7. **school_order_table**: 订单表(支付任务关联) +8. **school_member**: 会员表(通知任务关联) + +### 关联说明 +1. **队列分类**: queue字段标识任务类型和处理队列 +2. **任务数据**: payload字段存储任务的具体执行参数 +3. **执行控制**: reserve_time和available_time控制任务执行时机 +4. **重试机制**: attempts字段记录任务重试次数 +5. **时间管理**: create_time记录任务创建时间 +6. **状态跟踪**: 通过时间字段判断任务执行状态 +7. **业务关联**: 任务可能关联到各种业务表的数据处理 +8. **系统集成**: 与系统配置和日志系统集成 + +## 索引建议 +1. **主键索引**: id(已存在) +2. **业务索引**: + - queue(队列类型查询) + - attempts(重试次数查询) +3. **时间索引**: + - reserve_time(预约时间查询) + - available_time(可用时间查询) + - create_time(创建时间查询) +4. **复合索引**: + - (queue, available_time)(队列可用任务查询) + - (queue, attempts)(队列重试任务查询) + - (available_time, attempts)(可执行任务查询) +5. **状态索引**: + - (reserve_time, available_time)(任务状态查询) + +## 注意事项 +1. **队列名称**: queue字段应使用标准的队列命名规范 +2. **负载格式**: payload字段应存储有效的JSON或序列化数据 +3. **重试限制**: attempts字段应设置合理的重试上限,避免无限重试 +4. **时间精度**: 时间字段使用Unix时间戳,注意时区处理 +5. **任务超时**: 长时间未处理的任务需要超时机制 +6. **并发控制**: 同一任务避免重复执行,需要锁机制 +7. **内存管理**: payload字段可能存储大量数据,注意内存使用 +8. **错误处理**: 任务执行失败需要记录详细的错误信息 +9. **队列监控**: 需要监控队列长度和处理速度 +10. **数据清理**: 已完成的任务需要定期清理,避免表过大 +11. **优先级管理**: 重要任务需要优先级机制 +12. **死锁检测**: 避免任务间的死锁情况 +13. **资源限制**: 控制并发任务数量,避免系统资源耗尽 +14. **备份恢复**: 重要任务数据需要备份和恢复机制 +15. **性能优化**: 大量任务处理时需要考虑性能优化 +16. **安全控制**: 任务执行需要适当的权限和安全控制 diff --git a/niucloud/databasedoc/school_jobs_failed.md b/niucloud/databasedoc/school_jobs_failed.md new file mode 100644 index 00000000..7cb7719c --- /dev/null +++ b/niucloud/databasedoc/school_jobs_failed.md @@ -0,0 +1,90 @@ +# school_jobs_failed 表文档 + +## 表概述 +**表名**: school_jobs_failed +**功能**: 任务失败记录表,用于记录和管理系统中执行失败的异步任务信息,包括任务队列、载荷数据、异常信息等,为系统任务监控、错误排查和故障恢复提供完整的失败任务记录 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +connection text utf8mb4_general_ci NO NULL select,insert,update,references +queue text utf8mb4_general_ci NO NULL select,insert,update,references +payload longtext utf8mb4_general_ci NO NULL select,insert,update,references +exception longtext utf8mb4_general_ci NO NULL select,insert,update,references +fail_time timestamp NULL NO CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references +``` + +## 功能用途 + +### 主要功能 +- **失败任务记录**: 记录执行失败的异步任务的完整信息 +- **队列信息管理**: 记录任务所属的队列和连接信息 +- **载荷数据保存**: 保存任务的完整载荷数据,便于重新执行 +- **异常信息记录**: 详细记录任务失败的异常信息和错误堆栈 +- **失败时间跟踪**: 记录任务失败的具体时间点 +- **错误分析支持**: 为系统错误分析和故障排查提供数据支持 +- **任务重试基础**: 为失败任务的重新执行提供数据基础 +- **系统监控**: 支持系统任务执行状态的监控和告警 + +### 业务场景 +- **邮件发送失败**: 记录邮件发送任务的失败信息 +- **短信发送失败**: 记录短信发送任务的失败详情 +- **数据同步失败**: 记录数据同步任务的失败情况 +- **文件处理失败**: 记录文件上传、转换等处理任务的失败 +- **支付回调失败**: 记录支付回调处理任务的失败 +- **报表生成失败**: 记录报表生成任务的失败信息 +- **数据导入失败**: 记录批量数据导入任务的失败 +- **定时任务失败**: 记录定时执行任务的失败情况 +- **API调用失败**: 记录第三方API调用任务的失败 +- **消息推送失败**: 记录消息推送任务的失败详情 + +## 关联关系 + +### 主要关联表 +- **school_sys_cron_task**: 定时任务表,可能产生失败的定时任务记录 +- **school_sys_notice_log**: 通知发送日志表,通知发送失败时的记录 +- **school_sys_notice_sms_log**: 短信发送日志表,短信发送失败时的记录 +- **school_service_logs**: 服务日志表,记录相关的服务执行日志 +- **school_sys_export**: 导出任务表,导出任务失败时的记录 +- **school_pay**: 支付表,支付相关任务失败时的关联 +- **school_sys_log**: 系统日志表,记录相关的系统操作日志 + +### 关联说明 +- 作为系统任务队列的失败记录存储,与各业务模块的异步任务关联 +- 通过queue字段标识不同类型的任务队列 +- 通过payload字段保存任务的完整上下文信息 +- 为任务重试和错误恢复提供数据支持 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 队列索引(用于按队列查询失败任务) +INDEX idx_queue (queue(100)) + +-- 连接索引(用于按连接查询失败任务) +INDEX idx_connection (connection(100)) + +-- 失败时间索引(用于按时间排序和清理) +INDEX idx_fail_time (fail_time) + +-- 复合索引(队列和时间) +INDEX idx_queue_time (queue(50), fail_time) +``` + +## 注意事项 +- **数据清理**: 定期清理过期的失败任务记录,避免表数据过大 +- **异常信息长度**: exception字段可能包含很长的错误堆栈信息 +- **载荷数据安全**: payload字段可能包含敏感信息,需要注意数据安全 +- **存储空间**: longtext字段会占用较大存储空间,需要监控表大小 +- **查询性能**: 大量数据时需要注意查询性能,合理使用索引 +- **重试机制**: 建立合理的任务重试机制,避免无限重试 +- **监控告警**: 建立失败任务的监控和告警机制 +- **错误分类**: 对不同类型的错误进行分类处理 +- **日志关联**: 与系统日志建立关联,便于问题追踪 +- **备份策略**: 重要的失败任务记录需要建立备份策略 +- **权限控制**: 严格控制对失败任务记录的访问权限 +- **数据分析**: 定期分析失败任务的模式,优化系统稳定性 diff --git a/niucloud/databasedoc/school_lesson_course_teaching.md b/niucloud/databasedoc/school_lesson_course_teaching.md new file mode 100644 index 00000000..2b0cc230 --- /dev/null +++ b/niucloud/databasedoc/school_lesson_course_teaching.md @@ -0,0 +1,95 @@ +# school_lesson_course_teaching 表文档 + +## 表概述 +**表名**: school_lesson_course_teaching +**功能**: 课程教学内容管理表,用于管理各种类型的教学资源和教案库,包括视频、文件、图片等多媒体素材,支持多项目教学内容分类、权限控制和个性化推送 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 主键 +title varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 课程标题 +image varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 预览图 +type tinyint NULL YES NULL select,insert,update,references 素材类型 (1视频 2文件 3图片) +content text utf8mb4_general_ci YES NULL select,insert,update,references 课程内容 +status tinyint NULL YES NULL select,insert,update,references 状态 (1开启 2关闭) +create_time datetime NULL YES NULL select,insert,update,references 创建时间 +update_time datetime NULL YES NULL select,insert,update,references 修改时间 +delete_time varchar(32) utf8mb4_general_ci YES 0 select,insert,update,references 删除时间 +table_type int NULL YES NULL select,insert,update,references 类型 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鼓励方式 +user_permission text utf8mb4_general_ci YES NULL select,insert,update,references 用户权限 +user_permission_name text utf8mb4_general_ci YES NULL select,insert,update,references 用户名称(权限) +url text utf8mb4_general_ci YES NULL select,insert,update,references 素材路径 +exam_papers_id int NULL YES 0 select,insert,update,references 试卷id +answers_num int NULL YES 0 select,insert,update,references 答题次数 +student_ids text utf8mb4_general_ci YES NULL select,insert,update,references 学员 Id +``` + +## 功能用途 + +### 主要功能 +- **教学内容管理**: 统一管理各种类型的教学内容和教案资源 +- **多媒体素材支持**: 支持视频、文件、图片等多种类型的教学素材 +- **教案库分类**: 按运动项目和教学内容进行详细的分类管理 +- **权限控制**: 支持用户权限管理,控制教学内容的访问和使用 +- **状态管理**: 管理教学内容的启用/禁用状态,支持动态调整 +- **考试集成**: 集成试卷功能,支持教学效果评估 +- **学员关联**: 关联具体学员,支持个性化教学内容推送 +- **版本控制**: 支持教学内容的版本管理和更新追踪 + +### 业务场景 +- **标准化教学**: 建立标准化的教学内容库,确保教学质量一致性 +- **多项目教学**: 支持跳绳、篮球、体能、安防等多个运动项目的教学 +- **分龄教学**: 针对不同年龄段(3-6岁、7+岁)提供专门的教学内容 +- **教师培训**: 为教师提供标准化的教案和教学参考资料 +- **课程设计**: 支持教师根据教案库设计个性化的课程内容 +- **教学评估**: 通过试卷和作业评估教学效果和学员掌握情况 +- **资源共享**: 在校区间共享优质的教学资源和教案 +- **教学创新**: 收集和管理创新的教学方法和优秀课程案例 +- **家庭教育**: 为家长提供课后作业和家庭教育指导 + +## 关联关系 + +### 主要关联表 +- **school_course**: 课程表,关联教学内容所属的课程 +- **school_class**: 班级表,关联使用该教学内容的班级 +- **school_member**: 学员表,关联接受教学内容的学员 +- **school_personnel**: 教师表,关联创建和使用教学内容的教师 +- **school_exam_papers**: 试卷表,关联教学内容的考试评估 +- **school_sys_attachment**: 附件表,关联教学素材的文件存储 +- **school_sys_user**: 用户表,关联有权限访问内容的用户 +- **school_campus**: 校区表,关联教学内容的使用范围 + +### 关联说明 +- `exam_papers_id` 关联 `school_exam_papers.id`,关联相关的试卷和考试 +- `student_ids` 存储关联的学员ID列表,支持个性化推送 +- `user_permission` 存储用户权限信息,控制内容访问 +- `table_type` 字段区分不同类型的教学内容(教案库、动作库、游戏库等) +- 与文件存储系统关联,管理教学素材的上传和下载 +- 与权限系统关联,实现细粒度的内容访问控制 +- 与统计系统关联,分析教学内容的使用效果 + +## 索引建议 +- **主键索引**: `PRIMARY KEY (id)` - 自动创建 +- **类型索引**: `INDEX idx_table_type (table_type)` - 支持按教学内容类型查询 +- **状态索引**: `INDEX idx_status (status)` - 支持按状态查询 +- **试卷索引**: `INDEX idx_exam_papers_id (exam_papers_id)` - 支持按试卷查询 +- **素材类型索引**: `INDEX idx_type (type)` - 支持按素材类型查询 +- **时间索引**: `INDEX idx_create_time (create_time)` - 支持按创建时间查询 +- **更新时间索引**: `INDEX idx_update_time (update_time)` - 支持按更新时间查询 +- **逻辑删除索引**: `INDEX idx_delete_time (delete_time)` - 支持逻辑删除查询 +- **标题索引**: `INDEX idx_title (title)` - 支持按标题搜索 +- **复合索引**: `INDEX idx_type_status (table_type, status)` - 支持类型和状态的复合查询 + +## 注意事项 +- **内容版权**: 确保教学内容的版权合规,避免侵权问题 +- **文件大小控制**: 对上传的视频和文件进行大小限制,避免存储压力 +- **权限安全**: 严格控制教学内容的访问权限,保护知识产权 +- **内容质量**: 建立内容审核机制,确保教学内容的质量和准确性 +- **存储优化**: 对大量的多媒体文件进行存储优化和CDN加速 +- **备份策略**: 制定重要教学内容的备份和恢复策略 +- **版本管理**: 妥善管理教学内容的版本更新,避免内容混乱 +- **使用统计**: 统计教学内容的使用情况,优化内容库结构 +- **性能优化**: 对大量教学内容的查询和加载进行性能优化 +- **移动适配**: 确保教学内容在移动设备上的良好展示效果 diff --git a/niucloud/databasedoc/school_market_performance.md b/niucloud/databasedoc/school_market_performance.md new file mode 100644 index 00000000..faa34373 --- /dev/null +++ b/niucloud/databasedoc/school_market_performance.md @@ -0,0 +1,87 @@ +# school_market_performance 表文档 + +## 表概述 +**表名**: school_market_performance +**功能**: 市场绩效管理表,用于记录和管理市场人员的绩效数据,包括绩效金额、资源数量、绩效配置和算法等,为市场人员的绩效考核和薪酬计算提供数据支持 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +personnel_id int NULL YES NULL select,insert,update,references 人员ID +campus_id int NULL YES NULL select,insert,update,references 校区ID +performance_amount decimal(10,2) NULL YES 0.00 select,insert,update,references 绩效金额 +resource_count int NULL YES NULL select,insert,update,references 资源数量 +performance_date date NULL YES NULL select,insert,update,references 绩效日期 +performance_config varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 绩效配置 +performance_algorithm varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 绩效算法 +status tinyint NULL YES NULL select,insert,update,references 1新录入2待联系3已关单 +created_at timestamp NULL YES NULL select,insert,update,references 创建时间 +updated_at timestamp NULL YES NULL select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **绩效记录**: 记录市场人员的日常绩效数据和业绩表现 +- **绩效计算**: 根据配置的算法自动计算绩效金额 +- **资源统计**: 统计市场人员获取的客户资源数量 +- **绩效配置**: 管理不同的绩效计算配置和规则 +- **状态跟踪**: 跟踪绩效记录的处理状态(新录入/待联系/已关单) +- **校区分析**: 按校区维度分析市场绩效表现 +- **时间管理**: 按日期维度管理和查询绩效数据 +- **算法管理**: 支持多种绩效计算算法和规则 +- **绩效审核**: 对绩效数据进行审核和确认 + +### 业务场景 +- **日常绩效录入**: 市场人员每日录入获取的客户资源和业绩数据 +- **绩效计算**: 系统根据配置的算法自动计算绩效金额 +- **绩效审核**: 管理人员审核和确认市场人员的绩效数据 +- **薪酬计算**: 基于绩效数据计算市场人员的薪酬和奖金 +- **业绩分析**: 分析市场人员和校区的业绩表现趋势 +- **资源管理**: 管理和分配市场获取的客户资源 +- **绩效考核**: 定期对市场人员进行绩效考核和评估 +- **激励机制**: 根据绩效表现制定激励和奖惩措施 +- **数据报表**: 生成各类绩效分析报表和统计数据 + +## 关联关系 + +### 可能的关联表 +- **school_personnel**: 通过personnel_id关联人员信息表,获取市场人员详细信息 +- **school_campus**: 通过campus_id关联校区表,确定绩效所属校区 +- **school_member**: 关联学员表,统计市场人员获取的客户资源 +- **school_contract**: 关联合同表,分析签约转化率和业绩 +- **school_finance_record**: 关联财务记录,计算实际收入绩效 +- **school_sys_config**: 关联系统配置,获取绩效计算参数 + +### 关联说明 +- **与personnel表**: personnel_id关联school_personnel.id,确定绩效归属的市场人员 +- **与campus表**: campus_id关联school_campus.id,确定绩效所属的校区 +- **业务关联**: 通过人员和校区信息关联相关的业务数据 +- **配置关联**: performance_config字段关联绩效配置规则 +- **算法关联**: performance_algorithm字段关联具体的计算算法 +- **时间关联**: performance_date字段用于时间维度的数据分析 + +## 索引建议 +- **主键索引**: id字段(已存在) +- **人员索引**: personnel_id字段,用于查询特定人员的绩效记录 +- **校区索引**: campus_id字段,用于按校区查询绩效数据 +- **日期索引**: performance_date字段,用于按时间范围查询 +- **状态索引**: status字段,用于按状态筛选绩效记录 +- **复合索引**: + - (personnel_id, performance_date) 用于查询人员的时间范围绩效 + - (campus_id, performance_date) 用于查询校区的时间范围绩效 + - (status, performance_date) 用于查询特定状态的时间范围数据 + +## 注意事项 +- **数据精度**: performance_amount使用decimal(10,2)确保金额计算精度 +- **状态管理**: status字段值需要严格控制(1新录入/2待联系/3已关单) +- **算法配置**: performance_algorithm字段需要与系统支持的算法保持一致 +- **日期有效性**: performance_date不能超过当前日期 +- **权限控制**: 确保只有相关人员能够修改绩效数据 +- **数据完整性**: personnel_id和campus_id必须在对应表中存在 +- **计算准确性**: 绩效金额计算需要严格按照配置的算法执行 +- **审核流程**: 重要的绩效数据变更需要经过审核流程 +- **历史数据**: 已确认的绩效数据不应随意修改 +- **性能优化**: 大量数据查询时需要合理使用索引和分页 diff --git a/niucloud/databasedoc/school_member.md b/niucloud/databasedoc/school_member.md new file mode 100644 index 00000000..a7012caa --- /dev/null +++ b/niucloud/databasedoc/school_member.md @@ -0,0 +1,121 @@ +# school_member 表文档 + +## 表概述 +**表名**: school_member +**功能**: 会员用户管理表,存储教务系统中所有会员用户的基本信息、登录状态、积分余额、推广关系等核心数据 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +member_id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 主键 +member_no varchar(255) utf8mb4_general_ci NO select,insert,update,references 会员编码 +pid int NULL NO 0 select,insert,update,references 推广会员id +username varchar(255) utf8mb4_general_ci NO select,insert,update,references 会员用户名 +mobile varchar(20) utf8mb4_general_ci NO select,insert,update,references 手机号 +password varchar(255) utf8mb4_general_ci NO select,insert,update,references 会员密码 +nickname varchar(255) utf8mb4_general_ci NO select,insert,update,references 会员昵称 +headimg varchar(1000) utf8mb4_general_ci NO select,insert,update,references 会员头像 +member_level int NULL NO 0 select,insert,update,references 会员等级 +member_label varchar(255) utf8mb4_general_ci NO select,insert,update,references 会员标签 +wx_openid varchar(255) utf8mb4_general_ci NO select,insert,update,references 微信用户openid +weapp_openid varchar(255) utf8mb4_general_ci NO select,insert,update,references 微信小程序openid +wx_unionid varchar(255) utf8mb4_general_ci NO select,insert,update,references 微信unionid +ali_openid varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付宝账户id +douyin_openid varchar(255) utf8mb4_general_ci NO select,insert,update,references 抖音小程序openid +register_channel varchar(255) utf8mb4_general_ci NO H5 select,insert,update,references 注册来源 +register_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 注册方式 +login_ip varchar(255) utf8mb4_general_ci NO select,insert,update,references 当前登录ip +login_type varchar(255) utf8mb4_general_ci NO h5 select,insert,update,references 当前登录的操作终端类型 +login_channel varchar(255) utf8mb4_general_ci NO select,insert,update,references +login_count int NULL NO 0 select,insert,update,references 登录次数 +login_time int NULL NO 0 select,insert,update,references 当前登录时间 +create_time int NULL NO 0 select,insert,update,references 注册时间 +last_visit_time int NULL NO 0 select,insert,update,references 最后访问时间 +last_consum_time int NULL NO 0 select,insert,update,references 最后消费时间 +sex tinyint NULL NO 0 select,insert,update,references 性别 0保密 1男 2女 +status tinyint NULL NO 1 select,insert,update,references 用户状态 用户状态默认为1 +birthday varchar(20) utf8mb4_general_ci NO select,insert,update,references 出生日期 +point int NULL NO 0 select,insert,update,references 可用积分 +point_get int NULL NO 0 select,insert,update,references 累计获取积分 +balance decimal(10,2) NULL NO 0.00 select,insert,update,references 可用余额 +balance_get decimal(10,2) NULL NO 0.00 select,insert,update,references 累计获取余额 +money decimal(10,2) NULL NO 0.00 select,insert,update,references 可用余额(可提现) +money_get decimal(10,2) NULL NO 0.00 select,insert,update,references 累计获取余额(可提现) +money_cash_outing decimal(10,2) NULL NO 0.00 select,insert,update,references 提现中余额(可提现) +growth int NULL NO 0 select,insert,update,references 成长值 +growth_get int NULL NO 0 select,insert,update,references 累计获得成长值 +commission decimal(10,2) NULL NO 0.00 select,insert,update,references 当前佣金 +commission_get decimal(10,2) NULL NO 0.00 select,insert,update,references 佣金获取 +commission_cash_outing decimal(10,2) NULL NO 0.00 select,insert,update,references 提现中佣金 +is_member tinyint NULL NO 0 select,insert,update,references 是否是会员 +member_time int NULL NO 0 select,insert,update,references 成为会员时间 +is_del tinyint NULL NO 0 select,insert,update,references 0正常 1已删除 +province_id int NULL NO 0 select,insert,update,references 省id +city_id int NULL NO 0 select,insert,update,references 市id +district_id int NULL NO 0 select,insert,update,references 区县id +address varchar(255) utf8mb4_general_ci NO select,insert,update,references 详细地址 +location varchar(255) utf8mb4_general_ci NO select,insert,update,references 定位地址 +delete_time int NULL NO 0 select,insert,update,references 删除时间 +update_time int NULL NO 0 select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +1. **用户身份管理**: 存储会员基本信息(用户名、手机号、昵称、头像等) +2. **多平台登录支持**: 支持微信、支付宝、抖音等多平台账号绑定 +3. **积分与余额管理**: 管理用户积分、余额、佣金等财务数据 +4. **推广体系**: 支持会员推广关系管理(pid字段) +5. **用户等级管理**: 会员等级、标签、成长值等用户分层 +6. **地理位置管理**: 用户地址、定位信息存储 + +### 业务场景 +1. **用户注册登录**: 新用户注册、老用户多平台登录验证 +2. **会员权益管理**: 根据会员等级提供不同服务权益 +3. **积分商城**: 用户通过积分兑换课程或商品 +4. **推广营销**: 会员推广新用户获得佣金奖励 +5. **用户画像分析**: 基于用户行为数据进行精准营销 +6. **财务结算**: 用户余额充值、消费、提现等财务操作 + +## 关联关系 + +### 主要关联表 +1. **school_member_level**: 会员等级表(member_level字段关联) +2. **school_order**: 订单表(member_id关联) +3. **school_course_member**: 会员课程关联表 +4. **school_point_log**: 积分变动记录表 +5. **school_balance_log**: 余额变动记录表 +6. **school_commission_log**: 佣金记录表 +7. **sys_region**: 地区表(province_id, city_id, district_id关联) + +### 关联说明 +1. **推广关系**: pid字段形成会员推广树状结构 +2. **财务关联**: 与各种财务日志表关联,记录资金变动 +3. **课程关联**: 通过中间表与课程、班级等教学资源关联 +4. **地理关联**: 与地区表关联,支持按地区统计分析 +5. **等级关联**: 与会员等级表关联,实现会员分层管理 + +## 索引建议 +1. **主键索引**: member_id(已存在) +2. **唯一索引**: + - mobile(手机号唯一) + - username(用户名唯一) +3. **普通索引**: + - pid(推广查询) + - member_level(等级筛选) + - status(状态筛选) + - create_time(注册时间排序) + - last_visit_time(活跃度分析) +4. **复合索引**: + - (status, member_level)(状态+等级查询) + - (province_id, city_id, district_id)(地区查询) + +## 注意事项 +1. **数据安全**: password字段需要加密存储,不可明文 +2. **软删除**: 使用is_del字段实现软删除,保护历史数据 +3. **财务精度**: 所有金额字段使用decimal(10,2)确保精度 +4. **状态管理**: status字段控制用户可用性,需要业务逻辑配合 +5. **多平台openid**: 各平台openid字段需要做唯一性校验 +6. **积分余额**: 涉及财务的字段变更需要记录操作日志 +7. **推广关系**: pid字段变更需要重新计算推广层级关系 diff --git a/niucloud/databasedoc/school_member_account_log.md b/niucloud/databasedoc/school_member_account_log.md new file mode 100644 index 00000000..eb2fd66d --- /dev/null +++ b/niucloud/databasedoc/school_member_account_log.md @@ -0,0 +1,101 @@ +# school_member_account_log 表文档 + +## 表概述 +**表名**: school_member_account_log +**功能**: 会员账户日志表,负责记录会员账户的所有变动操作,包括积分、余额等账户数据的增减记录和审计追踪 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references +member_id int NULL NO 0 select,insert,update,references 用户id +account_type varchar(255) utf8mb4_general_ci NO point select,insert,update,references 账户类型 +account_data decimal(10,2) NULL NO 0.00 select,insert,update,references 账户数据 +account_sum decimal(10,2) NULL NO 0.00 select,insert,update,references 变动后的账户余额 +from_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 来源类型 +related_id varchar(50) utf8mb4_general_ci NO select,insert,update,references 关联Id +create_time int NULL NO 0 select,insert,update,references 创建时间 +memo varchar(255) utf8mb4_general_ci NO select,insert,update,references 备注信息 +``` + +## 功能用途 + +### 主要功能 +1. **账户变动记录**: 记录会员账户的所有变动操作 +2. **账户类型管理**: 支持多种账户类型(积分、余额等) +3. **变动金额跟踪**: 记录每次变动的具体金额 +4. **余额计算**: 记录变动后的账户余额 +5. **来源追踪**: 记录账户变动的来源类型 +6. **关联业务**: 通过关联ID关联具体的业务操作 +7. **操作备注**: 记录详细的操作说明和备注信息 +8. **时间记录**: 记录操作的准确时间 +9. **审计支持**: 提供完整的账户操作审计轨迹 + +### 业务场景 +- 会员充值时增加账户余额 +- 会员消费时扣减账户余额 +- 积分获得和消费记录 +- 会员退款时账户余额变动 +- 系统调账和账户纠错 +- 促销活动赠送积分或余额 +- 会员等级升级奖励 +- 推荐奖励和返利记录 +- 账户冻结和解冻操作 +- 财务对账和审计检查 + +## 关联关系 + +### 主要关联表 +1. **school_member**: 通过member_id关联会员信息 +2. **school_pay**: 通过related_id关联支付记录 +3. **school_order_table**: 通过related_id关联订单信息 +4. **school_contract**: 通过related_id关联合同记录 +5. **school_member_level**: 会员等级变动关联 +6. **school_member_sign**: 签到奖励关联 +7. **school_sys_user**: 操作人员关联 +8. **school_campus**: 校区操作关联 + +### 关联说明 +- **会员关联**: member_id关联会员基本信息和账户状态 +- **支付关联**: 充值、退款等操作关联支付记录 +- **订单关联**: 消费扣款关联具体订单 +- **合同关联**: 合同相关的账户操作 +- **等级关联**: 会员等级变动产生的奖励记录 +- **签到关联**: 签到获得的积分奖励 +- **操作关联**: 记录具体的操作人员 +- **校区关联**: 区分不同校区的账户操作 + +## 索引建议 +- **主键索引**: id(已存在) +- **外键索引**: member_id(会员账户查询) +- **业务索引**: + - account_type(账户类型查询) + - from_type(来源类型查询) + - related_id(关联业务查询) +- **复合索引**: + - (member_id, account_type)(会员特定账户查询) + - (member_id, create_time)(会员时间序列查询) + - (from_type, related_id)(来源业务查询) + - (account_type, create_time)(类型时间查询) +- **时间索引**: + - create_time(时间范围查询) +- **金额索引**: + - account_data(金额范围查询) + +## 注意事项 +1. **数据完整性**: 所有字段都不能为空,确保日志完整性 +2. **余额一致性**: account_sum必须与实际账户余额保持一致 +3. **账户类型**: account_type需要严格控制枚举值 +4. **金额精度**: 使用decimal(10,2)确保金额计算精度 +5. **时间戳**: create_time使用时间戳格式记录 +6. **只增不改**: 日志记录原则上只能新增,不能修改删除 +7. **关联有效性**: related_id必须关联有效的业务记录 +8. **来源追踪**: from_type必须明确标识变动来源 +9. **并发控制**: 账户操作需要防止并发冲突 +10. **备注规范**: memo字段应记录详细的操作说明 +11. **审计要求**: 满足财务审计的相关要求 +12. **数据备份**: 账户日志需要定期备份 +13. **性能优化**: 大量日志数据需要考虑查询性能 +14. **数据归档**: 历史日志数据需要定期归档 +15. **监控告警**: 异常账户变动需要及时告警 diff --git a/niucloud/databasedoc/school_member_address.md b/niucloud/databasedoc/school_member_address.md new file mode 100644 index 00000000..f45d5ebc --- /dev/null +++ b/niucloud/databasedoc/school_member_address.md @@ -0,0 +1,95 @@ +# school_member_address 表文档 + +## 表概述 +**表名**: school_member_address +**功能**: 会员地址管理表,用于存储和管理会员的收货地址信息,支持多地址管理、默认地址设置和地理位置定位 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references +member_id int NULL NO MUL 0 select,insert,update,references 会员id +name varchar(255) utf8mb4_general_ci NO select,insert,update,references 用户姓名 +mobile varchar(255) utf8mb4_general_ci NO select,insert,update,references 手机 +province_id int NULL NO 0 select,insert,update,references 省id +city_id int NULL NO 0 select,insert,update,references 市id +district_id int NULL NO 0 select,insert,update,references 区县id +address varchar(255) utf8mb4_general_ci NO select,insert,update,references 地址信息 +address_name varchar(255) utf8mb4_general_ci NO select,insert,update,references +full_address varchar(255) utf8mb4_general_ci NO select,insert,update,references 详细地址信息 +lng varchar(255) utf8mb4_general_ci NO select,insert,update,references 经度 +lat varchar(255) utf8mb4_general_ci NO select,insert,update,references 纬度 +is_default tinyint NULL NO 0 select,insert,update,references 是否是默认地址 +``` + +## 功能用途 + +### 主要功能 +- **多地址管理**: 支持会员添加和管理多个收货地址 +- **默认地址设置**: 通过is_default字段设置和管理默认收货地址 +- **地理位置定位**: 存储地址的经纬度信息,支持地图定位和距离计算 +- **行政区划管理**: 通过省市区三级联动管理地址的行政区划 +- **联系信息存储**: 存储收货人姓名和联系电话 +- **详细地址记录**: 支持完整的地址信息存储,包括门牌号等详细信息 +- **地址验证**: 支持地址信息的完整性和准确性验证 +- **快速选择**: 为会员提供快速选择常用地址的功能 + +### 业务场景 +- **商品配送**: 为会员购买的教材、用品等商品提供配送地址 +- **证书邮寄**: 为学员的毕业证书、结业证书等提供邮寄地址 +- **活动物料**: 为线上活动的奖品、礼品等提供收货地址 +- **教学用品**: 为在线课程的教学用品、学习资料等提供配送服务 +- **紧急联系**: 在紧急情况下作为会员的联系地址 +- **就近服务**: 基于地理位置为会员推荐就近的校区或服务点 +- **区域分析**: 分析会员的地理分布,优化服务布局 +- **物流优化**: 基于地址信息优化配送路线和成本 + +## 关联关系 + +### 主要关联表 +- **school_member**: 会员表,通过member_id关联会员基本信息 +- **school_sys_area**: 地区表,通过province_id、city_id、district_id关联行政区划 +- **school_order**: 订单表,关联订单的收货地址信息 +- **school_delivery**: 配送表,关联配送记录和地址信息 +- **school_campus**: 校区表,用于计算最近校区和服务范围 + +### 关联说明 +- `member_id` 关联 `school_member.id`,标识地址所属的会员 +- `province_id`、`city_id`、`district_id` 关联地区表,获取完整的行政区划信息 +- 与订单系统关联,为订单提供准确的收货地址 +- 与配送系统关联,支持物流配送和跟踪 +- 与校区系统关联,计算会员与各校区的距离 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 会员索引(用于查询会员的所有地址) +INDEX idx_member_id (member_id) + +-- 默认地址索引(用于快速查找默认地址) +INDEX idx_member_default (member_id, is_default) + +-- 省市区索引(用于地区统计) +INDEX idx_province_city_district (province_id, city_id, district_id) + +-- 手机号索引(用于联系方式查询) +INDEX idx_mobile (mobile) + +-- 地理位置索引(用于位置查询) +INDEX idx_location (lng, lat) +``` + +## 注意事项 +- **默认地址唯一性**: 每个会员只能有一个默认地址,设置新默认地址时需要取消其他地址的默认状态 +- **地址完整性**: 确保地址信息的完整性,包括省市区和详细地址 +- **联系方式验证**: 验证手机号格式的正确性和有效性 +- **地理坐标精度**: 经纬度信息应保证足够精度,支持准确的位置计算 +- **数据同步**: 地址变更时需要同步更新相关订单和配送信息 +- **隐私保护**: 地址信息涉及用户隐私,需要严格的访问控制 +- **地址验证**: 建议集成地址验证服务,确保地址的真实性 +- **存储优化**: 对于大量地址数据,考虑分表或分区策略 +- **缓存策略**: 常用地址信息可以适当缓存,提高查询效率 +- **数据清理**: 定期清理无效或重复的地址信息 diff --git a/niucloud/databasedoc/school_member_cash_out.md b/niucloud/databasedoc/school_member_cash_out.md new file mode 100644 index 00000000..a01ba8db --- /dev/null +++ b/niucloud/databasedoc/school_member_cash_out.md @@ -0,0 +1,110 @@ +# school_member_cash_out 表文档 + +## 表概述 +**表名**: school_member_cash_out +**功能**: 会员提现管理表,用于管理会员的资金提现申请和处理流程,包括提现申请、审核、转账、状态跟踪等完整的提现业务流程,支持多种提现方式和账户类型,为会员资金管理和财务结算提供完整的提现服务 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +cash_out_no varchar(50) utf8mb4_general_ci NO select,insert,update,references 提现交易号 +member_id int NULL NO 0 select,insert,update,references 会员id +account_type varchar(255) utf8mb4_general_ci NO money select,insert,update,references 提现账户类型 +transfer_type varchar(20) utf8mb4_general_ci NO 0 select,insert,update,references 转账提现类型 +transfer_realname varchar(50) utf8mb4_general_ci NO select,insert,update,references 联系人名称 +transfer_mobile varchar(11) utf8mb4_general_ci NO select,insert,update,references 手机号 +transfer_bank varchar(255) utf8mb4_general_ci NO select,insert,update,references 银行名称 +transfer_account varchar(255) utf8mb4_general_ci NO select,insert,update,references 收款账号 +transfer_payee varchar(255) utf8mb4_general_ci NO select,insert,update,references 转账收款方(json),主要用于对接在线的打款方式 +transfer_payment_code varchar(500) utf8mb4_general_ci NO select,insert,update,references 收款码图片 +transfer_fail_reason varchar(255) utf8mb4_general_ci NO select,insert,update,references 失败原因 +transfer_status varchar(20) utf8mb4_general_ci NO select,insert,update,references 转账状态 +transfer_time int NULL NO 0 select,insert,update,references 转账时间 +apply_money decimal(10,2) NULL NO 0.00 select,insert,update,references 提现申请金额 +rate decimal(10,2) NULL NO 0.00 select,insert,update,references 提现手续费比率 +service_money decimal(10,2) NULL NO 0.00 select,insert,update,references 提现手续费 +money decimal(10,2) NULL NO 0.00 select,insert,update,references 提现到账金额 +audit_time int NULL NO 0 select,insert,update,references 审核时间 +status int NULL NO 0 select,insert,update,references 状态1待审核2.待转账3已转账 -1拒绝 -2 已取消 +remark varchar(255) utf8mb4_general_ci NO select,insert,update,references 备注 +create_time int NULL NO 0 select,insert,update,references 申请时间 +refuse_reason varchar(255) utf8mb4_general_ci NO select,insert,update,references 拒绝理由 +update_time int NULL NO 0 select,insert,update,references +transfer_no varchar(50) utf8mb4_general_ci NO select,insert,update,references 转账单号 +cancel_time int NULL NO 0 select,insert,update,references 取消时间 +final_transfer_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 转账方式 +``` + +## 功能用途 + +### 主要功能 +- **会员提现申请管理**: 处理会员的提现申请,包括申请金额、手续费计算等 +- **提现账户信息管理**: 管理提现的收款账户信息(银行卡、支付宝、微信等) +- **提现流程控制**: 管理提现的完整流程(申请→审核→转账→完成) +- **提现状态跟踪**: 实时跟踪提现状态变化和处理进度 +- **手续费计算**: 根据提现金额和费率计算手续费,确定实际到账金额 +- **转账记录管理**: 记录转账操作的详细信息和结果 +- **审核机制**: 支持人工审核,防范风险和异常提现 +- **失败处理**: 记录提现失败原因,支持重新处理 +- **取消机制**: 支持用户主动取消提现申请 + +### 业务场景 +- **会员余额提现**: 会员将账户余额提现到银行卡或第三方支付账户 +- **佣金提现**: 推广员或代理商提现佣金收入 +- **退费提现**: 课程退费后的资金提现 +- **批量提现处理**: 财务人员批量处理提现申请 +- **提现审核**: 风控人员审核大额或异常提现申请 +- **自动转账**: 系统自动处理符合条件的提现申请 +- **提现对账**: 与银行或第三方支付平台进行提现对账 +- **提现统计**: 生成提现相关的财务报表和统计数据 + +## 关联关系 + +### 主要关联表 +- `school_member`: 会员信息表 (member_id) +- `school_member_cash_out_account`: 提现账户表 (通过member_id和账户信息关联) +- `school_member_account`: 会员账户表 (member_id) +- `school_pay`: 支付记录表 (通过业务关联) +- `school_sys_user`: 系统用户表 (审核人员信息) +- `school_member_account_log`: 账户流水表 (资金变动记录) + +### 关联说明 +- **会员关联**: member_id关联会员基本信息,确定提现申请人 +- **账户关联**: 与会员账户表关联,验证可提现余额 +- **收款账户**: 通过账户类型和账户信息关联具体的收款方式 +- **资金流水**: 提现成功后在账户流水表中记录资金变动 +- **审核关联**: 审核操作可能关联系统用户信息 +- **支付关联**: 提现可能涉及原始支付记录的关联 + +## 索引建议 +- **主键索引**: id (已存在) +- **唯一索引**: cash_out_no (提现交易号唯一性) +- **外键索引**: member_id (会员查询) +- **状态索引**: status (状态查询) +- **时间索引**: + - create_time (申请时间查询) + - audit_time (审核时间查询) + - transfer_time (转账时间查询) +- **复合索引**: + - (member_id, status) (会员提现状态查询) + - (status, create_time) (状态时间查询) + - (transfer_status, transfer_time) (转账状态时间查询) + - (account_type, status) (账户类型状态查询) + +## 注意事项 +- **金额精度**: 所有金额字段使用decimal(10,2),确保财务计算精度 +- **状态流转**: 提现状态有严格的流转规则,不能随意跳跃 +- **余额验证**: 提现前必须验证会员账户余额是否充足 +- **手续费计算**: 手续费计算必须准确,避免财务差错 +- **账户安全**: 收款账户信息需要验证真实性和有效性 +- **审核机制**: 大额提现或异常提现必须人工审核 +- **时间逻辑**: 各个时间字段的逻辑关系必须正确 +- **失败处理**: 提现失败时必须记录详细原因,便于问题排查 +- **取消限制**: 已审核或已转账的提现不能取消 +- **重复申请**: 防止同一笔资金重复申请提现 +- **数据一致性**: 提现成功后必须同步更新会员账户余额 +- **日志记录**: 所有提现操作都应该有详细的日志记录 +- **风控规则**: 建立完善的风控规则,防范异常提现 +- **对账机制**: 定期与银行或第三方支付平台进行对账 diff --git a/niucloud/databasedoc/school_member_cash_out_account.md b/niucloud/databasedoc/school_member_cash_out_account.md new file mode 100644 index 00000000..a9566299 --- /dev/null +++ b/niucloud/databasedoc/school_member_cash_out_account.md @@ -0,0 +1,74 @@ +# school_member_cash_out_account 表文档 + +## 表概述 +**表名**: school_member_cash_out_account +**功能**: 会员提现账户管理表,用于存储和管理会员的提现账户信息,支持多种账户类型和支付方式,为会员资金提现提供安全可靠的账户管理服务 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +account_id int NULL NO PRI NULL auto_increment select,insert,update,references +member_id int NULL NO 0 select,insert,update,references 会员id +account_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 账户类型 +bank_name varchar(255) utf8mb4_general_ci NO select,insert,update,references 银行名称 +realname varchar(255) utf8mb4_general_ci NO select,insert,update,references 真实名称 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 修改时间 +account_no varchar(255) utf8mb4_general_ci NO select,insert,update,references 提现账户 +transfer_payment_code varchar(255) utf8mb4_general_ci NO select,insert,update,references 收款码 +``` + +## 功能用途 + +### 主要功能 +- **提现账户管理**: 存储会员的提现账户信息,支持多种账户类型 +- **银行账户绑定**: 管理会员绑定的银行卡信息,包括银行名称、账户号码 +- **收款码管理**: 支持移动支付收款码的存储和管理 +- **实名认证**: 记录账户持有人的真实姓名信息 +- **账户安全**: 提供账户创建和修改的时间追踪 + +### 业务场景 +- **会员提现申请**: 会员申请提现时选择已绑定的提现账户 +- **多账户管理**: 支持会员绑定多个不同类型的提现账户 +- **风控审核**: 提现审核时验证账户信息的真实性和有效性 +- **财务结算**: 财务人员根据账户信息进行资金转账操作 +- **账户变更**: 会员可以修改或更新已绑定的账户信息 + +## 关联关系 + +### 主要关联表 +- **school_member**: 通过member_id关联会员基础信息 +- **school_member_cash_out**: 关联具体的提现申请记录 +- **school_pay**: 可能关联支付相关的账户验证 + +### 关联说明 +- `member_id` → `school_member.member_id`: 一对多关系,一个会员可以有多个提现账户 +- 与提现申请表形成业务关联,提现时选择对应的账户信息 +- 支持账户类型的扩展,适应不同的支付方式需求 + +## 索引建议 +```sql +-- 主键索引(已存在) +PRIMARY KEY (account_id) + +-- 会员账户查询索引 +INDEX idx_member_id (member_id) + +-- 账户类型查询索引 +INDEX idx_account_type (account_type) + +-- 复合索引:会员+账户类型 +INDEX idx_member_account_type (member_id, account_type) + +-- 创建时间索引 +INDEX idx_create_time (create_time) +``` + +## 注意事项 +- **数据安全**: 银行账户信息属于敏感数据,需要加密存储 +- **实名验证**: 真实姓名必须与银行账户持有人一致 +- **账户唯一性**: 同一会员的同类型账户应避免重复绑定 +- **状态管理**: 建议增加账户状态字段(启用/禁用) +- **审核机制**: 新增账户应经过审核验证后才能用于提现 +- **日志记录**: 账户信息的修改应记录详细的操作日志 diff --git a/niucloud/databasedoc/school_member_label.md b/niucloud/databasedoc/school_member_label.md new file mode 100644 index 00000000..d887cda0 --- /dev/null +++ b/niucloud/databasedoc/school_member_label.md @@ -0,0 +1,95 @@ +# school_member_label 表文档 + +## 表概述 +**表名**: school_member_label +**功能**: 会员标签管理表,负责管理教务系统中的会员标签分类,包括标签创建、分类管理、排序设置等会员分组和标识功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +label_id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 标签id +label_name varchar(50) utf8mb4_general_ci NO select,insert,update,references 标签名称 +memo varchar(1000) utf8mb4_general_ci NO select,insert,update,references 备注 +sort int NULL NO 0 select,insert,update,references 排序 +create_time int NULL NO 0 select,insert,update,references 添加时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **标签创建管理**: 创建和管理各种会员标签类型 +- **标签分类**: 对会员进行分类标识和管理 +- **排序控制**: 设置标签的显示顺序和优先级 +- **标签描述**: 提供标签的详细说明和备注信息 +- **标签维护**: 支持标签的修改、删除和更新操作 +- **标签统计**: 统计各标签下的会员数量 +- **标签筛选**: 支持基于标签的会员筛选和查询 +- **标签应用**: 为会员分配和移除标签 +- **标签权限**: 控制标签的使用权限和可见性 + +### 业务场景 +- **会员分组**: 根据不同特征对会员进行分组管理 +- **营销活动**: 基于标签进行精准营销和推广 +- **课程推荐**: 根据会员标签推荐合适的课程 +- **权益管理**: 为不同标签的会员提供差异化权益 +- **数据分析**: 基于标签进行会员行为分析 +- **客户服务**: 根据标签提供个性化服务 +- **活动报名**: 限制特定标签会员参与活动 +- **消息推送**: 向特定标签会员推送消息 +- **会员筛选**: 在各种业务场景中筛选目标会员 + +## 关联关系 + +### 主要关联表 +- `school_member`: 会员信息表 (标签关联) +- `school_member_label_relation`: 会员标签关系表 (多对多关联) +- `school_diy_form_write_config`: 表单配置表 (标签筛选) +- `school_course`: 课程表 (课程推荐) +- `school_activity`: 活动表 (活动参与限制) +- `school_message`: 消息表 (消息推送) +- `school_personnel`: 人员表 (标签管理权限) +- `sys_log`: 系统日志表 (标签操作日志) + +### 关联说明 +- **会员关联**: 通过关系表与会员信息建立多对多关联 +- **表单关联**: 在表单配置中用于筛选参与人员 +- **课程关联**: 基于标签进行课程推荐和限制 +- **活动关联**: 控制活动的参与人员范围 +- **消息关联**: 实现精准的消息推送和通知 +- **权限关联**: 控制标签的创建和管理权限 +- **日志关联**: 记录标签的操作和变更历史 +- **业务关联**: 在各种业务场景中作为筛选条件 + +## 索引建议 +- **主键索引**: label_id (已存在) +- **唯一索引**: label_name (标签名称唯一) +- **业务索引**: + - sort (排序查询) + - create_time (创建时间查询) + - update_time (更新时间查询) +- **复合索引**: + - (sort, create_time) (排序时间查询) +- **全文索引**: + - label_name (标签名称搜索) + - memo (备注内容搜索) + +## 注意事项 +- **标签名称唯一性**: label_name必须保持唯一,避免重复标签 +- **排序值管理**: sort字段需要合理设置,避免排序冲突 +- **标签删除检查**: 删除标签前需要检查是否有会员关联 +- **备注信息完整性**: memo字段应提供清晰的标签说明 +- **标签层级**: 如需要层级结构,需要扩展表结构 +- **标签数量控制**: 避免创建过多无用标签影响管理 +- **权限控制**: 标签的创建和修改需要适当的权限控制 +- **标签应用**: 标签分配给会员时需要验证标签有效性 +- **数据一致性**: 标签修改时需要同步更新相关业务 +- **性能考虑**: 大量标签时需要考虑查询性能 +- **标签规范**: 建立标签命名和使用规范 +- **定期清理**: 定期清理无用或过期的标签 +- **标签统计**: 定期统计标签使用情况和效果 +- **备份恢复**: 重要标签配置需要备份 +- **版本控制**: 标签变更需要记录历史版本 +- **国际化**: 多语言环境下标签名称的处理 +- **缓存策略**: 频繁使用的标签可以缓存提升性能 diff --git a/niucloud/databasedoc/school_member_level.md b/niucloud/databasedoc/school_member_level.md new file mode 100644 index 00000000..a84c6bd3 --- /dev/null +++ b/niucloud/databasedoc/school_member_level.md @@ -0,0 +1,98 @@ +# school_member_level 表文档 + +## 表概述 +**表名**: school_member_level +**功能**: 会员等级管理表,负责管理教务系统中的会员等级体系、成长值要求、等级权益、等级礼包等会员激励机制 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +level_id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 会员等级 +level_name varchar(50) utf8mb4_general_ci NO select,insert,update,references 等级名称 +growth int NULL NO 0 select,insert,update,references 所需成长值 +remark varchar(255) utf8mb4_general_ci NO select,insert,update,references 备注 +status int NULL NO 1 select,insert,update,references 状态 0已禁用1已启用 +create_time int NULL NO 0 select,insert,update,references 添加时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +level_benefits text utf8mb4_general_ci YES NULL select,insert,update,references 等级权益 +level_gifts text utf8mb4_general_ci YES NULL select,insert,update,references 等级礼包 +``` + +## 功能用途 + +### 主要功能 +- **等级体系管理**: 建立完整的会员等级体系和等级名称 +- **成长值设定**: 设定各等级所需的成长值门槛 +- **等级权益管理**: 配置不同等级享有的权益和特权 +- **等级礼包配置**: 设置等级升级时的奖励礼包 +- **等级状态控制**: 管理等级的启用和禁用状态 +- **等级排序**: 支持等级的排序和层级管理 +- **权益差异化**: 实现不同等级的差异化服务 +- **激励机制**: 通过等级体系激励会员消费和活跃 +- **等级备注**: 支持等级说明和备注信息 + +### 业务场景 +- **会员注册**: 新会员默认分配初始等级 +- **等级升级**: 会员达到成长值要求时自动升级 +- **权益享受**: 会员根据等级享受相应权益和服务 +- **礼包发放**: 等级升级时自动发放等级礼包 +- **营销活动**: 基于等级开展差异化营销活动 +- **服务定价**: 不同等级享受不同的服务价格 +- **客户维护**: 通过等级体系维护高价值客户 +- **数据分析**: 分析不同等级会员的行为和价值 +- **等级调整**: 根据业务需要调整等级体系 + +## 关联关系 + +### 主要关联表 +- `school_member`: 会员信息表 (会员等级关联) +- `school_member_account_log`: 会员账户日志表 (成长值变化记录) +- `school_order_table`: 订单表 (消费产生成长值) +- `school_contract`: 合同表 (签约产生成长值) +- `school_pay`: 支付表 (支付产生成长值) +- `school_member_sign`: 会员签到表 (签到产生成长值) +- `school_course`: 课程表 (等级享受课程优惠) +- `school_gift`: 赠品表 (等级礼包关联) + +### 关联说明 +- **会员关联**: 会员表中的level_id字段关联此表的level_id +- **成长值关联**: 会员的各种行为产生成长值,影响等级升级 +- **消费关联**: 订单、合同、支付等消费行为产生成长值 +- **活跃关联**: 签到、学习等活跃行为产生成长值 +- **权益关联**: 等级权益影响课程价格、服务质量等 +- **礼包关联**: 等级升级时发放相应的礼品和优惠 +- **营销关联**: 等级信息用于精准营销和客户分层 + +## 索引建议 +- **主键索引**: level_id (已存在) +- **唯一索引**: + - level_name (等级名称唯一) + - growth (成长值唯一,避免重复门槛) +- **业务索引**: + - status (状态查询) + - sort (排序查询) +- **复合索引**: + - (status, sort) (有效等级排序查询) + - (growth, status) (成长值门槛查询) +- **时间索引**: + - create_time (创建时间查询) + - update_time (更新时间查询) + +## 注意事项 +- **等级唯一性**: level_name必须唯一,避免等级名称重复 +- **成长值递增**: growth值应该递增设置,确保等级层次合理 +- **成长值唯一**: 同一成长值不能对应多个等级 +- **状态控制**: 禁用等级时需要考虑现有会员的处理 +- **权益格式**: level_benefits字段建议使用JSON格式存储 +- **礼包格式**: level_gifts字段建议使用JSON格式存储 +- **等级排序**: sort字段用于控制等级显示顺序 +- **数据完整性**: 删除等级前需要检查是否有会员使用 +- **升级逻辑**: 会员成长值达到门槛时需要自动升级 +- **降级处理**: 需要考虑是否支持等级降级机制 +- **权益兑现**: 等级权益需要在相关业务中实际生效 +- **礼包发放**: 等级升级时需要自动发放对应礼包 +- **历史记录**: 建议记录会员等级变更历史 +- **缓存策略**: 等级信息变更频率低,适合缓存 +- **权限控制**: 等级配置需要严格的权限控制 +- **数据备份**: 等级配置是核心业务数据,需要定期备份 diff --git a/niucloud/databasedoc/school_member_sign.md b/niucloud/databasedoc/school_member_sign.md new file mode 100644 index 00000000..a5826c01 --- /dev/null +++ b/niucloud/databasedoc/school_member_sign.md @@ -0,0 +1,101 @@ +# school_member_sign 表文档 + +## 表概述 +**表名**: school_member_sign +**功能**: 会员签到记录表,负责管理教务系统中的会员签到功能,包括签到记录、签到统计、连续签到、签到奖励等会员活跃度管理功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +sign_id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references +member_id int NULL NO 0 select,insert,update,references 会员id +days int NULL NO 0 select,insert,update,references 连续签到天数 +day_award varchar(255) utf8mb4_general_ci NO select,insert,update,references 日签奖励 +continue_award varchar(255) utf8mb4_general_ci NO select,insert,update,references 连签奖励 +continue_tag varchar(30) utf8mb4_general_ci NO select,insert,update,references 连签奖励标识 +create_time int NULL NO 0 select,insert,update,references 签到时间 +start_time int NULL NO 0 select,insert,update,references 签到周期开始时间 +is_sign tinyint(1) NULL NO 0 select,insert,update,references 是否签到(0未签到 1已签到) +``` + +## 功能用途 + +### 主要功能 +- **签到记录**: 记录会员每日签到情况和时间 +- **签到统计**: 统计会员的签到次数和频率 +- **连续签到**: 计算和记录会员连续签到天数 +- **签到奖励**: 根据签到情况发放积分或奖励 +- **签到提醒**: 提醒会员进行每日签到 +- **签到历史**: 查看会员的历史签到记录 +- **签到排行**: 展示签到排行榜和活跃度排名 +- **补签功能**: 支持会员补签漏签的日期 +- **签到验证**: 验证签到的有效性和防作弊 +- **签到分析**: 分析会员签到行为和活跃度 + +### 业务场景 +- **会员活跃**: 通过签到提升会员活跃度和粘性 +- **积分获取**: 会员通过签到获得积分奖励 +- **习惯养成**: 培养会员定期访问的习惯 +- **数据分析**: 分析会员活跃度和使用频率 +- **营销活动**: 基于签到数据开展营销活动 +- **会员等级**: 签到作为会员等级提升的条件 +- **课程提醒**: 结合签到提醒会员上课 +- **社区建设**: 通过签到增强社区氛围 +- **用户留存**: 提高用户留存率和回访率 + +## 关联关系 + +### 主要关联表 +- `school_member`: 会员信息表 (签到用户) +- `school_member_account_log`: 会员账户日志表 (签到奖励) +- `school_member_sign_config`: 签到配置表 (签到规则) +- `school_course`: 课程表 (课程签到) +- `school_class`: 班级表 (班级签到) +- `school_activity`: 活动表 (活动签到) +- `school_message`: 消息表 (签到提醒) +- `sys_log`: 系统日志表 (签到日志) + +### 关联说明 +- **会员关联**: 记录具体会员的签到行为和数据 +- **账户关联**: 签到奖励通过账户日志记录积分变化 +- **配置关联**: 根据签到配置执行签到规则和奖励 +- **课程关联**: 课程相关的签到记录和统计 +- **班级关联**: 班级成员的签到情况统计 +- **活动关联**: 活动期间的特殊签到要求 +- **消息关联**: 发送签到提醒和奖励通知 +- **日志关联**: 记录签到操作的详细日志 +- **业务关联**: 与各种业务场景的签到需求关联 + +## 索引建议 +- **主键索引**: sign_id (已存在) +- **业务索引**: + - member_id (会员查询) + - sign_date (签到日期查询) + - create_time (创建时间查询) + - continuous_days (连续天数查询) +- **复合索引**: + - (member_id, sign_date) (会员签到记录查询) + - (member_id, create_time) (会员签到历史) + - (sign_date, create_time) (日期时间查询) +- **唯一索引**: + - (member_id, sign_date) (防止重复签到) + +## 注意事项 +- **重复签到防护**: 同一会员同一天只能签到一次 +- **时间有效性**: 签到时间需要在有效的时间范围内 +- **连续天数计算**: 连续签到天数的计算逻辑要准确 +- **时区处理**: 跨时区用户的签到时间处理 +- **补签限制**: 补签功能需要设置合理的时间限制 +- **奖励发放**: 签到奖励的发放需要保证准确性 +- **数据一致性**: 签到记录与奖励记录保持一致 +- **性能优化**: 大量签到数据的查询性能优化 +- **防作弊机制**: 防止恶意刷签到的安全措施 +- **数据清理**: 定期清理过期的签到数据 +- **统计准确性**: 签到统计数据的准确性验证 +- **异常处理**: 处理签到过程中的各种异常情况 +- **缓存策略**: 签到状态和统计数据的缓存 +- **并发控制**: 高并发签到时的数据一致性 +- **历史数据**: 长期签到历史数据的存储策略 +- **备份恢复**: 重要签到数据的备份和恢复 +- **监控告警**: 签到异常情况的监控和告警 diff --git a/niucloud/databasedoc/school_order_table.md b/niucloud/databasedoc/school_order_table.md new file mode 100644 index 00000000..d4570d44 --- /dev/null +++ b/niucloud/databasedoc/school_order_table.md @@ -0,0 +1,118 @@ +# school_order_table 表文档 + +## 表概述 +**表名**: school_order_table +**功能**: 订单信息管理表,负责管理教务系统中的所有订单信息,包括新订单、续费订单、转校订单等各种类型的订单处理 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 订单编号 +payment_id varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 支付编号 +order_type varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 订单类型1新订单2续费订单3内部员工订单4 转校 5 客户内转课订单 +order_status enum('pending','paid','signed','completed','transfer') utf8mb4_general_ci YES pending select,insert,update,references 订单状态: pending-待支付, paid-已支付,signed待签约,completed已完成,transfer转学 +payment_type enum('cash','scan_code','subscription','wxpay_online') utf8mb4_general_ci NO NULL select,insert,update,references 付款类型: cash-现金支付, scan_code-扫码支付, subscription-订阅支付, wxpay_online-微信在线代付 +order_amount decimal(10,2) NULL NO NULL select,insert,update,references 订单金额 +course_id int NULL NO NULL select,insert,update,references 课程ID +class_id int NULL YES NULL select,insert,update,references 班级ID +staff_id int NULL NO NULL select,insert,update,references 人员ID|员工表school_personnel.id +resource_id int NULL NO NULL select,insert,update,references 资源ID|客户资源表school_customer_resources.id +after_sales_status varchar(50) utf8mb4_general_ci YES NULL select,insert,update,references 售后状态 +after_sales_reason text utf8mb4_general_ci YES NULL select,insert,update,references 售后原因 +after_sales_time timestamp NULL YES NULL select,insert,update,references 售后时间 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +payment_time timestamp NULL YES NULL select,insert,update,references 支付时间 +subscription_payment_time timestamp NULL YES NULL select,insert,update,references 订阅支付生成时间 +ipv3 varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references +accounting_time timestamp NULL YES NULL select,insert,update,references 核算时间 +campus_id int NULL NO NULL select,insert,update,references 校区ID +gift_id int NULL YES NULL select,insert,update,references 赠品 id +discount_amount decimal(10,2) NULL YES NULL select,insert,update,references 优惠金额 +course_plan_id int NULL YES NULL select,insert,update,references 课程计划 id +student_id int NULL NO NULL select,insert,update,references 学员 id +remark varchar(512) utf8mb4_general_ci YES NULL select,insert,update,references 订单备注 +contract_id int NULL YES NULL select,insert,update,references 合同 id +gift_type tinyint NULL YES NULL select,insert,update,references 赠品使用类型 1 减现2 赠课 +``` + +## 功能用途 + +### 主要功能 +- **订单生命周期管理**: 管理从订单创建到完成的全流程状态跟踪 +- **多类型订单支持**: 支持新订单、续费订单、内部员工订单、转校订单、客户内转课订单 +- **支付管理**: 关联支付信息,支持多种支付方式(现金、扫码、订阅、微信在线代付) +- **课程订单关联**: 建立订单与课程、班级的关联关系 +- **售后服务管理**: 处理订单售后状态、原因和时间记录 +- **财务核算**: 订单金额、优惠金额、核算时间等财务相关信息管理 +- **赠品管理**: 支持赠品关联和赠品类型管理(减现、赠课) +- **合同关联**: 订单与合同的关联管理 + +### 业务场景 +- **订单创建**: 学员报名时创建新订单,记录课程、金额、支付方式等信息 +- **续费管理**: 处理学员续费订单,延续学习服务 +- **转校业务**: 处理学员转校相关的订单和费用结算 +- **内部订单**: 处理员工内部订单,可能享受特殊优惠政策 +- **支付处理**: 跟踪订单支付状态,从待支付到已支付的状态流转 +- **售后服务**: 处理退费、换课等售后需求 +- **财务结算**: 进行订单核算,生成财务报表 +- **营销活动**: 通过赠品和优惠金额支持各种营销活动 + +## 关联关系 + +### 主要关联表 +- `school_course`: 课程信息表 (course_id) +- `school_class`: 班级信息表 (class_id) +- `school_personnel`: 人员信息表 (staff_id) +- `school_customer_resources`: 客户资源表 (resource_id) +- `school_campus`: 校区信息表 (campus_id) +- `school_member`: 学员信息表 (student_id) +- `school_contract`: 合同信息表 (contract_id) +- `school_pay`: 支付信息表 (payment_id) +- `school_course_plan`: 课程计划表 (course_plan_id) +- `school_gift`: 赠品信息表 (gift_id) + +### 关联说明 +- **课程关联**: 通过course_id关联具体课程,class_id关联具体班级 +- **人员关联**: staff_id关联处理订单的员工,student_id关联购买的学员 +- **支付关联**: payment_id关联支付记录,跟踪支付状态和支付方式 +- **合同关联**: contract_id关联生成的合同,建立订单与合同的对应关系 +- **校区关联**: campus_id确定订单所属校区,用于区域化管理 +- **资源关联**: resource_id关联客户资源,跟踪订单来源 +- **赠品关联**: gift_id关联赠品信息,支持营销活动 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: + - course_id (课程查询) + - class_id (班级查询) + - staff_id (员工订单查询) + - student_id (学员订单查询) + - campus_id (校区订单查询) + - contract_id (合同关联查询) +- **状态索引**: order_status (订单状态查询) +- **时间索引**: + - created_at (创建时间查询) + - payment_time (支付时间查询) + - accounting_time (核算时间查询) +- **复合索引**: + - (student_id, order_status) (学员订单状态查询) + - (campus_id, created_at) (校区订单时间查询) + - (order_type, order_status) (订单类型状态查询) + - (payment_type, order_status) (支付方式状态查询) + +## 注意事项 +- **金额精度**: order_amount和discount_amount使用decimal(10,2),确保财务计算精度 +- **状态流转**: 订单状态有严格的流转规则,不能随意跳跃状态 +- **支付关联**: payment_id可能为空,表示未关联支付记录的订单 +- **订单类型**: order_type决定了订单的处理流程和业务逻辑 +- **售后处理**: 售后状态、原因、时间需要同步更新,保持数据一致性 +- **时间逻辑**: 支付时间不能早于创建时间,核算时间不能早于支付时间 +- **校区归属**: 订单必须归属于特定校区,不能为空 +- **学员关联**: student_id不能为空,每个订单必须有明确的学员 +- **合同生成**: 订单状态为signed时,应该有对应的contract_id +- **赠品逻辑**: gift_type和gift_id需要配套使用,确保赠品逻辑正确 +- **优惠计算**: 实际支付金额 = order_amount - discount_amount +- **数据完整性**: 删除订单时需要考虑关联数据的处理 +- **权限控制**: 不同角色对订单的操作权限需要严格控制 diff --git a/niucloud/databasedoc/school_pay.md b/niucloud/databasedoc/school_pay.md new file mode 100644 index 00000000..14f2d152 --- /dev/null +++ b/niucloud/databasedoc/school_pay.md @@ -0,0 +1,108 @@ +# school_pay 表文档 + +## 表概述 +**表名**: school_pay +**功能**: 支付信息管理表,负责管理教务系统中的所有支付记录,包括支付流水、支付状态、支付方式等核心支付信息 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 主键 +main_id int NULL NO 0 select,insert,update,references 支付会员id +from_main_id int NULL NO 0 select,insert,update,references 发起支付会员id +out_trade_no varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付流水号 +trade_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 业务类型 +trade_id int NULL NO 0 select,insert,update,references 业务id +trade_no varchar(255) utf8mb4_general_ci NO select,insert,update,references 交易单号 +body varchar(1000) utf8mb4_general_ci NO select,insert,update,references 支付主体 +money decimal(10,2) NULL NO NULL select,insert,update,references 支付金额 +voucher varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付票据 +status int NULL NO 0 select,insert,update,references 支付状态(0.待支付 1. 支付中 2. 已支付 -1已取消) +json varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付扩展用支付信息 +create_time int NULL NO 0 select,insert,update,references 创建时间 +pay_time int NULL NO 0 select,insert,update,references 支付时间 +cancel_time int NULL NO 0 select,insert,update,references 关闭时间 +type varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付方式 +mch_id varchar(50) utf8mb4_general_ci NO select,insert,update,references 商户收款账号 +main_type varchar(255) utf8mb4_general_ci NO select,insert,update,references +channel varchar(50) utf8mb4_general_ci NO select,insert,update,references 支付渠道 +fail_reason varchar(255) utf8mb4_general_ci NO select,insert,update,references 失败原因 +``` + +## 功能用途 + +### 主要功能 +- **支付流水管理**: 生成和管理唯一的支付流水号,确保支付记录可追溯 +- **多业务类型支持**: 支持不同业务类型的支付处理(订单支付、充值等) +- **支付状态跟踪**: 实时跟踪支付状态(待支付、支付中、已支付、已取消) +- **多支付方式**: 支持多种支付渠道和支付方式 +- **代付功能**: 支持发起支付会员和实际支付会员的分离管理 +- **支付票据管理**: 管理支付凭证和票据信息 +- **商户账号管理**: 管理不同的商户收款账号 +- **支付时间记录**: 记录支付创建、完成、取消等关键时间节点 +- **失败原因追踪**: 记录支付失败的具体原因,便于问题排查 + +### 业务场景 +- **订单支付**: 学员购买课程时的支付处理 +- **充值支付**: 学员账户余额充值 +- **代付服务**: 家长为孩子支付学费等代付场景 +- **退款处理**: 处理退费相关的支付记录 +- **支付对账**: 与第三方支付平台进行对账 +- **财务结算**: 生成财务报表和收入统计 +- **支付监控**: 监控支付成功率和失败原因 +- **风控管理**: 识别异常支付行为 + +## 关联关系 + +### 主要关联表 +- `school_member`: 会员信息表 (main_id, from_main_id) +- `school_order_table`: 订单信息表 (通过trade_id关联) +- `school_contract`: 合同信息表 (通过trade_id关联) +- `school_refund`: 退款信息表 (通过trade_id关联) +- `school_recharge`: 充值记录表 (通过trade_id关联) +- `sys_pay_config`: 支付配置表 (通过type关联) + +### 关联说明 +- **会员关联**: main_id关联实际支付的会员,from_main_id关联发起支付的会员 +- **业务关联**: 通过trade_type和trade_id关联具体的业务记录(订单、合同、充值等) +- **支付配置**: 通过type字段关联支付方式配置 +- **商户关联**: mch_id关联具体的商户收款账号 +- **渠道关联**: channel字段标识支付渠道来源 + +## 索引建议 +- **主键索引**: id (已存在) +- **唯一索引**: out_trade_no (支付流水号唯一性) +- **外键索引**: + - main_id (支付会员查询) + - from_main_id (发起支付会员查询) +- **业务索引**: + - trade_type (业务类型查询) + - trade_id (业务ID查询) + - trade_no (交易单号查询) +- **状态索引**: status (支付状态查询) +- **时间索引**: + - create_time (创建时间查询) + - pay_time (支付时间查询) +- **复合索引**: + - (main_id, status) (会员支付状态查询) + - (trade_type, trade_id) (业务关联查询) + - (type, status) (支付方式状态查询) + - (create_time, status) (时间状态查询) + - (mch_id, status) (商户支付状态查询) + +## 注意事项 +- **流水号唯一性**: out_trade_no必须全局唯一,避免重复支付 +- **金额精度**: money字段使用decimal(10,2),确保财务计算精度 +- **状态流转**: 支付状态有严格的流转规则(0→1→2或0→-1) +- **时间逻辑**: pay_time不能早于create_time,cancel_time只在取消时设置 +- **代付逻辑**: from_main_id和main_id可以不同,支持代付场景 +- **业务关联**: trade_type和trade_id必须配套使用,确保业务关联正确 +- **支付方式**: type字段决定了支付的具体处理逻辑 +- **商户配置**: mch_id必须与系统配置的商户账号匹配 +- **支付渠道**: channel字段用于区分不同的支付来源 +- **失败处理**: 支付失败时必须记录fail_reason,便于问题排查 +- **数据安全**: 支付相关敏感信息需要加密存储 +- **幂等性**: 同一笔支付请求多次提交应该返回相同结果 +- **对账机制**: 定期与第三方支付平台进行对账,确保数据一致性 +- **监控告警**: 支付失败率过高时需要及时告警 diff --git a/niucloud/databasedoc/school_pay_channel.md b/niucloud/databasedoc/school_pay_channel.md new file mode 100644 index 00000000..73321b6f --- /dev/null +++ b/niucloud/databasedoc/school_pay_channel.md @@ -0,0 +1,82 @@ +# school_pay_channel 表文档 + +## 表概述 +**表名**: school_pay_channel +**功能**: 支付渠道配置管理表,用于管理和配置各种支付方式的参数信息,包括微信支付、支付宝、银行卡等多种支付渠道,支持渠道启用控制、配置参数管理、排序设置和状态监控,为学校提供完整的支付渠道管理和配置功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 主键 +type varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付类型 +channel varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付渠道 +config text utf8mb4_general_ci NO NULL select,insert,update,references 支付配置 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 修改时间 +status int NULL NO 0 select,insert,update,references 是否启用 +sort int NULL NO 0 select,insert,update,references 排序 +``` + +## 功能用途 + +### 主要功能 +- **支付渠道管理**: 统一管理各种支付渠道的配置信息,支持多种支付方式 +- **支付类型分类**: 按支付类型进行分类管理,如在线支付、线下支付等 +- **渠道配置存储**: 存储各支付渠道的详细配置参数,如API密钥、商户号等 +- **渠道状态控制**: 支持启用/禁用支付渠道,灵活控制可用的支付方式 +- **渠道排序管理**: 支持支付渠道的排序功能,控制支付方式的展示顺序 +- **配置参数管理**: 支持复杂的JSON配置存储,满足不同支付渠道的配置需求 +- **时间追踪**: 记录支付渠道的创建和修改时间,便于配置变更追踪 +- **渠道唯一标识**: 通过唯一ID确保支付渠道的准确识别和调用 + +### 业务场景 +- **学费缴纳**: 为学员提供多种学费缴纳方式,如微信支付、支付宝、银行卡等 +- **课程购买**: 支持在线课程购买的多种支付渠道选择 +- **充值续费**: 为会员账户充值和课程续费提供便捷的支付方式 +- **活动缴费**: 支持各类教育活动、比赛报名的在线缴费 +- **教材费用**: 处理教材、资料等额外费用的支付 +- **退费处理**: 配合退费流程,支持原路退回等退费方式 +- **分期付款**: 支持学费分期付款的支付渠道配置 +- **企业付款**: 为企业客户提供专门的支付渠道和配置 +- **国际支付**: 支持国际学员的跨境支付需求 + +## 关联关系 + +### 主要关联表 +- **school_pay**: 支付记录表,记录使用该支付渠道的具体支付信息 +- **school_order_table**: 订单表,关联订单的支付渠道选择 +- **school_member_account_log**: 会员账户日志表,记录通过该渠道的充值记录 +- **school_refund_record**: 退费记录表,记录退费时使用的支付渠道 +- **school_campus**: 校区表,不同校区可能配置不同的支付渠道 +- **school_sys_config**: 系统配置表,可能存储全局的支付配置信息 + +### 关联说明 +- 与 `school_pay` 关联,记录每笔支付使用的具体支付渠道 +- 与 `school_order_table` 关联,订单可以选择可用的支付渠道 +- 与 `school_member_account_log` 关联,记录会员充值使用的支付方式 +- 与退费系统关联,支持原支付渠道的退费处理 +- 与财务系统关联,提供支付渠道的财务对账和统计 +- 与风控系统关联,监控不同支付渠道的风险情况 + +## 索引建议 +- **主键索引**: `PRIMARY KEY (id)` - 自动创建 +- **支付类型索引**: `INDEX idx_type (type)` - 支持按支付类型查询 +- **支付渠道索引**: `INDEX idx_channel (channel)` - 支持按支付渠道查询 +- **状态索引**: `INDEX idx_status (status)` - 支持按启用状态查询 +- **排序索引**: `INDEX idx_sort (sort)` - 支持按排序字段查询 +- **时间索引**: `INDEX idx_create_time (create_time)` - 支持按创建时间查询 +- **复合索引**: `INDEX idx_type_status_sort (type, status, sort)` - 支持多条件查询 +- **唯一索引**: `UNIQUE INDEX idx_type_channel (type, channel)` - 确保同类型下渠道唯一 + +## 注意事项 +- **配置安全**: 支付渠道配置包含敏感信息,需要加密存储和传输 +- **参数验证**: 严格验证支付渠道配置参数的正确性,避免支付失败 +- **状态同步**: 及时同步支付渠道的可用状态,避免使用不可用渠道 +- **配置备份**: 定期备份支付渠道配置,防止配置丢失 +- **权限控制**: 严格控制支付渠道配置的修改权限,防止误操作 +- **测试验证**: 配置变更后需要进行充分的测试验证 +- **监控告警**: 建立支付渠道的监控告警机制,及时发现异常 +- **合规要求**: 确保支付渠道配置符合相关法规和合规要求 +- **版本管理**: 对支付渠道配置进行版本管理,支持配置回滚 +- **日志记录**: 详细记录配置变更日志,便于问题追踪和审计 diff --git a/niucloud/databasedoc/school_pay_refund.md b/niucloud/databasedoc/school_pay_refund.md new file mode 100644 index 00000000..090c3a8a --- /dev/null +++ b/niucloud/databasedoc/school_pay_refund.md @@ -0,0 +1,112 @@ +# school_pay_refund 表文档 + +## 表概述 +**表名**: school_pay_refund +**功能**: 支付退款管理表,用于处理和管理各种业务场景下的退款申请和处理流程,包括课程退费、订单取消、服务纠纷等退款场景,支持多渠道退款、状态跟踪、失败处理和凭证管理,为学校提供完整的退款业务管理和财务对账功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 主键 +refund_no varchar(255) utf8mb4_general_ci NO select,insert,update,references 退款单号 +out_trade_no varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付流水号 +type varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付方式 +channel varchar(50) utf8mb4_general_ci NO select,insert,update,references 支付渠道 +money decimal(10,2) NULL NO 0.00 select,insert,update,references 支付金额 +reason varchar(255) utf8mb4_general_ci NO select,insert,update,references 退款原因 +status varchar(255) utf8mb4_general_ci NO 0 select,insert,update,references 支付状态(0.待退款 1. 退款中 2. 已退款 -1已关闭) +create_time int NULL NO 0 select,insert,update,references 创建时间 +refund_time int NULL NO 0 select,insert,update,references 支付时间 +close_time int NULL NO 0 select,insert,update,references 关闭时间 +fail_reason varchar(255) utf8mb4_general_ci NO select,insert,update,references 失败原因 +voucher varchar(255) utf8mb4_general_ci NO select,insert,update,references 支付凭证 +trade_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 业务类型 +trade_id varchar(50) utf8mb4_general_ci NO select,insert,update,references 业务关联id +refund_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 退款方式 +main_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 操作人类型 +main_id int NULL NO 0 select,insert,update,references 操作人 +pay_refund_no varchar(255) utf8mb4_general_ci NO select,insert,update,references 外部支付方式的退款单号 +``` + +## 功能用途 + +### 主要功能 +- **退款申请管理**: 处理各种业务场景下的退款申请和审批流程 +- **退款流程控制**: 管理退款的完整流程(申请→审核→退款→完成) +- **退款状态跟踪**: 实时跟踪退款状态变化和处理进度 +- **多渠道退款**: 支持多种支付渠道的退款处理(微信、支付宝、银行卡等) +- **退款金额管理**: 精确计算和管理退款金额,支持部分退款 +- **退款凭证管理**: 管理退款凭证和相关票据信息 +- **失败处理机制**: 记录退款失败原因,支持重新处理 +- **业务关联**: 与原始支付记录和相关业务进行关联 +- **操作人员管理**: 记录退款操作的具体执行人员 + +### 业务场景 +- **课程退费**: 学员申请课程退费的退款处理 +- **订单取消退款**: 订单取消后的自动退款 +- **服务纠纷退款**: 因服务质量问题产生的退款 +- **系统错误退款**: 因系统错误导致的多收费用退款 +- **部分退款**: 课程部分完成后的按比例退款 +- **批量退款**: 因活动取消等原因的批量退款处理 +- **退款审核**: 财务人员审核退款申请的合理性 +- **退款对账**: 与第三方支付平台进行退款对账 + +## 关联关系 + +### 主要关联表 +- `school_pay`: 支付记录表 (out_trade_no) +- `school_member`: 会员信息表 (main_id) +- `school_order`: 订单信息表 (通过trade_id关联) +- `school_contract`: 合同信息表 (通过trade_id关联) +- `school_course`: 课程信息表 (通过业务关联) +- `school_sys_user`: 系统用户表 (操作人员信息) +- `school_member_account`: 会员账户表 (退款到余额) +- `school_member_account_log`: 账户流水表 (资金变动记录) + +### 关联说明 +- **支付关联**: out_trade_no关联原始支付记录,确保退款与支付匹配 +- **会员关联**: main_id关联退款接收方的会员信息 +- **业务关联**: 通过trade_type和trade_id关联具体的业务记录 +- **操作人关联**: main_id在不同main_type下关联不同类型的操作人员 +- **账户关联**: 退款到余额时需要关联会员账户信息 +- **流水关联**: 退款完成后在账户流水表中记录资金变动 +- **渠道关联**: channel和type字段关联支付渠道配置 + +## 索引建议 +- **主键索引**: id (已存在) +- **唯一索引**: refund_no (退款单号唯一性) +- **外键索引**: + - out_trade_no (支付流水号查询) + - main_id (操作人查询) +- **业务索引**: + - trade_type (业务类型查询) + - trade_id (业务ID查询) +- **状态索引**: status (退款状态查询) +- **时间索引**: + - create_time (创建时间查询) + - refund_time (退款时间查询) + - close_time (关闭时间查询) +- **复合索引**: + - (out_trade_no, status) (支付退款状态查询) + - (main_id, status) (操作人退款状态查询) + - (trade_type, trade_id) (业务关联查询) + - (type, status) (退款方式状态查询) + - (create_time, status) (时间状态查询) + +## 注意事项 +- **金额精度**: money字段使用decimal(10,2),确保财务计算精度 +- **退款限制**: 退款金额不能超过原支付金额 +- **状态流转**: 退款状态有严格的流转规则(0→1→2或0→-1) +- **时间逻辑**: refund_time不能早于create_time,close_time只在关闭时设置 +- **支付关联**: 必须基于有效的支付记录才能发起退款 +- **渠道一致性**: 退款渠道应与原支付渠道保持一致 +- **重复退款**: 防止同一笔支付重复退款或超额退款 +- **失败处理**: 退款失败时必须记录详细的fail_reason +- **凭证管理**: voucher字段用于存储退款凭证,确保可追溯 +- **业务完整性**: trade_type和trade_id必须与原支付记录保持一致 +- **操作权限**: 不同类型的操作人员有不同的退款权限 +- **数据一致性**: 退款成功后必须同步更新相关业务状态 +- **审核机制**: 大额退款需要多级审核确认 +- **对账要求**: 定期与第三方支付平台进行退款对账 +- **法律合规**: 退款操作需要符合相关法律法规要求 diff --git a/niucloud/databasedoc/school_pay_transfer.md b/niucloud/databasedoc/school_pay_transfer.md new file mode 100644 index 00000000..fa140b61 --- /dev/null +++ b/niucloud/databasedoc/school_pay_transfer.md @@ -0,0 +1,126 @@ +# school_pay_transfer 表文档 + +## 表概述 +**表名**: school_pay_transfer +**功能**: 支付转账管理表,用于记录和管理系统中的各类转账业务,包括会员提现、退费转账、佣金结算等多种转账类型,支持银行转账、在线支付等多种转账方式,为财务管理和资金流转提供完整的转账记录和状态跟踪 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +trade_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 业务类型 +transfer_no varchar(50) utf8mb4_general_ci NO select,insert,update,references 转账单号 +main_id int NULL NO 0 select,insert,update,references 会员id +main_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 主体类型 +transfer_type varchar(20) utf8mb4_general_ci NO select,insert,update,references 转账类型 +transfer_realname varchar(50) utf8mb4_general_ci NO select,insert,update,references 联系人名称 +transfer_mobile varchar(11) utf8mb4_general_ci NO select,insert,update,references 手机号 +transfer_bank varchar(255) utf8mb4_general_ci NO select,insert,update,references 银行名称 +transfer_account varchar(255) utf8mb4_general_ci NO select,insert,update,references 收款账号 +transfer_voucher varchar(255) utf8mb4_general_ci NO select,insert,update,references 凭证 +transfer_remark varchar(255) utf8mb4_general_ci NO select,insert,update,references 凭证说明 +transfer_payment_code varchar(255) utf8mb4_general_ci NO select,insert,update,references 收款码图片 +transfer_fail_reason varchar(2000) utf8mb4_general_ci NO select,insert,update,references 失败原因 +transfer_status varchar(20) utf8mb4_general_ci NO select,insert,update,references 转账状态 +money decimal(10,2) NULL NO 0.00 select,insert,update,references 转账金额 +create_time int NULL NO 0 select,insert,update,references 申请时间 +transfer_time int NULL NO 0 select,insert,update,references 转账时间 +update_time int NULL NO 0 select,insert,update,references +openid varchar(50) utf8mb4_general_ci NO select,insert,update,references +remark varchar(255) utf8mb4_general_ci NO select,insert,update,references +batch_id varchar(500) utf8mb4_general_ci NO select,insert,update,references 转账批次id +transfer_payee varchar(500) utf8mb4_general_ci NO select,insert,update,references 在线转账数据(json) +out_batch_no varchar(500) utf8mb4_general_ci NO select,insert,update,references 扩展数据,主要用于记录接收到线上打款的业务数据编号 +``` + +## 功能用途 + +### 主要功能 +- **转账业务管理**: 处理多种类型的转账业务需求 +- **转账单号生成**: 为每笔转账生成唯一的转账单号 +- **主体信息管理**: 记录转账相关的主体信息和类型 +- **收款信息管理**: 管理收款人的详细信息和账户信息 +- **转账方式支持**: 支持银行转账、在线支付等多种转账方式 +- **凭证管理**: 存储和管理转账凭证和收款码信息 +- **状态跟踪**: 实时跟踪转账的处理状态和结果 +- **失败处理**: 记录转账失败的原因和处理方案 +- **批次管理**: 支持批量转账的批次管理功能 +- **金额管理**: 精确记录和管理转账金额 +- **时间管理**: 记录申请时间、转账时间等关键时间节点 + +### 业务场景 +- **会员提现**: 处理会员账户余额的提现申请和转账 +- **退费处理**: 处理学员退费的转账操作 +- **佣金结算**: 处理销售人员、推荐人等的佣金转账 +- **奖励发放**: 发放各类奖励和补贴的转账 +- **供应商付款**: 向供应商或合作伙伴的付款转账 +- **员工薪资**: 员工工资和奖金的转账发放 +- **代理分润**: 代理商分润的转账结算 +- **活动奖金**: 营销活动奖金的转账发放 +- **保证金退还**: 各类保证金的退还转账 +- **批量转账**: 批量处理多笔转账业务 +- **紧急转账**: 处理紧急情况下的转账需求 +- **定期结算**: 定期的财务结算转账 + +## 关联关系 + +### 主要关联表 +- `school_member`: 会员信息表 (main_id关联,主体为会员时) +- `school_personnel`: 人员信息表 (main_id关联,主体为员工时) +- `school_pay`: 支付记录表 (关联原始支付信息) +- `school_pay_refund`: 退费记录表 (退费转账关联) +- `school_member_cash_out`: 会员提现表 (提现转账关联) +- `school_account_log`: 账户日志表 (资金变动记录) +- `school_sys_user`: 系统用户表 (操作人员信息) +- `school_campus`: 校区信息表 (转账归属校区) + +### 关联说明 +- **主体关联**: main_id根据main_type关联不同的主体表(会员、员工等) +- **支付关联**: 与school_pay表关联,记录原始支付信息 +- **退费关联**: 退费转账与school_pay_refund表关联 +- **提现关联**: 提现转账与school_member_cash_out表关联 +- **账户关联**: 与school_account_log表关联,记录账户资金变动 +- **用户关联**: 记录转账操作的系统用户信息 +- **校区关联**: 转账业务归属的校区信息 +- **批次关联**: 通过batch_id关联同批次的转账记录 + +## 索引建议 +- **主键索引**: id (已存在) +- **业务索引**: + - transfer_no (转账单号唯一查询) + - main_id (主体转账记录查询) + - transfer_status (转账状态查询) + - trade_type (业务类型查询) + - batch_id (批次转账查询) +- **复合索引**: + - (main_id, main_type) (主体转账记录查询) + - (transfer_status, create_time) (状态时间查询) + - (trade_type, transfer_status) (业务状态查询) + - (batch_id, transfer_status) (批次状态查询) + - (main_type, main_id, transfer_status) (完整主体状态查询) +- **时间索引**: + - create_time (申请时间查询) + - transfer_time (转账时间查询) + - update_time (更新时间查询) +- **金额索引**: + - money (金额范围查询) + +## 注意事项 +- **数据完整性**: main_id必须在对应的主体表中存在 +- **单号唯一性**: transfer_no必须保证全局唯一性 +- **金额精度**: money字段使用decimal类型,保证金额计算精度 +- **状态一致性**: 转账状态变更需要同步更新相关业务表 +- **时间逻辑**: transfer_time不能早于create_time +- **主体类型**: main_type必须与main_id对应的表类型一致 +- **批次管理**: 批量转账时batch_id必须保持一致 +- **凭证安全**: 转账凭证和收款码需要做好安全存储 +- **失败处理**: 转账失败时需要详细记录失败原因 +- **重复检查**: 避免重复转账,需要做好幂等性控制 +- **权限控制**: 转账操作需要严格的权限验证 +- **审计追踪**: 所有转账操作需要记录详细的审计日志 +- **资金安全**: 转账金额变更需要多重验证和确认 +- **状态流转**: 转账状态流转需要遵循业务规则 +- **异常处理**: 建立完善的异常处理和回滚机制 +- **监控告警**: 大额转账和异常转账需要实时监控告警 +- **合规要求**: 转账操作需要满足相关法规和合规要求 diff --git a/niucloud/databasedoc/school_performance_config.md b/niucloud/databasedoc/school_performance_config.md new file mode 100644 index 00000000..0c4e4c70 --- /dev/null +++ b/niucloud/databasedoc/school_performance_config.md @@ -0,0 +1,98 @@ +# school_performance_config 表文档 + +## 表概述 +**表名**: school_performance_config +**功能**: 绩效配置管理表,用于存储和管理员工绩效考核的配置信息,支持多维度绩效指标设置、考核周期配置和绩效计算规则管理,为人力资源绩效管理提供灵活的配置服务 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +config_type varchar(50) utf8mb4_unicode_ci NO UNI NULL select,insert,update,references 配置类型:market_staff/sales_staff/coach_staff +config_data json NULL NO NULL select,insert,update,references 配置数据 +version varchar(20) utf8mb4_unicode_ci NO 1.0 select,insert,update,references 配置版本 +is_active tinyint(1) NULL YES 1 select,insert,update,references 是否生效 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references +created_by int NULL YES NULL select,insert,update,references 创建人 +updated_by int NULL YES NULL select,insert,update,references 修改人 +``` + +## 功能用途 + +### 主要功能 +- **绩效指标配置**: 设置和管理各类绩效考核指标和权重 +- **考核周期管理**: 配置绩效考核的时间周期和频率 +- **计算规则设置**: 定义绩效分数的计算方法和公式 +- **目标值管理**: 设置各项指标的目标值和达成标准 +- **权重分配**: 管理不同指标在总绩效中的权重比例 +- **等级划分**: 配置绩效等级和对应的分数区间 +- **奖惩规则**: 设置基于绩效结果的奖励和惩罚机制 +- **模板管理**: 提供不同岗位的绩效配置模板 + +### 业务场景 +- **教师绩效考核**: 配置教师的教学质量、学生满意度等考核指标 +- **销售人员考核**: 设置销售额、客户开发、续费率等销售指标 +- **管理人员考核**: 配置团队管理、目标达成、创新能力等管理指标 +- **客服人员考核**: 设置服务质量、响应时间、客户满意度等服务指标 +- **季度考核**: 配置季度性的综合绩效考核方案 +- **年度考核**: 设置年度绩效评估和晋升考核标准 +- **项目绩效**: 配置特定项目的绩效考核指标 +- **部门绩效**: 设置部门整体绩效考核方案 +- **试用期考核**: 配置新员工试用期的考核标准 +- **专项考核**: 设置特殊时期或特殊任务的考核方案 + +## 关联关系 + +### 主要关联表 +- **school_personnel**: 人员表,绩效配置的应用对象 +- **school_coach_performance**: 教练绩效表,应用绩效配置进行考核 +- **school_sales_performance**: 销售绩效表,使用销售相关的绩效配置 +- **school_campus**: 校区表,可能按校区设置不同的绩效配置 +- **school_sys_user**: 系统用户表,记录配置的创建和修改用户 +- **school_sys_dict**: 系统字典表,可能引用绩效等级等字典数据 + +### 关联说明 +- 为不同类型的人员提供个性化的绩效配置方案 +- 与具体的绩效记录表关联,提供考核标准和计算依据 +- 支持按校区、部门、岗位等维度设置差异化配置 +- 配置变更会影响相关人员的绩效考核结果 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 配置名称索引(用于按名称查询) +INDEX idx_config_name (config_name) + +-- 配置类型索引(用于按类型筛选) +INDEX idx_config_type (config_type) + +-- 状态索引(用于查询有效配置) +INDEX idx_status (status) + +-- 创建时间索引(用于按时间排序) +INDEX idx_create_time (create_time) + +-- 更新时间索引(用于查询最近更新的配置) +INDEX idx_update_time (update_time) + +-- 复合索引(类型+状态) +INDEX idx_type_status (config_type, status) +``` + +## 注意事项 +- **配置合理性**: 确保绩效指标设置合理,权重分配科学 +- **数据一致性**: 配置修改时需要考虑对历史绩效数据的影响 +- **权限控制**: 严格控制绩效配置的修改权限,避免随意变更 +- **版本管理**: 重要配置变更应保留历史版本,支持回滚 +- **计算准确性**: 确保绩效计算公式的正确性和准确性 +- **公平性原则**: 配置应体现公平公正的考核原则 +- **目标可达性**: 设置的目标值应具有挑战性但可实现 +- **周期合理性**: 考核周期设置应符合业务特点和管理需要 +- **数据备份**: 定期备份绩效配置数据,防止数据丢失 +- **性能优化**: 复杂计算规则可能影响系统性能,需要优化 +- **法规遵循**: 绩效配置应符合劳动法规和公司制度 +- **沟通透明**: 绩效配置应向员工公开透明,确保理解和认同 diff --git a/niucloud/databasedoc/school_performance_records.md b/niucloud/databasedoc/school_performance_records.md new file mode 100644 index 00000000..f13aeed5 --- /dev/null +++ b/niucloud/databasedoc/school_performance_records.md @@ -0,0 +1,105 @@ +# school_performance_records 表文档 + +## 表概述 +**表名**: school_performance_records +**功能**: 绩效记录管理表,负责管理教务系统中员工的绩效评估、考核记录、绩效指标跟踪和绩效奖励计算等功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 绩效编号 +staff_id int NULL NO NULL select,insert,update,references 员工ID +resource_id int NULL NO NULL select,insert,update,references 资源ID +order_id int NULL YES NULL select,insert,update,references 订单ID +order_status enum('pending','completed','cancelled') utf8mb4_general_ci YES pending select,insert,update,references 订单状态: pending-待处理, completed-已完成, cancelled-已取消 +performance_type enum('sales','marketing','other','coach','consultant') utf8mb4_general_ci NO NULL select,insert,update,references 绩效类型: sales-销售绩效, marketing-市场绩效, coach教练绩效,other-其他,consultant教务绩效 +performance_value decimal(10,2) NULL NO NULL select,insert,update,references 绩效金额 +remarks text utf8mb4_general_ci YES NULL select,insert,update,references 备注 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +- **绩效记录管理**: 记录员工的各类绩效数据和业绩表现 +- **绩效类型分类**: 区分销售、市场、教练、教务等不同类型绩效 +- **绩效金额计算**: 计算和记录具体的绩效奖励金额 +- **订单关联**: 关联具体订单跟踪绩效来源 +- **资源关联**: 关联客户资源跟踪转化绩效 +- **状态跟踪**: 跟踪订单状态对绩效的影响 +- **绩效统计**: 提供各类绩效数据的统计分析 +- **奖金计算**: 为薪资系统提供绩效奖金数据 +- **业绩分析**: 分析员工业绩趋势和表现 + +### 业务场景 +- **销售绩效**: 记录销售人员的签单业绩和提成 +- **市场绩效**: 记录市场人员的获客和转化业绩 +- **教练绩效**: 记录教练的授课和学员满意度绩效 +- **教务绩效**: 记录教务人员的服务质量绩效 +- **订单跟踪**: 跟踪订单完成情况对绩效的影响 +- **客户转化**: 记录客户资源转化带来的绩效 +- **月度结算**: 月度绩效统计和奖金结算 +- **业绩排名**: 员工业绩排名和激励 +- **绩效分析**: 分析绩效趋势和改进方向 + +## 关联关系 + +### 主要关联表 +- `school_personnel`: 人员信息表 (staff_id) +- `school_customer_resources`: 客户资源表 (resource_id) +- `school_order_table`: 订单信息表 (order_id) +- `school_salary`: 薪资管理表 (绩效奖金关联) +- `school_contract`: 合同信息表 (签约绩效) +- `school_member`: 会员信息表 (客户关联) +- `school_campus`: 校区信息表 (校区绩效) +- `school_course`: 课程信息表 (教练绩效) + +### 关联说明 +- **员工关联**: staff_id关联具体员工,确定绩效归属 +- **资源关联**: resource_id关联客户资源,跟踪转化绩效 +- **订单关联**: order_id关联具体订单,跟踪销售绩效 +- **薪资关联**: 绩效金额直接影响薪资中的绩效奖金计算 +- **合同关联**: 通过订单关联合同,跟踪签约绩效 +- **会员关联**: 通过资源和订单关联会员,跟踪服务绩效 +- **校区关联**: 通过员工关联校区,支持分校区绩效统计 +- **课程关联**: 教练绩效关联具体授课课程 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: + - staff_id (员工绩效查询) + - resource_id (资源绩效查询) + - order_id (订单绩效查询) +- **业务索引**: + - performance_type (绩效类型查询) + - order_status (订单状态查询) + - performance_value (绩效金额查询) +- **复合索引**: + - (staff_id, performance_type) (员工类型绩效查询) + - (staff_id, created_at) (员工时间绩效查询) + - (performance_type, created_at) (类型时间绩效统计) + - (order_status, performance_type) (状态类型绩效查询) +- **时间索引**: + - created_at (创建时间查询) + - updated_at (更新时间查询) + +## 注意事项 +- **绩效类型**: performance_type字段使用枚举类型,严格控制类型范围 +- **订单状态**: order_status影响绩效计算,需要实时同步 +- **金额精度**: performance_value使用decimal(10,2)确保金额精度 +- **数据完整性**: staff_id、resource_id、performance_type等关键字段不能为空 +- **重复记录**: 避免同一业务产生重复的绩效记录 +- **实时更新**: 订单状态变化时需要及时更新绩效记录 +- **权限控制**: 绩效数据访问需要严格的权限控制 +- **薪资同步**: 绩效数据需要与薪资系统保持同步 +- **业绩统计**: 支持按时间、类型、员工等维度统计绩效 +- **异常监控**: 监控异常绩效数据和计算错误 +- **审计追踪**: 保留完整的绩效记录变更轨迹 +- **数据备份**: 绩效数据需要定期备份和归档 +- **计算规则**: 不同绩效类型的计算规则需要明确定义 +- **时效性**: 绩效记录需要及时生成,避免延迟 +- **关联验证**: 确保resource_id和order_id的有效性 +- **状态一致性**: 订单状态与绩效状态保持一致 +- **分润规则**: 多人参与的业务需要明确分润规则 diff --git a/niucloud/databasedoc/school_person_course_schedule.md b/niucloud/databasedoc/school_person_course_schedule.md new file mode 100644 index 00000000..27b1ac99 --- /dev/null +++ b/niucloud/databasedoc/school_person_course_schedule.md @@ -0,0 +1,97 @@ +# school_person_course_schedule 表文档 + +## 表概述 +**表名**: school_person_course_schedule +**功能**: 人员课程排课表,用于管理学员、教师等人员的课程安排和时间分配,包括课程状态跟踪、请假管理、补课安排等,支持多种课程类型和人员类型,为学校提供完整的排课管理和教学调度功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 关系编号 +resources_id int NULL YES NULL select,insert,update,references 资源ID +person_id int NULL YES NULL select,insert,update,references 人员ID +student_id int NULL YES NULL select,insert,update,references 学员ID +person_type enum('student','customer_resource') utf8mb4_general_ci NO NULL select,insert,update,references 人员类型: student-正式学员, customer_resource-客户资源,teacher教练 +schedule_id int NULL NO MUL NULL select,insert,update,references 课程安排ID +course_date date NULL NO NULL select,insert,update,references 上课日期 +schedule_type tinyint(1) NULL YES NULL select,insert,update,references 课程安排类型1临时课2固定课 +course_type tinyint(1) NULL YES NULL select,insert,update,references 课程类型1加课2补课3 等待位 +time_slot varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 上课时段 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间 +deleted_at int NULL YES 0 select,insert,update,references 删除 +status tinyint(1) NULL NO 0 select,insert,update,references 状态0待上课1已上课2请假 +remark varchar(512) utf8mb4_general_ci YES NULL select,insert,update,references 请假备注 +student_course_id int NULL YES NULL select,insert,update,references 学员课程ID(关联到student_courses表) +cancel_reason varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 取消预约原因 +``` + +## 功能用途 + +### 主要功能 +- **课程排课管理**: 管理学员和教师的课程安排和时间分配 +- **人员类型区分**: 支持学员、客户资源、教师等不同人员类型的排课 +- **课程状态跟踪**: 跟踪课程的待上课、已上课、请假等状态 +- **时间段管理**: 精确管理每个课程的上课日期和时间段 +- **课程类型分类**: 区分临时课、固定课、加课、补课等不同类型 +- **请假管理**: 处理学员请假申请和备注信息 +- **取消预约**: 管理课程取消和取消原因记录 +- **资源关联**: 关联教学资源和学员课程信息 + +### 业务场景 +- **日常排课**: 为学员安排日常的固定课程和临时课程 +- **补课安排**: 处理因请假或其他原因需要补课的安排 +- **加课服务**: 为需要额外辅导的学员安排加课 +- **请假处理**: 处理学员的请假申请和课程调整 +- **教师排课**: 为教师安排教学时间和课程分配 +- **资源调度**: 协调教室、设备等教学资源的使用 +- **课程统计**: 统计学员的上课情况和教师的工作量 +- **排课冲突检测**: 检测和避免时间冲突的课程安排 +- **等待位管理**: 管理课程的等待位和候补安排 + +## 关联关系 + +### 主要关联表 +- **school_schedule**: 课程安排表,关联具体的课程安排信息 +- **school_member**: 学员表,关联参与课程的学员信息 +- **school_personnel**: 人员表,关联教师和其他人员信息 +- **school_customer_resources**: 客户资源表,关联潜在客户信息 +- **school_student_courses**: 学员课程表,关联学员的课程购买信息 +- **school_course**: 课程表,关联课程的基本信息 +- **school_classroom**: 教室表,关联上课地点信息 +- **school_resources**: 资源表,关联教学资源信息 + +### 关联说明 +- `schedule_id` 关联 `school_schedule.id`,标识具体的课程安排 +- `person_id` 关联 `school_personnel.id`,标识参与人员(如教师) +- `student_id` 关联 `school_member.id`,标识参与的学员 +- `resources_id` 关联 `school_resources.id`,标识使用的教学资源 +- `student_course_id` 关联 `school_student_courses.id`,标识学员的课程购买记录 +- `person_type` 字段区分不同类型的参与人员 +- 与考勤系统关联,记录实际的上课出勤情况 +- 与通知系统关联,发送课程提醒和变更通知 + +## 索引建议 +- **主键索引**: `PRIMARY KEY (id)` - 自动创建 +- **课程安排索引**: `INDEX idx_schedule_id (schedule_id)` - 支持按课程安排查询 +- **人员索引**: `INDEX idx_person_id (person_id)` - 支持按人员查询 +- **学员索引**: `INDEX idx_student_id (student_id)` - 支持按学员查询 +- **日期索引**: `INDEX idx_course_date (course_date)` - 支持按上课日期查询 +- **状态索引**: `INDEX idx_status (status)` - 支持按课程状态查询 +- **人员类型索引**: `INDEX idx_person_type (person_type)` - 支持按人员类型查询 +- **课程类型索引**: `INDEX idx_course_type (course_type)` - 支持按课程类型查询 +- **复合索引**: `INDEX idx_schedule_date (schedule_id, course_date)` - 支持课程安排和日期的复合查询 +- **时间段索引**: `INDEX idx_date_time (course_date, time_slot)` - 支持日期和时间段的复合查询 + +## 注意事项 +- **时间冲突检测**: 严格检测同一人员在同一时间段的课程冲突 +- **状态一致性**: 确保课程状态与实际上课情况保持一致 +- **请假流程**: 建立完善的请假申请和审批流程 +- **补课机制**: 建立合理的补课安排和补课次数限制 +- **资源占用**: 合理管理教学资源的占用和释放 +- **数据完整性**: 确保人员、课程、时间等关键信息的完整性 +- **权限控制**: 严格控制排课数据的查看和修改权限 +- **历史记录**: 保留课程变更的历史记录,便于追溯 +- **通知机制**: 及时通知相关人员课程安排的变更 +- **统计准确性**: 确保课程统计数据的准确性和实时性 diff --git a/niucloud/databasedoc/school_personnel.md b/niucloud/databasedoc/school_personnel.md new file mode 100644 index 00000000..6b611312 --- /dev/null +++ b/niucloud/databasedoc/school_personnel.md @@ -0,0 +1,105 @@ +# school_personnel 表文档 + +## 表概述 +**表名**: school_personnel +**功能**: 人员信息管理表,存储教务系统中所有工作人员(教师、销售、教务等)的基本信息、系统账号关联、微信绑定等核心数据 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references ID +name varchar(255) utf8mb4_0900_ai_ci NO NULL select,insert,update,references 姓名 +head_img varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 头像 +gender tinyint(1) NULL NO 0 select,insert,update,references 性别:1男性,2女性 0不详 +birthday date NULL YES NULL select,insert,update,references 生日 +phone varchar(15) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 电话 +email varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 邮箱 +wx varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 微信号 +address varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 家庭住址 +native_place varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 祖籍 +education varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 学历 +profile text utf8mb4_0900_ai_ci YES NULL select,insert,update,references 个人简介 +emergency_contact_phone varchar(15) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 应急联系人电话 +id_card_front varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 身份证正面 +id_card_back varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 身份证反面 +employee_number varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 员工编号 +status tinyint(1) NULL NO 1 select,insert,update,references 状态:1待审核,2已审核,0已禁用 +is_sys_user tinyint(1) NULL NO NULL select,insert,update,references 是否登录系统 +sys_user_id int NULL YES NULL select,insert,update,references 系统用户id +account_type varchar(255) utf8mb4_0900_ai_ci NO NULL select,insert,update,references 账号类型(前端用来登录时确认订单身份的标识)|teacher=老师,market=销售 +create_time datetime NULL NO NULL select,insert,update,references 创建时间 +update_time datetime NULL YES NULL select,insert,update,references 更新时间 +deleted_at varchar(255) utf8mb4_0900_ai_ci NO 0 select,insert,update,references 逻辑删除字段 +join_time datetime NULL YES NULL select,insert,update,references 入职时间 +work_call varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 职称 +wxminiopenid varchar(52) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 微信小程序 openid +wxgzhopenid varchar(52) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 微信公众号 openid +``` + +## 功能用途 + +### 主要功能 +1. **人员基础管理**: 存储员工姓名、性别、生日、联系方式等基本信息 +2. **身份证件管理**: 管理身份证正反面照片,用于实名认证 +3. **系统账号关联**: 通过sys_user_id关联系统登录账号 +4. **账号类型管理**: 区分教师(teacher)和销售(market)等不同角色 +5. **微信集成**: 支持微信小程序和公众号openid绑定 +6. **状态审核管理**: 人员状态审核流程(待审核、已审核、已禁用) +7. **员工档案管理**: 学历、简介、入职时间等档案信息 + +### 业务场景 +1. **员工入职**: 新员工信息录入、身份验证、账号开通 +2. **权限管理**: 根据account_type分配不同的系统权限 +3. **排课安排**: 教师人员参与课程安排和班级管理 +4. **销售管理**: 销售人员进行客户跟进和业绩统计 +5. **微信办公**: 通过微信小程序进行移动办公 +6. **人事管理**: 员工档案维护、状态变更、离职处理 +7. **应急联系**: 紧急情况下的员工联系和通知 + +## 关联关系 + +### 主要关联表 +1. **sys_user**: 系统用户表(sys_user_id字段关联) +2. **school_class**: 班级表(head_coach, assistant_coach关联) +3. **school_schedule**: 排课表(教师排课关联) +4. **school_order**: 订单表(销售人员关联) +5. **school_teacher_course**: 教师课程关联表 +6. **school_campus**: 校区表(人员所属校区) +7. **school_member**: 会员表(销售跟进关联) +8. **school_performance**: 业绩表(销售业绩统计) + +### 关联说明 +1. **系统账号关联**: 通过sys_user_id与系统登录账号一对一关联 +2. **教学关联**: 教师与班级、课程、排课等教学资源关联 +3. **销售关联**: 销售人员与客户、订单、业绩等销售数据关联 +4. **微信关联**: 通过openid实现微信生态集成 +5. **校区关联**: 人员归属特定校区,支持多校区管理 +6. **角色关联**: account_type决定人员在系统中的角色和权限 + +## 索引建议 +1. **主键索引**: id(已存在) +2. **唯一索引**: + - phone(手机号唯一) + - employee_number(员工编号唯一) + - sys_user_id(系统用户ID唯一) + - wxminiopenid(微信小程序openid唯一) + - wxgzhopenid(微信公众号openid唯一) +3. **普通索引**: + - account_type(账号类型筛选) + - status(状态筛选) + - create_time(创建时间排序) + - join_time(入职时间排序) +4. **复合索引**: + - (account_type, status)(类型+状态查询) + - (status, join_time)(状态+入职时间查询) + +## 注意事项 +1. **数据安全**: 身份证照片等敏感信息需要加密存储 +2. **唯一性约束**: 手机号、员工编号、系统用户ID等需要保证唯一性 +3. **软删除**: 使用deleted_at字段实现软删除,保护历史数据 +4. **状态流转**: status状态变更需要记录操作日志 +5. **账号类型**: account_type变更需要同步更新系统权限 +6. **微信绑定**: openid绑定需要验证微信账号的有效性 +7. **系统关联**: sys_user_id关联需要确保系统用户的存在性 +8. **应急联系**: emergency_contact_phone字段在紧急情况下的重要性 diff --git a/niucloud/databasedoc/school_personnel_info.md b/niucloud/databasedoc/school_personnel_info.md new file mode 100644 index 00000000..44afc5ae --- /dev/null +++ b/niucloud/databasedoc/school_personnel_info.md @@ -0,0 +1,121 @@ +# school_personnel_info 表文档 + +## 表概述 +**表名**: school_personnel_info +**功能**: 人员详细信息表,负责存储教务系统中人员的详细个人信息,包括教育背景、家庭情况、银行信息、合同信息等扩展资料 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 主键ID +person_id int NULL NO NULL select,insert,update,references 人员id +name varchar(50) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 花名 +store varchar(100) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 门店 +ethnicity varchar(50) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 民族 +age int NULL YES NULL select,insert,update,references 年龄 +tenure varchar(50) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 司龄 +regular_date varchar(50) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 转正时间 +is_regular varchar(10) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 是否转正 +politics varchar(50) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 政治面貌 +education varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 学历 +university varchar(100) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 毕业院校 +major varchar(100) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 专业 +graduation_date varchar(50) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 毕业时间 +household_place varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 户籍所在地 +household_type varchar(50) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 户籍类型 +household_address varchar(200) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 户籍地址 +current_address varchar(200) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 现居地址 +emergency_contact varchar(50) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 紧急联系人 +emergency_phone varchar(20) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 紧急联系人联系电话 +marital_status varchar(10) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 婚否 +bank_card varchar(30) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 银行卡号 +bank_name varchar(100) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 开户行 +contract_expire varchar(50) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 合同到期时间 +is_rehired varchar(10) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 是否复聘 +remark text utf8mb4_0900_ai_ci YES NULL select,insert,update,references 备注 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +1. **个人详细信息管理**: 存储人员的详细个人资料和背景信息 +2. **教育背景记录**: 记录学历、毕业院校、专业等教育信息 +3. **家庭信息管理**: 管理户籍、现居地址、婚姻状况等家庭信息 +4. **紧急联系人**: 存储紧急联系人和联系方式 +5. **银行信息管理**: 管理银行卡号、开户行等财务信息 +6. **合同信息跟踪**: 记录合同到期时间、转正情况等 +7. **工作履历**: 记录司龄、转正时间、复聘情况等 +8. **政治面貌**: 记录民族、政治面貌等政治信息 +9. **备注信息**: 存储其他重要的补充信息 + +### 业务场景 +- 员工入职时录入详细个人信息 +- 人事档案管理和维护 +- 薪资发放时使用银行信息 +- 紧急情况联系紧急联系人 +- 合同到期提醒和续签 +- 员工转正评估和记录 +- 人事统计和分析 +- 员工背景调查和验证 +- 社保公积金办理 +- 年度考核和评估 + +## 关联关系 + +### 主要关联表 +1. **school_personnel**: 通过person_id关联人员基本信息 +2. **school_salary**: 薪资发放关联银行信息 +3. **school_contract**: 合同管理关联 +4. **school_performance_records**: 绩效考核关联 +5. **school_departments**: 部门信息关联 +6. **school_campus**: 校区门店信息关联 +7. **school_sys_user**: 系统用户关联 +8. **school_personnel_summary**: 人员汇总信息关联 + +### 关联说明 +- **人员关联**: person_id关联人员基本信息表,形成完整的人员档案 +- **薪资关联**: 银行卡信息用于薪资发放和财务管理 +- **合同关联**: 合同到期时间用于合同管理和续签提醒 +- **绩效关联**: 个人信息用于绩效考核和评估 +- **部门关联**: 门店信息关联部门和校区管理 +- **用户关联**: 与系统用户账号关联 +- **汇总关联**: 用于生成人员统计和汇总报表 + +## 索引建议 +- **主键索引**: id(已存在) +- **外键索引**: person_id(人员信息查询) +- **业务索引**: + - name(花名查询) + - store(门店查询) + - education(学历查询) + - is_regular(转正状态查询) + - bank_card(银行卡查询) +- **复合索引**: + - (person_id, is_regular)(人员转正状态查询) + - (store, is_regular)(门店转正人员查询) + - (education, age)(学历年龄查询) +- **时间索引**: + - regular_date(转正时间查询) + - graduation_date(毕业时间查询) + - contract_expire(合同到期查询) + - created_at(创建时间查询) + +## 注意事项 +1. **数据隐私**: 个人敏感信息需要严格的访问权限控制 +2. **银行信息安全**: 银行卡号等财务信息需要加密存储 +3. **信息完整性**: 关键信息如紧急联系人不能为空 +4. **数据格式**: 电话号码、银行卡号等需要格式验证 +5. **合同提醒**: 合同到期时间需要及时提醒和处理 +6. **转正流程**: 转正状态变更需要有完整的审批流程 +7. **信息更新**: 个人信息变更需要及时更新和记录 +8. **备份保护**: 人事档案数据需要定期备份 +9. **审计要求**: 重要信息变更需要记录操作日志 +10. **法规遵循**: 个人信息处理需要符合相关法律法规 +11. **数据一致性**: 与人员基本信息表保持数据一致性 +12. **权限分级**: 不同级别用户只能查看相应权限的信息 +13. **历史记录**: 重要信息变更需要保留历史记录 +14. **定期核查**: 定期核查信息的准确性和时效性 +15. **紧急联系**: 确保紧急联系人信息的有效性 diff --git a/niucloud/databasedoc/school_personnel_summary.md b/niucloud/databasedoc/school_personnel_summary.md new file mode 100644 index 00000000..2dc5b0a4 --- /dev/null +++ b/niucloud/databasedoc/school_personnel_summary.md @@ -0,0 +1,109 @@ +# school_personnel_summary 表文档 + +## 表概述 +**表名**: school_personnel_summary +**功能**: 人员工作汇总统计表,用于按日期统计销售人员和教练人员的工作绩效数据,包括任务完成情况、资源分配、到访数量、续费情况等关键指标,为人员绩效考核、工作量分析和业务管理提供数据支持 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +task_date varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 任务日期 +campus_person_role_id int NULL NO NULL select,insert,update,references 销售及教练 人员角色 id +role_type int NULL NO 1 select,insert,update,references 1销售 2教练 +task_num int NULL NO 0 select,insert,update,references 任务数量 +complete_num int NULL NO 0 select,insert,update,references 完成数量 +expire_num int NULL NO 0 select,insert,update,references 到期数量 +renew_num int NULL NO 0 select,insert,update,references 续费数量 +resource_num int NULL NO 0 select,insert,update,references 分配的资源数量 +visit_num int NULL NO 0 select,insert,update,references 到访数量 +person_id int NULL NO NULL select,insert,update,references 人员id +``` + +## 功能用途 + +### 主要功能 +- **日期统计管理**: 按任务日期统计人员的工作绩效数据 +- **角色分类统计**: 分别统计销售人员和教练人员的工作数据 +- **任务完成跟踪**: 记录和统计人员的任务数量和完成情况 +- **资源分配统计**: 统计分配给人员的客户资源数量 +- **到访数据统计**: 记录客户到访数量和转化情况 +- **续费业绩统计**: 统计人员的续费业绩和客户维护情况 +- **到期提醒统计**: 统计即将到期的客户数量 +- **绩效数据汇总**: 为绩效考核提供量化的数据支持 +- **工作量分析**: 分析人员的工作负荷和效率 +- **趋势分析支持**: 支持按时间维度的趋势分析 + +### 业务场景 +- **日报统计**: 每日统计销售和教练的工作完成情况 +- **绩效考核**: 为月度、季度绩效考核提供数据依据 +- **工作量分析**: 分析人员工作负荷,合理分配任务 +- **业绩排名**: 根据完成数量等指标进行人员排名 +- **资源效率**: 分析资源分配的转化效率和质量 +- **续费管理**: 跟踪和管理客户续费的完成情况 +- **到期预警**: 监控即将到期的客户,及时跟进 +- **团队管理**: 团队负责人查看下属的工作统计 +- **数据报表**: 生成各类工作统计和分析报表 +- **目标管理**: 对比实际完成情况与设定目标 +- **奖惩依据**: 为奖金发放和绩效奖惩提供数据 +- **培训需求**: 根据完成情况识别培训需求 + +## 关联关系 + +### 主要关联表 +- `school_campus_person_role`: 校区人员角色表 (campus_person_role_id外键关联) +- `school_personnel`: 人员信息表 (person_id外键关联) +- `school_campus`: 校区信息表 (通过角色关联) +- `school_customer_resource`: 客户资源表 (资源分配统计) +- `school_six_speed`: 六速跟进表 (到访和转化统计) +- `school_contract`: 合同信息表 (续费统计关联) +- `school_performance_config`: 绩效配置表 (绩效计算规则) +- `school_coach_performance`: 教练绩效表 (教练绩效关联) +- `school_sales_performance`: 销售绩效表 (销售绩效关联) + +### 关联说明 +- **角色关联**: campus_person_role_id关联校区人员角色表,确定统计的具体角色 +- **人员关联**: person_id关联人员信息表,确定统计的具体人员 +- **校区关联**: 通过角色表间接关联校区信息 +- **资源关联**: 资源数量统计来源于客户资源分配记录 +- **跟进关联**: 到访数量等数据来源于六速跟进记录 +- **合同关联**: 续费数量统计来源于合同续费记录 +- **绩效关联**: 统计数据用于绩效计算和考核 +- **配置关联**: 统计规则和计算方式参考绩效配置 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: + - campus_person_role_id (角色统计查询) + - person_id (人员统计查询) +- **业务索引**: + - task_date (日期统计查询) + - role_type (角色类型查询) +- **复合索引**: + - (person_id, task_date) (人员日期统计) + - (campus_person_role_id, task_date) (角色日期统计) + - (role_type, task_date) (类型日期统计) + - (person_id, role_type, task_date) (完整统计查询) +- **统计索引**: + - (task_date, complete_num) (完成情况统计) + - (task_date, resource_num) (资源分配统计) + - (task_date, visit_num) (到访情况统计) + +## 注意事项 +- **数据完整性**: campus_person_role_id和person_id必须在对应表中存在 +- **日期格式**: task_date字段应使用统一的日期格式 +- **角色类型**: role_type必须与实际角色类型保持一致 +- **数据一致性**: 统计数据应与源业务数据保持一致 +- **重复统计**: 避免同一人员同一日期的重复统计记录 +- **数据时效**: 统计数据应及时更新,保证数据的时效性 +- **计算准确性**: 各项数量统计的计算逻辑应准确无误 +- **权限控制**: 人员只能查看自己的统计数据 +- **数据备份**: 重要的统计数据需要定期备份 +- **异常处理**: 统计过程中的异常情况需要妥善处理 +- **性能优化**: 大量统计数据的查询需要优化性能 +- **数据清理**: 定期清理过期的统计数据 +- **审计追踪**: 统计数据的修改需要记录审计日志 +- **报表生成**: 基于统计数据生成的报表需要保证准确性 +- **目标对比**: 实际完成数据与目标数据的对比分析 +- **趋势分析**: 支持按时间维度的数据趋势分析 diff --git a/niucloud/databasedoc/school_physical_test.md b/niucloud/databasedoc/school_physical_test.md new file mode 100644 index 00000000..627adfdc --- /dev/null +++ b/niucloud/databasedoc/school_physical_test.md @@ -0,0 +1,100 @@ +# school_physical_test 表文档 + +## 表概述 +**表名**: school_physical_test +**功能**: 学员体测管理表,负责管理教务系统中学员的体能测试数据,包括身高体重测量、体测报告生成、教练指导记录等体能评估相关功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 体测编号 +resource_id int NULL NO NULL select,insert,update,references 资源ID +student_id int NULL YES NULL select,insert,update,references 学员ID +height decimal(5,2) NULL NO NULL select,insert,update,references 身高 +weight decimal(5,2) NULL NO NULL select,insert,update,references 体重 +coach_id int NULL YES NULL select,insert,update,references 教练ID +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间 +physical_test_report text utf8mb4_general_ci YES NULL select,insert,update,references 体测报告附件(多文件) +``` + +## 功能用途 + +### 主要功能 +- **体测数据记录**: 记录学员的身高、体重等基础体测数据 +- **资源关联管理**: 关联客户资源,跟踪潜在学员的体测情况 +- **学员体测跟踪**: 记录正式学员的定期体测数据 +- **教练指导记录**: 记录负责体测的教练信息 +- **体测报告管理**: 存储和管理体测报告附件 +- **时间记录**: 记录体测的创建和更新时间 +- **数据对比**: 支持学员体测数据的历史对比 +- **健康评估**: 基于体测数据进行健康状况评估 +- **训练建议**: 根据体测结果提供个性化训练建议 + +### 业务场景 +- **入学体测**: 新学员入学时进行初始体能测试 +- **定期体测**: 在读学员定期进行体能测试 +- **课程匹配**: 根据体测结果推荐适合的课程 +- **训练计划**: 教练根据体测数据制定个性化训练计划 +- **进度跟踪**: 跟踪学员体能改善进度 +- **健康监控**: 监控学员健康状况变化 +- **报告生成**: 生成详细的体测分析报告 +- **家长沟通**: 向家长展示学员体能发展情况 +- **数据分析**: 分析整体学员体能水平趋势 + +## 关联关系 + +### 主要关联表 +- `school_customer_resources`: 客户资源表 (resource_id关联) +- `school_student`: 学员信息表 (student_id关联) +- `school_personnel`: 人员表 (coach_id关联教练) +- `school_course`: 课程表 (体测结果影响课程推荐) +- `school_class`: 班级表 (体测结果影响班级分配) +- `school_sys_attachment`: 附件表 (体测报告文件) +- `school_member`: 会员表 (学员会员信息) +- `school_contract`: 合同表 (体测影响签约决策) + +### 关联说明 +- **资源关联**: resource_id关联客户资源表,跟踪潜在客户体测 +- **学员关联**: student_id关联学员信息,记录正式学员体测 +- **教练关联**: coach_id关联负责体测的教练人员 +- **课程关联**: 体测结果用于课程推荐和适配 +- **班级关联**: 体测数据影响班级分配和分组 +- **附件关联**: physical_test_report存储体测报告文件路径 +- **会员关联**: 通过学员信息关联到会员账户 +- **合同关联**: 体测结果可能影响合同签署决策 + +## 索引建议 +- **主键索引**: id (已存在) +- **业务索引**: + - resource_id (资源查询) + - student_id (学员查询) + - coach_id (教练查询) +- **复合索引**: + - (resource_id, created_at) (资源体测时间查询) + - (student_id, created_at) (学员体测历史查询) + - (coach_id, created_at) (教练体测记录查询) +- **时间索引**: + - created_at (创建时间查询) + - updated_at (更新时间查询) +- **数值索引**: + - height (身高范围查询) + - weight (体重范围查询) + +## 注意事项 +- **数据精度**: 身高体重使用decimal(5,2),精确到小数点后两位 +- **关联完整性**: resource_id和student_id至少有一个不能为空 +- **教练权限**: 只有授权教练才能录入和修改体测数据 +- **数据有效性**: 需要验证身高体重数据的合理性范围 +- **隐私保护**: 体测数据涉及个人隐私,需要严格保护 +- **报告格式**: physical_test_report建议使用JSON格式存储多文件信息 +- **时间戳**: 使用timestamp类型自动记录时间 +- **数据备份**: 体测数据是重要的学员档案,需要定期备份 +- **历史记录**: 不建议删除历史体测记录,用于对比分析 +- **文件管理**: 体测报告文件需要与数据库记录保持一致 +- **数据分析**: 体测数据可用于学员健康趋势分析 +- **权限控制**: 体测数据查看需要相应权限控制 +- **数据导出**: 支持体测数据的导出和报表生成 +- **异常处理**: 需要处理体测设备故障等异常情况 +- **标准化**: 体测流程和数据记录需要标准化 diff --git a/niucloud/databasedoc/school_reimbursement.md b/niucloud/databasedoc/school_reimbursement.md new file mode 100644 index 00000000..655cf4aa --- /dev/null +++ b/niucloud/databasedoc/school_reimbursement.md @@ -0,0 +1,87 @@ +# school_reimbursement 表文档 + +## 表概述 +**表名**: school_reimbursement +**功能**: 员工费用报销管理表,用于处理和管理员工提交的各种费用报销申请,支持完整的审批流程和凭证管理 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 报销编号 +applicant_id int NULL NO NULL select,insert,update,references 申请人ID +amount decimal(10,2) NULL NO NULL select,insert,update,references 报销金额 +description text utf8mb4_general_ci NO NULL select,insert,update,references 报销描述 +receipt_url varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 发票或收据URL +status enum('pending','approved','rejected') utf8mb4_general_ci NO NULL select,insert,update,references 状态: pending-待审批, approved-已批准, rejected-已拒绝 +process_id int NULL YES MUL NULL select,insert,update,references 关联的审批流程ID +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +- **报销申请管理**: 处理员工提交的各种费用报销申请 +- **金额计算**: 精确记录和计算报销金额,支持小数点后两位 +- **凭证管理**: 管理发票、收据等报销凭证的电子化存储 +- **审批流程**: 集成审批工作流,支持多级审批和状态跟踪 +- **状态控制**: 管理报销申请的待审批、已批准、已拒绝等状态 +- **申请人追踪**: 记录报销申请人的详细信息和联系方式 +- **描述记录**: 详细记录报销事由和相关说明信息 +- **时间追踪**: 记录申请创建和处理的完整时间轨迹 + +### 业务场景 +- **日常费用报销**: 处理员工的交通费、餐费、办公用品等日常开支 +- **差旅费报销**: 管理出差产生的住宿费、交通费、餐补等费用 +- **培训费用**: 处理员工参加培训、会议等产生的费用报销 +- **教学用品采购**: 报销购买教学器材、教具等教学相关费用 +- **营销活动费用**: 报销市场推广、活动组织等营销费用 +- **设备维护费用**: 报销设备维修、保养等维护费用 +- **办公场所费用**: 报销租金、水电费、物业费等场所运营费用 +- **员工福利费用**: 报销团建活动、员工关怀等福利支出 +- **紧急费用处理**: 快速处理紧急情况下的费用报销需求 + +## 关联关系 + +### 主要关联表 +- **school_personnel**: 人员表,关联报销申请人的基本信息 +- **school_approval_process**: 审批流程表,关联报销的审批流程 +- **school_approval_participants**: 审批参与者表,关联审批人员信息 +- **school_campus**: 校区表,关联报销申请所属的校区 +- **school_department**: 部门表,关联申请人所属的部门 +- **school_sys_attachment**: 附件表,关联报销凭证的文件存储 +- **school_finance_account**: 财务账户表,关联报销款项的支付账户 +- **school_budget**: 预算表,关联部门或项目的预算控制 + +### 关联说明 +- `applicant_id` 关联 `school_personnel.id`,标识报销申请人 +- `process_id` 关联 `school_approval_process.id`,关联审批流程实例 +- `receipt_url` 存储报销凭证的文件路径或URL +- 与财务系统关联,实现报销款项的自动支付 +- 与预算系统关联,控制报销金额不超过预算限额 +- 与通知系统关联,及时通知相关人员审批进度 +- 与权限系统关联,控制报销申请的查看和操作权限 + +## 索引建议 +- **主键索引**: `PRIMARY KEY (id)` - 自动创建 +- **申请人索引**: `INDEX idx_applicant_id (applicant_id)` - 支持按申请人查询 +- **状态索引**: `INDEX idx_status (status)` - 支持按审批状态查询 +- **流程索引**: `INDEX idx_process_id (process_id)` - 支持按审批流程查询 +- **金额索引**: `INDEX idx_amount (amount)` - 支持按金额范围查询 +- **创建时间索引**: `INDEX idx_created_at (created_at)` - 支持按申请时间查询 +- **更新时间索引**: `INDEX idx_updated_at (updated_at)` - 支持按处理时间查询 +- **复合索引**: `INDEX idx_applicant_status (applicant_id, status)` - 支持申请人和状态的复合查询 +- **时间范围索引**: `INDEX idx_created_amount (created_at, amount)` - 支持时间和金额的复合查询 + +## 注意事项 +- **金额精度**: 确保金额计算的精度,避免浮点数误差 +- **凭证完整性**: 严格要求上传完整、清晰的报销凭证 +- **审批时效**: 建立审批时效机制,避免报销申请长期积压 +- **预算控制**: 实施严格的预算控制,防止超预算报销 +- **权限管理**: 严格控制报销数据的查看和修改权限 +- **数据备份**: 定期备份重要的报销数据和凭证文件 +- **审计合规**: 确保报销流程符合财务审计和税务要求 +- **防重复报销**: 建立机制防止同一费用的重复报销 +- **异常监控**: 监控异常的报销行为,如大额报销、频繁报销等 +- **归档管理**: 建立报销记录的归档和长期保存机制 diff --git a/niucloud/databasedoc/school_resource_sharing.md b/niucloud/databasedoc/school_resource_sharing.md new file mode 100644 index 00000000..1ad51a0b --- /dev/null +++ b/niucloud/databasedoc/school_resource_sharing.md @@ -0,0 +1,97 @@ +# school_resource_sharing 表文档 + +## 表概述 +**表名**: school_resource_sharing +**功能**: 资源共享管理表,用于管理教育资源在用户、角色和校区之间的共享权限和访问控制 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 共享记录编号 +resource_id int NULL NO NULL select,insert,update,references 资源ID +user_id int NULL YES NULL select,insert,update,references 用户ID(可为空) +role_id int NULL YES NULL select,insert,update,references 角色ID(可为空) +shared_by int NULL NO 0 select,insert,update,references 共享人ID +shared_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 共享时间 +campus_id int NULL YES NULL select,insert,update,references 所属校区 +``` + +## 功能用途 + +### 主要功能 +- **资源共享管理**: 管理教育资源在不同用户和角色之间的共享 +- **权限控制**: 控制资源的访问权限和使用范围 +- **用户共享**: 支持向特定用户共享资源的功能 +- **角色共享**: 支持向特定角色批量共享资源 +- **校区共享**: 管理资源在不同校区之间的共享 +- **共享追踪**: 记录资源共享的操作人和时间 +- **访问控制**: 实现细粒度的资源访问控制 +- **共享历史**: 维护资源共享的历史记录 +- **权限继承**: 支持基于角色的权限继承机制 + +### 业务场景 +- **教学资源共享**: 教师之间共享课件、教案等教学资源 +- **课程资源共享**: 不同课程之间共享通用的教学材料 +- **校区资源共享**: 总部向各分校区共享标准化教学资源 +- **管理资源共享**: 管理人员共享制度文件、表格模板等 +- **学员资源共享**: 向学员开放特定的学习资源和材料 +- **部门资源共享**: 不同部门之间共享工作资源和文档 +- **临时资源共享**: 为特定项目或活动临时共享资源 +- **批量资源共享**: 基于角色批量共享多个资源 +- **权限回收**: 取消或修改已共享资源的访问权限 + +## 关联关系 + +### 主要关联表 +- `school_resources`: 资源表(被共享的资源信息) +- `school_sys_user`: 系统用户表(共享目标用户) +- `school_sys_role`: 系统角色表(共享目标角色) +- `school_personnel`: 人员表(共享操作人员) +- `school_campus`: 校区表(资源所属校区) +- `school_member`: 会员表(学员用户关联) +- `school_course`: 课程表(课程相关资源) +- `school_class`: 班级表(班级资源共享) + +### 关联说明 +- **资源关联**: resource_id关联到具体的资源记录 +- **用户关联**: user_id关联到接收共享的用户 +- **角色关联**: role_id关联到接收共享的角色 +- **操作人关联**: shared_by关联到执行共享操作的人员 +- **校区关联**: campus_id限定资源共享的校区范围 +- **时间关联**: shared_at记录资源共享的具体时间 +- **权限关联**: 通过用户和角色实现灵活的权限控制 + +## 索引建议 +- **主键索引**: id(已存在) +- **外键索引**: + - resource_id(资源查询) + - user_id(用户查询) + - role_id(角色查询) + - shared_by(操作人查询) + - campus_id(校区查询) +- **时间索引**: shared_at(共享时间查询) +- **复合索引**: + - (resource_id, user_id)(资源用户查询优化) + - (resource_id, role_id)(资源角色查询优化) + - (user_id, campus_id)(用户校区查询) + - (role_id, campus_id)(角色校区查询) + - (shared_by, shared_at)(操作人时间查询) + - (campus_id, shared_at)(校区时间查询) + +## 注意事项 +- **权限验证**: 共享操作前需要验证操作人的权限 +- **重复共享**: 避免向同一用户或角色重复共享相同资源 +- **权限冲突**: 处理用户权限和角色权限的冲突情况 +- **校区限制**: 确保资源共享符合校区管理规则 +- **数据一致性**: 保证共享记录与实际权限的一致性 +- **权限回收**: 提供便捷的权限回收和修改机制 +- **审计追踪**: 详细记录所有共享操作,支持审计 +- **性能优化**: 大量共享记录时需要优化查询性能 +- **安全控制**: 防止未授权的资源共享操作 +- **批量操作**: 支持批量共享和批量回收权限 +- **通知机制**: 资源共享时及时通知相关用户 +- **有效期管理**: 考虑实现资源共享的有效期控制 +- **继承关系**: 处理角色权限的继承和传递 +- **监控告警**: 监控异常的共享行为和权限变更 +- **数据备份**: 重要的权限数据需要定期备份 diff --git a/niucloud/databasedoc/school_salary.md b/niucloud/databasedoc/school_salary.md new file mode 100644 index 00000000..e1bd6498 --- /dev/null +++ b/niucloud/databasedoc/school_salary.md @@ -0,0 +1,120 @@ +# school_salary 表文档 + +## 表概述 +**表名**: school_salary +**功能**: 薪资管理表,负责管理教务系统中员工的薪资计算、发放状态、绩效奖金、扣款项目等薪资管理功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 工资编号 +staff_id int NULL NO MUL NULL select,insert,update,references 员工ID +base_salary decimal(10,2) NULL NO NULL select,insert,update,references 底薪 +performance_bonus decimal(10,2) NULL YES NULL select,insert,update,references 销售绩效 +deductions decimal(10,2) NULL NO NULL select,insert,update,references 扣款 +other_subsidies decimal(10,2) NULL YES 0.00 select,insert,update,references 其他补贴 +payment_status enum('pending','paid') utf8mb4_general_ci NO NULL select,insert,update,references 发放状态: pending-待发放, paid-已发放 +payment_method enum('bank_transfer','cash') utf8mb4_general_ci YES NULL select,insert,update,references 发放方式: bank_transfer-银行转账, cash-现金 +remarks text utf8mb4_general_ci YES NULL select,insert,update,references 备注 +salary_month date NULL NO NULL select,insert,update,references 工资月份 +department_id int NULL YES NULL select,insert,update,references 部门ID +campus_id int NULL YES MUL NULL select,insert,update,references 校区ID +process_id int NULL YES MUL NULL select,insert,update,references 关联的审批流程ID +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +status int NULL NO MUL 1 select,insert,update,references 已核算状态:1未核算 2已核算 +attendance decimal(4,2) NULL YES NULL select,insert,update,references 出勤天数 +work_salary decimal(10,2) NULL YES NULL select,insert,update,references 出勤工资 +mgr_performance decimal(10,2) NULL YES NULL select,insert,update,references 管理绩效 +social_security decimal(10,2) NULL YES NULL select,insert,update,references 社保 +individual_income_tax decimal(10,2) NULL YES NULL select,insert,update,references 个税 +gross_salary decimal(10,2) NULL YES NULL select,insert,update,references 应发工资 +net_salary decimal(10,2) NULL YES NULL select,insert,update,references 实发工资 +full_attendance_days tinyint NULL YES NULL select,insert,update,references 满勤天数 +``` + +## 功能用途 + +### 主要功能 +- **薪资结构管理**: 管理底薪、绩效奖金、补贴等薪资组成部分 +- **薪资计算**: 自动计算应发工资和实发工资 +- **扣款管理**: 管理社保、个税、其他扣款项目 +- **发放状态跟踪**: 跟踪薪资的发放状态和发放方式 +- **考勤关联**: 基于考勤数据计算出勤工资 +- **绩效集成**: 集成销售绩效和管理绩效 +- **审批流程**: 支持薪资审批流程管理 +- **多维度统计**: 按月份、部门、校区进行薪资统计 +- **核算状态**: 跟踪薪资的核算和确认状态 + +### 业务场景 +- **月度薪资**: 每月定期计算和发放员工薪资 +- **绩效奖励**: 根据业绩表现发放绩效奖金 +- **考勤薪资**: 基于实际出勤计算薪资 +- **薪资审批**: 薪资发放前的审批流程 +- **财务核算**: 薪资成本的财务核算和统计 +- **税务申报**: 个税计算和申报 +- **社保缴费**: 社保费用的计算和缴纳 +- **薪资调整**: 员工薪资结构的调整和变更 +- **报表分析**: 薪资成本分析和人力成本控制 + +## 关联关系 + +### 主要关联表 +- `school_personnel`: 人员信息表 (staff_id) +- `school_campus`: 校区信息表 (campus_id) +- `school_department`: 部门信息表 (department_id) +- `school_attendance`: 考勤信息表 (考勤数据关联) +- `school_performance_records`: 绩效记录表 (绩效数据关联) +- `school_approval_process`: 审批流程表 (process_id) +- `school_salary_adjustment`: 薪资调整表 (薪资变更记录) +- `school_tax_record`: 税务记录表 (个税申报) + +### 关联说明 +- **员工关联**: staff_id关联具体员工,确定薪资归属 +- **校区关联**: campus_id确定员工所属校区,支持分校区薪资管理 +- **部门关联**: department_id关联员工部门,支持部门薪资统计 +- **考勤关联**: 通过考勤数据计算出勤天数和出勤工资 +- **绩效关联**: 集成绩效记录计算绩效奖金 +- **审批关联**: process_id关联薪资审批流程 +- **财务关联**: 与财务系统集成进行成本核算 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: + - staff_id (已存在,员工薪资查询) + - campus_id (已存在,校区薪资查询) + - process_id (已存在,审批流程查询) +- **业务索引**: + - payment_status (发放状态查询) + - status (已存在,核算状态查询) + - salary_month (薪资月份查询) + - department_id (部门薪资查询) +- **复合索引**: + - (staff_id, salary_month) (员工月度薪资查询) + - (campus_id, salary_month) (校区月度薪资统计) + - (department_id, salary_month) (部门月度薪资统计) + - (payment_status, salary_month) (月度发放状态查询) + - (status, salary_month) (月度核算状态查询) +- **时间索引**: + - created_at (创建时间查询) + - updated_at (更新时间查询) + +## 注意事项 +- **金额精度**: 所有金额字段使用decimal(10,2)确保财务精度 +- **薪资计算**: gross_salary = base_salary + performance_bonus + mgr_performance + other_subsidies +- **实发计算**: net_salary = gross_salary - deductions - social_security - individual_income_tax +- **状态流转**: payment_status从pending到paid需要严格控制 +- **核算状态**: status字段控制薪资的核算确认流程 +- **月份唯一性**: 同一员工同一月份只能有一条薪资记录 +- **考勤关联**: attendance字段需要与考勤表数据保持一致 +- **绩效同步**: performance_bonus需要与绩效记录表同步 +- **审批流程**: 薪资发放前必须完成相应的审批流程 +- **权限控制**: 薪资信息访问需要严格的权限控制 +- **数据安全**: 薪资数据属于敏感信息,需要加密存储和传输 +- **税务合规**: individual_income_tax计算需要符合税法规定 +- **社保计算**: social_security需要按照社保政策计算 +- **发放记录**: 薪资发放后需要保留完整的发放记录 +- **调薪处理**: 薪资调整需要记录调整原因和审批信息 +- **财务对账**: 薪资数据需要与财务系统定期对账 +- **备份恢复**: 薪资数据需要定期备份和灾难恢复机制 diff --git a/niucloud/databasedoc/school_sales_performance.md b/niucloud/databasedoc/school_sales_performance.md new file mode 100644 index 00000000..674ed0c5 --- /dev/null +++ b/niucloud/databasedoc/school_sales_performance.md @@ -0,0 +1,115 @@ +# school_sales_performance 表文档 + +## 表概述 +**表名**: school_sales_performance +**功能**: 销售人员绩效管理表,用于记录和管理销售人员的业绩数据和绩效计算 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +personnel_id int NULL YES NULL select,insert,update,references 人员ID +campus_id int NULL YES NULL select,insert,update,references 校区ID +performance_amount decimal(10,2) NULL YES NULL select,insert,update,references 绩效金额 +new_resource_count int NULL YES NULL select,insert,update,references 新购买课程资源数量 +renew_resource_count int NULL YES NULL select,insert,update,references 续费资源数量 +performance_date date NULL YES NULL select,insert,update,references 绩效日期 +performance_config varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 绩效配置 +performance_algorithm varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 绩效算法 +created_at timestamp NULL YES NULL select,insert,update,references 创建时间 +updated_at timestamp NULL YES NULL select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **绩效金额管理**: 记录销售人员的绩效金额和奖金计算 +- **新客户统计**: 统计销售人员获得的新购买课程资源数量 +- **续费业绩跟踪**: 跟踪销售人员的客户续费资源数量 +- **绩效日期管理**: 按日期维度管理销售绩效数据 +- **绩效配置管理**: 管理不同的绩效计算配置和规则 +- **算法配置**: 支持多种绩效计算算法和公式 +- **校区绩效分析**: 按校区维度分析销售绩效表现 +- **人员绩效评估**: 评估销售人员的工作表现和业绩达成 +- **时间序列分析**: 支持绩效数据的时间序列分析和趋势预测 + +### 业务场景 +- **月度绩效计算**: 按月计算销售人员的绩效奖金和提成 +- **季度业绩评估**: 进行季度销售业绩评估和排名 +- **年度绩效考核**: 年度销售绩效考核和奖励发放 +- **新客户开发奖励**: 基于新客户数量给予开发奖励 +- **续费维护奖励**: 基于客户续费情况给予维护奖励 +- **团队绩效对比**: 不同销售团队的绩效对比分析 +- **校区业绩排名**: 各校区销售业绩排名和对比 +- **绩效目标设定**: 设定和跟踪销售绩效目标完成情况 +- **薪酬计算**: 为薪酬计算提供绩效数据支持 +- **激励方案制定**: 基于绩效数据制定激励方案 + +## 关联关系 + +### 主要关联表 +- **school_personnel**: 人员表,关联销售人员基本信息 +- **school_campus**: 校区表,关联销售人员所属校区 +- **school_contract**: 合同表,关联销售合同和业绩 +- **school_pay**: 支付表,关联收费和销售业绩 +- **school_member**: 会员表,关联客户信息 +- **school_course**: 课程表,关联销售的课程产品 +- **school_customer_resources**: 客户资源表,关联客户开发情况 +- **school_sys_config**: 系统配置表,关联绩效计算配置 +- **school_salary**: 薪酬表,关联绩效工资计算 + +### 关联说明 +- `personnel_id` 关联 `school_personnel.id`,标识销售人员 +- `campus_id` 关联 `school_campus.id`,标识所属校区 +- **业绩来源关联**: 与合同、支付等表关联,统计业绩来源 +- **客户关联**: 与客户相关表关联,分析客户开发和维护情况 +- **配置关联**: 与系统配置关联,获取绩效计算规则 +- **薪酬关联**: 与薪酬系统关联,计算绩效工资 +- **目标关联**: 与绩效目标设定关联,跟踪目标完成情况 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 人员索引(用于查询个人绩效) +INDEX idx_personnel_id (personnel_id) + +-- 校区索引(用于校区绩效统计) +INDEX idx_campus_id (campus_id) + +-- 绩效日期索引(用于按日期查询) +INDEX idx_performance_date (performance_date) + +-- 绩效金额索引(用于金额排序) +INDEX idx_performance_amount (performance_amount) + +-- 创建时间索引(用于按创建时间查询) +INDEX idx_created_at (created_at) + +-- 复合索引(用于人员绩效统计) +INDEX idx_personnel_date (personnel_id, performance_date) + +-- 复合索引(用于校区绩效统计) +INDEX idx_campus_date (campus_id, performance_date) + +-- 复合索引(用于综合查询) +INDEX idx_campus_personnel_date (campus_id, personnel_id, performance_date) +``` + +## 注意事项 +- **数据准确性**: 确保绩效金额计算的准确性,避免计算错误 +- **重复计算防护**: 防止同一时期绩效的重复计算和记录 +- **算法一致性**: 确保绩效算法的一致性和公平性 +- **数据及时性**: 及时更新绩效数据,保证数据的时效性 +- **权限控制**: 严格控制绩效数据的查看和修改权限 +- **数据备份**: 定期备份重要的绩效数据 +- **审计追踪**: 记录绩效数据的修改历史和操作日志 +- **配置管理**: 妥善管理绩效计算的配置参数 +- **异常处理**: 处理绩效计算中的异常情况和边界条件 +- **数据校验**: 校验绩效数据的合理性和完整性 +- **报表生成**: 支持各类绩效报表的快速生成 +- **历史数据**: 合理管理历史绩效数据的存储和查询 +- **性能优化**: 优化大数据量下的绩效计算和查询性能 +- **数据安全**: 保护绩效数据的安全性和隐私性 diff --git a/niucloud/databasedoc/school_service.md b/niucloud/databasedoc/school_service.md new file mode 100644 index 00000000..3c37e985 --- /dev/null +++ b/niucloud/databasedoc/school_service.md @@ -0,0 +1,119 @@ +# school_service 表文档 + +## 表概述 +**表名**: school_service +**功能**: 服务管理表,用于管理教务系统中的各类服务项目,包括服务定义、执行规则、提醒机制、客户确认和反馈等,为客户服务和业务流程提供标准化管理 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 服务编号 +service_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 服务名称 +preview_image_url varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 服务预览图URL +description text utf8mb4_general_ci NO NULL select,insert,update,references 服务描述 +service_type varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 服务类型 +execution_rules text utf8mb4_general_ci YES NULL select,insert,update,references 服务执行规则 +staff_reminder tinyint(1) NULL NO NULL select,insert,update,references 是否员工提醒: 1-是, 0-否 +customer_reminder tinyint(1) NULL NO NULL select,insert,update,references 是否客户提醒: 1-是, 0-否 +customer_confirmation tinyint(1) NULL NO NULL select,insert,update,references 是否客户确认: 1-是, 0-否 +customer_feedback text utf8mb4_general_ci YES NULL select,insert,update,references 客户反馈内容 +status varchar(50) utf8mb4_general_ci NO NULL select,insert,update,references 状态 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +deleted_at int NULL NO 0 select,insert,update,references 逻辑删除时间 +``` + +## 功能用途 + +### 主要功能 +- **服务项目管理**: 定义和管理各类教务服务项目 +- **服务分类管理**: 通过service_type字段对服务进行分类管理 +- **服务描述管理**: 存储详细的服务描述和说明信息 +- **执行规则管理**: 定义服务的具体执行规则和流程 +- **提醒机制管理**: 支持员工提醒和客户提醒的配置 +- **客户确认管理**: 管理需要客户确认的服务项目 +- **客户反馈收集**: 收集和存储客户对服务的反馈意见 +- **服务状态跟踪**: 跟踪服务的执行状态和进度 +- **服务预览管理**: 支持服务预览图片的展示 +- **软删除支持**: 通过deleted_at字段实现服务的软删除 + +### 业务场景 +- **教学服务**: 课程安排、教学质量跟踪、学习进度监控 +- **客户服务**: 咨询服务、投诉处理、售后支持 +- **行政服务**: 学员注册、证书办理、档案管理 +- **技术服务**: 系统维护、设备支持、在线技术支持 +- **增值服务**: 课外辅导、活动组织、资料提供 +- **定制服务**: 个性化学习方案、专项培训服务 +- **售前服务**: 课程咨询、试听安排、学习规划 +- **售后服务**: 学习跟踪、效果评估、续费服务 +- **紧急服务**: 应急处理、故障修复、临时支援 +- **标准化服务**: 常规服务流程的标准化管理 + +## 关联关系 + +### 主要关联表 +- **school_service_logs**: 服务日志表,记录服务执行的详细日志 +- **school_personnel**: 人员表,关联服务的执行人员 +- **school_member**: 会员表,关联接受服务的客户 +- **school_student**: 学员表,关联接受服务的学员 +- **school_course**: 课程表,服务可能与特定课程相关 +- **school_campus**: 校区表,服务可能按校区提供 +- **school_sys_user**: 系统用户表,关联服务的创建和管理人员 +- **school_contract**: 合同表,服务可能与合同条款相关 + +### 关联说明 +- **日志关联**: 服务执行过程会产生详细的操作日志记录 +- **人员关联**: 服务需要指定具体的执行人员和负责人 +- **客户关联**: 服务面向特定的会员或学员群体 +- **业务关联**: 服务可能与课程、合同等业务对象关联 +- **校区关联**: 不同校区可能提供不同的服务项目 +- **权限关联**: 服务的创建和管理需要相应的用户权限 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 服务类型索引(用于按类型查询服务) +INDEX idx_service_type (service_type) + +-- 服务状态索引(用于按状态查询服务) +INDEX idx_status (status) + +-- 软删除索引(用于查询有效服务) +INDEX idx_deleted_at (deleted_at) + +-- 创建时间索引(用于按时间排序) +INDEX idx_created_at (created_at) + +-- 更新时间索引(用于按更新时间查询) +INDEX idx_updated_at (updated_at) + +-- 复合索引(用于查询有效的特定类型服务) +INDEX idx_type_status_deleted (service_type, status, deleted_at) + +-- 提醒配置索引(用于查询需要提醒的服务) +INDEX idx_staff_reminder (staff_reminder) +INDEX idx_customer_reminder (customer_reminder) + +-- 客户确认索引(用于查询需要确认的服务) +INDEX idx_customer_confirmation (customer_confirmation) +``` + +## 注意事项 +- **服务分类**: service_type字段应建立标准的服务分类体系 +- **执行规则**: execution_rules应详细描述服务的执行步骤和要求 +- **提醒机制**: 提醒功能需要与消息系统或通知系统集成 +- **客户确认**: 需要客户确认的服务应有完整的确认流程 +- **反馈收集**: 客户反馈应及时收集并用于服务改进 +- **状态管理**: 服务状态应反映真实的执行进度 +- **图片管理**: 预览图片应配合文件存储系统管理 +- **软删除**: 删除服务时应检查是否有关联的执行记录 +- **权限控制**: 服务管理应有适当的权限控制机制 +- **数据完整性**: 服务信息应保持完整和准确 +- **性能优化**: 服务查询频繁,需要合理设置索引 +- **服务标准**: 建立服务质量标准和评估体系 +- **流程管控**: 服务执行应有标准化的流程管控 +- **时效管理**: 服务应有明确的时效要求和监控 +- **成本控制**: 服务成本应纳入财务管理体系 diff --git a/niucloud/databasedoc/school_service_logs.md b/niucloud/databasedoc/school_service_logs.md new file mode 100644 index 00000000..cb8906a2 --- /dev/null +++ b/niucloud/databasedoc/school_service_logs.md @@ -0,0 +1,126 @@ +# school_service_logs 表文档 + +## 表概述 +**表名**: school_service_logs +**功能**: 客户服务记录管理表,用于记录客户服务过程、服务结果和客户反馈 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +resource_id int NULL NO NULL select,insert,update,references 资源ID +course_id int NULL NO NULL select,insert,update,references 课程ID +service_id int NULL NO NULL select,insert,update,references 服务内容 +service_remark text utf8mb4_0900_ai_ci YES NULL select,insert,update,references 服务结果 +status tinyint NULL YES NULL select,insert,update,references 状态0待服务1已经服务 +staff_id int NULL NO NULL select,insert,update,references 服务人员ID +score tinyint(1) NULL YES NULL select,insert,update,references 打分 +feedback varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 用户反馈。 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +feedback_time datetime NULL YES NULL select,insert,update,references 反馈时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +student_id int NULL YES NULL select,insert,update,references 学员 Id +``` + +## 功能用途 + +### 主要功能 +- **客户服务记录**: 记录客户服务的详细过程和处理结果 +- **服务状态管理**: 跟踪服务从待服务到已服务的状态变化 +- **服务人员管理**: 记录提供服务的工作人员信息 +- **服务评价系统**: 支持客户对服务质量的评分和反馈 +- **资源关联管理**: 关联客户资源和相关课程信息 +- **服务内容记录**: 详细记录服务的具体内容和备注 +- **反馈时间跟踪**: 记录客户反馈的具体时间 +- **学员服务关联**: 关联具体的学员信息和服务记录 +- **服务质量监控**: 通过评分和反馈监控服务质量 + +### 业务场景 +- **客户咨询服务**: 记录客户咨询问题的处理过程和结果 +- **课程服务跟踪**: 跟踪学员课程相关的服务需求和处理 +- **售后服务管理**: 管理客户的售后服务请求和处理流程 +- **投诉处理记录**: 记录客户投诉的处理过程和解决方案 +- **服务质量评估**: 通过客户评分评估服务人员的服务质量 +- **客户满意度调查**: 收集客户对服务的反馈和建议 +- **服务人员考核**: 基于服务记录考核服务人员的工作表现 +- **服务流程优化**: 分析服务记录优化服务流程和标准 +- **客户关系维护**: 通过服务记录维护良好的客户关系 +- **服务统计分析**: 统计分析服务数据,提升服务水平 + +## 关联关系 + +### 主要关联表 +- **school_customer_resources**: 客户资源表,关联服务的客户资源 +- **school_course**: 课程表,关联服务相关的课程信息 +- **school_service**: 服务内容表,关联具体的服务项目 +- **school_personnel**: 人员表,关联提供服务的工作人员 +- **school_member**: 学员表,关联接受服务的学员 +- **school_contract**: 合同表,关联合同相关的服务 +- **school_campus**: 校区表,关联服务发生的校区 +- **school_sys_user**: 系统用户表,关联操作用户信息 + +### 关联说明 +- `resource_id` 关联 `school_customer_resources.id`,标识服务的客户资源 +- `course_id` 关联 `school_course.id`,标识服务相关的课程 +- `service_id` 关联 `school_service.id`,标识具体的服务内容 +- `staff_id` 关联 `school_personnel.id`,标识提供服务的工作人员 +- `student_id` 关联 `school_member.id`,标识接受服务的学员 +- **服务流程关联**: 与服务流程管理系统关联,跟踪服务进度 +- **评价系统关联**: 与客户评价系统关联,收集服务反馈 +- **通知系统关联**: 与通知系统关联,及时通知相关人员 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 资源ID索引(用于查询客户服务记录) +INDEX idx_resource_id (resource_id) + +-- 课程ID索引(用于查询课程服务记录) +INDEX idx_course_id (course_id) + +-- 服务ID索引(用于按服务类型查询) +INDEX idx_service_id (service_id) + +-- 服务人员索引(用于查询员工服务记录) +INDEX idx_staff_id (staff_id) + +-- 学员ID索引(用于查询学员服务记录) +INDEX idx_student_id (student_id) + +-- 状态索引(用于按服务状态查询) +INDEX idx_status (status) + +-- 评分索引(用于服务质量统计) +INDEX idx_score (score) + +-- 创建时间索引(用于按时间查询) +INDEX idx_created_at (created_at) + +-- 反馈时间索引(用于按反馈时间查询) +INDEX idx_feedback_time (feedback_time) + +-- 复合索引(用于客户服务统计) +INDEX idx_resource_status_time (resource_id, status, created_at) + +-- 复合索引(用于员工服务统计) +INDEX idx_staff_status_time (staff_id, status, created_at) +``` + +## 注意事项 +- **服务状态管理**: 确保服务状态的及时更新和准确性 +- **评分合理性**: 验证客户评分的合理性,防止恶意评分 +- **反馈内容审核**: 对客户反馈内容进行适当的审核和过滤 +- **服务人员权限**: 控制服务人员对服务记录的修改权限 +- **数据完整性**: 确保关联字段的数据完整性和一致性 +- **响应时效**: 建立服务响应时效的监控和提醒机制 +- **服务质量标准**: 建立明确的服务质量评价标准 +- **隐私保护**: 保护客户反馈和服务记录的隐私信息 +- **数据备份**: 定期备份重要的服务记录数据 +- **统计分析**: 定期分析服务数据,优化服务流程 +- **异常处理**: 处理服务过程中的异常情况和特殊需求 +- **服务跟进**: 建立服务后的跟进和回访机制 +- **培训记录**: 基于服务记录为员工提供针对性培训 +- **客户满意度**: 持续监控和提升客户满意度水平 diff --git a/niucloud/databasedoc/school_six_speed.md b/niucloud/databasedoc/school_six_speed.md new file mode 100644 index 00000000..23d67086 --- /dev/null +++ b/niucloud/databasedoc/school_six_speed.md @@ -0,0 +1,122 @@ +# school_six_speed 表文档 + +## 表概述 +**表名**: school_six_speed +**功能**: 六速跟进管理表,用于记录和管理销售人员对潜在客户的跟进过程,包括客户购买力分析、认知理念、时间安排、距离因素、沟通记录、到访情况等关键信息,为销售转化和客户管理提供完整的跟进数据支持 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 编号 +purchase_power varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 需求购买力 +concept_awareness text utf8mb4_general_ci YES NULL select,insert,update,references 认知理念 +preferred_class_time varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 可选上课时间 +distance varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 距离 +communication text utf8mb4_general_ci YES NULL select,insert,update,references 沟通备注 +promised_visit_time varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 承诺到访时间 +actual_visit_time varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 实际到访时间 +call_intent varchar(10) utf8mb4_general_ci YES low select,insert,update,references 是否加微信1是2否 +first_visit_status text utf8mb4_general_ci YES NULL select,insert,update,references 一访情况 +second_visit_status text utf8mb4_general_ci YES NULL select,insert,update,references 二访情况 +is_closed tinyint(1) NULL YES 0 select,insert,update,references 是否关单: 1-是, 0-否 +staff_id int NULL NO NULL select,insert,update,references 人员ID +resource_id int NULL NO NULL select,insert,update,references 资源ID +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间 +deleted_at int NULL NO 0 select,insert,update,references 逻辑删除时间 +efficacious int NULL NO 1 select,insert,update,references 1有效 2无效 +first_visit_time varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 一访时间 +second_visit_time varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 二访时间 +is_bm int NULL NO 2 select,insert,update,references 1报名 2未报名 +consultation_remark varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 面咨备注 +chasing_orders varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 追单标注 +emotional_stickiness_score tinyint NULL YES NULL select,insert,update,references 情感粘度 1 高 2 中 3 低 +``` + +## 功能用途 + +### 主要功能 +- **客户购买力评估**: 记录和分析客户的需求购买力水平 +- **认知理念管理**: 存储客户对教育理念的认知和接受程度 +- **时间安排协调**: 管理客户可选的上课时间和到访时间安排 +- **距离因素分析**: 记录客户与机构的距离信息,影响服务便利性 +- **沟通记录管理**: 详细记录与客户的沟通内容和备注信息 +- **到访跟踪**: 跟踪客户承诺到访时间和实际到访时间 +- **微信添加管理**: 记录是否成功添加客户微信联系方式 +- **访问状态跟踪**: 管理一访、二访的具体情况和结果 +- **关单状态管理**: 跟踪销售机会的关闭状态和原因 +- **报名状态跟踪**: 记录客户最终是否成功报名 +- **情感粘度评估**: 评估客户与机构的情感连接程度 + +### 业务场景 +- **销售跟进**: 销售人员系统化跟进潜在客户的完整流程 +- **客户分析**: 分析客户购买力、认知水平和需求匹配度 +- **到访管理**: 安排和跟踪客户到校区参观体验的全过程 +- **转化分析**: 分析客户从初次接触到最终报名的转化路径 +- **沟通记录**: 记录每次与客户沟通的重要信息和进展 +- **时间协调**: 协调客户时间安排,提高到访和体验效率 +- **关系维护**: 通过微信等方式维护与客户的长期关系 +- **销售管理**: 管理销售人员的跟进质量和效果 +- **数据分析**: 分析跟进数据,优化销售策略和流程 +- **客户分级**: 根据购买力和意向程度对客户进行分级管理 + +## 关联关系 + +### 主要关联表 +- `school_personnel`: 人员信息表 (staff_id外键关联) +- `school_customer_resource`: 客户资源表 (resource_id外键关联) +- `school_member`: 会员信息表 (报名成功后关联) +- `school_communication_records`: 沟通记录表 (沟通历史关联) +- `school_contract`: 合同信息表 (报名后合同关联) +- `school_campus`: 校区信息表 (距离和服务范围) +- `school_course`: 课程信息表 (客户意向课程) +- `school_six_speed_modification_log`: 六速修改日志表 (变更记录) + +### 关联说明 +- **人员关联**: staff_id关联school_personnel表,确定负责跟进的销售人员 +- **资源关联**: resource_id关联school_customer_resource表,关联客户资源信息 +- **会员关联**: 报名成功后与school_member表建立关联关系 +- **沟通关联**: 与school_communication_records表关联,记录详细沟通历史 +- **合同关联**: 客户报名后与school_contract表关联生成合同 +- **校区关联**: 通过距离字段与school_campus表关联,确定服务校区 +- **课程关联**: 客户意向课程与school_course表关联 +- **日志关联**: 与school_six_speed_modification_log表关联,记录跟进信息变更 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: + - staff_id (销售人员跟进记录查询) + - resource_id (客户资源跟进查询) +- **业务索引**: + - is_closed (关单状态查询) + - is_bm (报名状态查询) + - efficacious (有效性查询) + - call_intent (微信添加状态查询) +- **复合索引**: + - (staff_id, is_closed) (销售人员关单统计) + - (staff_id, is_bm) (销售人员报名统计) + - (resource_id, efficacious) (有效资源跟进) + - (staff_id, created_at) (销售人员跟进时间线) +- **时间索引**: + - created_at (创建时间查询) + - updated_at (更新时间查询) + - first_visit_time (一访时间查询) + - second_visit_time (二访时间查询) + +## 注意事项 +- **数据完整性**: staff_id和resource_id必须在对应的表中存在 +- **状态一致性**: is_closed和is_bm状态变更需要同步更新相关统计数据 +- **时间逻辑**: 实际到访时间不能早于承诺到访时间 +- **访问顺序**: 二访时间不能早于一访时间,需要保证逻辑顺序 +- **软删除**: 使用deleted_at字段实现软删除,保留历史跟进数据 +- **有效性管理**: efficacious字段变更需要重新计算相关统计指标 +- **情感粘度**: emotional_stickiness_score评分需要基于客观标准 +- **沟通记录**: 重要沟通内容建议同步记录到沟通记录表 +- **数据安全**: 客户个人信息需要做好隐私保护 +- **跟进质量**: 建立跟进质量评估机制,提高转化效率 +- **时效性**: 跟进信息需要及时更新,保证数据的时效性 +- **权限控制**: 销售人员只能查看和修改自己负责的跟进记录 +- **统计分析**: 定期分析跟进数据,优化销售流程和策略 +- **备份机制**: 重要跟进数据需要定期备份,防止数据丢失 +- **审计追踪**: 关键状态变更需要记录操作人和操作时间 diff --git a/niucloud/databasedoc/school_six_speed_modification_log.md b/niucloud/databasedoc/school_six_speed_modification_log.md new file mode 100644 index 00000000..0cf428af --- /dev/null +++ b/niucloud/databasedoc/school_six_speed_modification_log.md @@ -0,0 +1,79 @@ +# school_six_speed_modification_log 表文档 + +## 表概述 +**表名**: school_six_speed_modification_log +**功能**: 六速修改日志表,用于记录客户资源表的字段修改历史和操作追踪,包括修改前后值对比、操作人员记录、数据回滚支持等,支持数据变更审计、错误恢复和操作行为分析,为学校提供完整的数据修改审计轨迹和数据安全保障功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 编号 +campus_id int NULL NO NULL select,insert,update,references 校区ID +operator_id int NULL NO NULL select,insert,update,references 操作人的ID +customer_resource_id int NULL NO NULL select,insert,update,references 客户资源表ID +modified_field text utf8mb4_general_ci NO NULL select,insert,update,references 修改的字段 +old_value text utf8mb4_general_ci YES NULL select,insert,update,references 修改前的值 +new_value text utf8mb4_general_ci YES NULL select,insert,update,references 修改后的值 +is_rollback tinyint(1) NULL NO 0 select,insert,update,references 是否回滚: 1-是, 0-否 +rollback_time timestamp NULL YES NULL select,insert,update,references 回滚时间 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +- **修改记录追踪**: 记录客户资源表的字段修改历史,实现数据变更的完整追溯 +- **操作日志管理**: 记录操作人员、操作时间、修改内容等详细信息 +- **数据回滚支持**: 支持数据回滚功能,可以恢复到修改前的状态 +- **校区级别管理**: 按校区维度管理修改日志,支持多校区数据隔离 +- **字段级别追踪**: 精确到字段级别的修改记录,包含修改前后的值对比 +- **时间戳管理**: 完整的时间记录,包括创建时间、更新时间和回滚时间 +- **修改内容存储**: 支持大文本存储,记录复杂的修改内容 +- **回滚状态标识**: 明确标识是否已回滚,避免重复操作 + +### 业务场景 +- **客户信息修改**: 记录客户基本信息、联系方式等关键数据的修改历史 +- **数据审计合规**: 满足数据合规要求,提供完整的数据变更审计轨迹 +- **错误数据恢复**: 当发现数据修改错误时,可以快速回滚到正确状态 +- **操作行为分析**: 分析员工的操作行为,识别异常操作模式 +- **数据质量监控**: 监控数据修改频率和质量,发现潜在问题 +- **权限审计**: 配合权限系统,审计用户的数据修改权限使用情况 +- **业务流程优化**: 通过修改日志分析,优化业务流程和操作规范 +- **客户服务支持**: 为客户服务提供历史数据变更信息,提升服务质量 +- **系统故障恢复**: 在系统故障或数据异常时,提供数据恢复的依据 + +## 关联关系 + +### 主要关联表 +- **school_customer_resources**: 客户资源表,记录被修改的客户资源信息 +- **school_personnel**: 人员表,关联操作人员信息 +- **school_campus**: 校区表,关联校区信息 +- **school_sys_user**: 系统用户表,关联操作用户的详细信息 + +### 关联说明 +- `customer_resource_id` 关联 `school_customer_resources.id`,标识被修改的客户资源 +- `operator_id` 关联 `school_personnel.id` 或 `school_sys_user.id`,标识执行修改的操作人员 +- `campus_id` 关联 `school_campus.id`,标识修改发生的校区 +- 通过时间字段可以关联同时期的其他业务操作记录 +- 支持与权限管理系统的关联,验证操作权限的合法性 + +## 索引建议 +- **主键索引**: `PRIMARY KEY (id)` - 自动创建 +- **校区索引**: `INDEX idx_campus_id (campus_id)` - 支持按校区查询 +- **客户资源索引**: `INDEX idx_customer_resource_id (customer_resource_id)` - 支持按客户查询修改历史 +- **操作人索引**: `INDEX idx_operator_id (operator_id)` - 支持按操作人查询 +- **时间索引**: `INDEX idx_created_at (created_at)` - 支持按时间范围查询 +- **回滚状态索引**: `INDEX idx_is_rollback (is_rollback)` - 支持按回滚状态查询 +- **复合索引**: `INDEX idx_campus_customer_time (campus_id, customer_resource_id, created_at)` - 支持复合查询条件 + +## 注意事项 +- **数据完整性**: 确保修改前后的值记录完整,避免数据丢失 +- **存储空间**: 大文本字段可能占用较多存储空间,需要定期清理历史数据 +- **性能考虑**: 高频修改操作可能产生大量日志,需要考虑性能影响 +- **回滚限制**: 回滚操作需要验证数据的一致性,避免产生数据冲突 +- **权限控制**: 严格控制日志的查看和回滚权限,防止数据泄露 +- **数据保留**: 制定合理的数据保留策略,平衡审计需求和存储成本 +- **并发处理**: 在高并发环境下,需要考虑日志记录的原子性 +- **敏感信息**: 对于敏感信息的修改,需要考虑加密存储或脱敏处理 diff --git a/niucloud/databasedoc/school_stat_hour.md b/niucloud/databasedoc/school_stat_hour.md new file mode 100644 index 00000000..5bfa5ffc --- /dev/null +++ b/niucloud/databasedoc/school_stat_hour.md @@ -0,0 +1,118 @@ +# school_stat_hour 表文档 + +## 表概述 +**表名**: school_stat_hour +**功能**: 统计课时数据表,用于按小时维度统计各种业务指标数据,支持24小时精细化数据统计和多维度数据分析,为业务决策和性能监控提供详细的时间序列数据支持 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references +addon varchar(255) utf8mb4_general_ci NO select,insert,update,references 插件 +field varchar(255) utf8mb4_general_ci NO select,insert,update,references 统计字段 +field_total decimal(10,2) NULL NO 0.00 select,insert,update,references 总计 +year int NULL NO 0 select,insert,update,references 年 +month int NULL NO 0 select,insert,update,references 月 +day int NULL NO 0 select,insert,update,references 天 +start_time int NULL NO 0 select,insert,update,references 当日开始时间戳 +last_time int NULL NO 0 select,insert,update,references 最后执行时间 +hour_0 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_1 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_2 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_3 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_4 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_5 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_6 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_7 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_8 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_9 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_10 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_11 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_12 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_13 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_14 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_15 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_16 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_17 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_18 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_19 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_20 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_21 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_22 decimal(10,2) NULL NO 0.00 select,insert,update,references +hour_23 decimal(10,2) NULL NO 0.00 select,insert,update,references +``` + +## 功能用途 + +### 主要功能 +- **小时级数据统计**: 按小时维度统计各种业务指标数据 +- **多维度统计**: 支持按插件、字段、年月日等多维度进行数据统计 +- **实时数据汇总**: 提供24小时内每小时的数据汇总和总计 +- **统计字段管理**: 灵活配置不同的统计字段和计算方式 +- **时间序列分析**: 支持基于时间序列的数据分析和趋势预测 +- **数据聚合**: 将分散的业务数据按时间维度进行聚合统计 + +### 业务场景 +- **营收统计**: 按小时统计学校的收入、支出、利润等财务数据 +- **学员活跃度**: 统计每小时的学员登录、课程学习、互动等活动数据 +- **课程使用情况**: 按小时统计课程的观看时长、完成率等指标 +- **系统性能监控**: 统计系统的访问量、响应时间、错误率等技术指标 +- **教师工作量**: 按小时统计教师的授课时长、学员互动等工作数据 +- **设备使用率**: 统计教学设备、场地的使用情况和利用率 +- **数据报表生成**: 为管理层提供详细的小时级业务数据报表 + +## 关联关系 + +### 主要关联表 +- **school_addon**: 通过addon字段关联插件信息 +- **school_member**: 可能关联会员相关的统计数据 +- **school_course**: 可能关联课程相关的统计数据 +- **school_pay**: 可能关联支付相关的统计数据 +- **school_personnel**: 可能关联人员相关的统计数据 + +### 关联说明 +- `addon`: 标识统计数据来源的插件或模块 +- `field`: 定义具体的统计字段类型(如收入、学员数、课时等) +- 通过年月日字段与其他业务表的时间字段形成关联 +- 支持多种业务数据的统计汇总,具体关联关系取决于统计字段的定义 + +## 索引建议 +```sql +-- 主键索引(已存在) +PRIMARY KEY (id) + +-- 插件查询索引 +INDEX idx_addon (addon) + +-- 统计字段索引 +INDEX idx_field (field) + +-- 时间维度索引 +INDEX idx_date (year, month, day) + +-- 复合索引:插件+字段 +INDEX idx_addon_field (addon, field) + +-- 复合索引:插件+时间 +INDEX idx_addon_date (addon, year, month, day) + +-- 复合索引:字段+时间 +INDEX idx_field_date (field, year, month, day) + +-- 开始时间索引 +INDEX idx_start_time (start_time) + +-- 最后执行时间索引 +INDEX idx_last_time (last_time) +``` + +## 注意事项 +- **数据精度**: 使用decimal类型确保统计数据的精度,避免浮点数误差 +- **时间同步**: 确保统计时间与业务数据的时间保持同步 +- **数据一致性**: 统计数据应与源数据保持一致,定期进行数据校验 +- **性能优化**: 大量数据统计时需要考虑性能优化和分批处理 +- **存储空间**: 24个小时字段占用较多存储空间,需要定期清理历史数据 +- **并发控制**: 多个统计任务同时执行时需要避免数据冲突 +- **异常处理**: 统计过程中的异常情况需要有完善的错误处理机制 +- **数据备份**: 重要的统计数据需要定期备份,防止数据丢失 diff --git a/niucloud/databasedoc/school_student.md b/niucloud/databasedoc/school_student.md new file mode 100644 index 00000000..16d6a454 --- /dev/null +++ b/niucloud/databasedoc/school_student.md @@ -0,0 +1,104 @@ +# school_student 表文档 + +## 表概述 +**表名**: school_student +**功能**: 学员信息管理表,用于存储和管理学员的基本信息、学习状态、关联关系等核心数据,是教务系统的核心业务表之一。 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 学员ID +name varchar(255) utf8mb4_0900_ai_ci NO NULL select,insert,update,references 学员姓名 +gender tinyint NULL NO NULL select,insert,update,references 性别: 0未知, 1男, 2女 +age decimal(4,2) NULL YES NULL select,insert,update,references 年龄,支持小数表示,例如3.11表示3岁11个月 +birthday date NULL YES NULL select,insert,update,references 生日 +user_id int NULL NO NULL select,insert,update,references 资源ID +campus_id int NULL YES NULL select,insert,update,references 校区ID +class_id int NULL YES NULL select,insert,update,references 班级ID +note text utf8mb4_0900_ai_ci YES NULL select,insert,update,references 备注信息 +status tinyint NULL NO NULL select,insert,update,references 学员状态: 0无效, 1有效,2 过期,3 结业 +created_at datetime NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at datetime NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +deleted_at int NULL NO 0 select,insert,update,references 逻辑删除时间 +emergency_contact varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 紧急联系人 +contact_phone varchar(20) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 联系人电话 +member_label varchar(255) utf8mb4_general_ci YES select,insert,update,references 学员标签 +consultant_id varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 顾问ID +coach_id varchar(255) utf8mb4_0900_ai_ci YES NULL select,insert,update,references 教练ID +trial_class_count int NULL YES 0 select,insert,update,references 体验课次数|默认0 +headimg varchar(1000) utf8mb4_general_ci NO select,insert,update,references 会员头像 +first_come timestamp NULL YES NULL select,insert,update,references 一访时间 +second_come timestamp NULL YES NULL select,insert,update,references 二访时间 +created_person_id int NULL YES NULL select,insert,update,references 首次创建人 id +``` + +## 功能用途 + +### 主要功能 +1. **学员基础信息管理**: 存储学员姓名、性别、年龄、生日等基本信息 +2. **学员状态管理**: 跟踪学员的学习状态(有效、无效、过期、结业) +3. **关联关系管理**: 关联校区、班级、顾问、教练等相关信息 +4. **联系信息管理**: 存储紧急联系人、联系电话等重要联系方式 +5. **学习跟踪**: 记录体验课次数、访问时间等学习轨迹 +6. **个性化标签**: 支持学员标签分类和个性化管理 +7. **数据完整性**: 提供软删除和创建人追踪机制 + +### 业务场景 +- 学员入学注册和信息录入 +- 学员学习状态跟踪和管理 +- 班级学员分配和调整 +- 顾问和教练的学员分配 +- 学员联系信息维护 +- 体验课程安排和统计 +- 学员标签分类和精准营销 +- 学员学习轨迹分析 + +## 关联关系 + +### 直接关联表 +1. **school_campus**: 通过campus_id字段关联学员所属校区 +2. **school_class**: 通过class_id字段关联学员所在班级 +3. **school_sys_user**: 通过consultant_id、coach_id关联顾问和教练 +4. **school_sys_user**: 通过created_person_id关联创建人 +5. **school_user**: 通过user_id字段关联用户资源信息 + +### 间接关联表 +1. **school_course**: 通过班级间接关联课程信息 +2. **school_schedule**: 通过班级间接关联课程安排 +3. **school_attendance**: 通过学员ID关联考勤记录 +4. **school_fee**: 通过学员ID关联费用记录 +5. **school_exam**: 通过学员ID关联考试记录 +6. **school_homework**: 通过学员ID关联作业记录 + +### 关联说明 +- `id`字段作为主键,在多个业务表中作为student_id外键引用 +- `campus_id`关联校区,实现多校区学员管理 +- `class_id`关联班级,支持学员班级调整 +- `consultant_id`和`coach_id`关联员工,实现责任制管理 +- `user_id`关联用户资源,支持学员登录和在线学习 +- 学员状态影响相关业务功能的可用性 + +## 索引建议 +- 主键索引:id(自动创建) +- 普通索引:campus_id(按校区查询学员) +- 普通索引:class_id(按班级查询学员) +- 普通索引:status(按状态查询活跃学员) +- 普通索引:deleted_at(软删除查询) +- 复合索引:campus_id + status(查询校区活跃学员) +- 复合索引:class_id + status(查询班级活跃学员) +- 普通索引:consultant_id(按顾问查询学员) +- 普通索引:coach_id(按教练查询学员) +- 普通索引:created_at(按创建时间排序) + +## 注意事项 +1. **年龄字段**: age使用decimal类型支持精确到月的年龄表示 +2. **软删除**: 使用deleted_at字段实现软删除,保护历史数据 +3. **状态管理**: status字段需要与业务流程保持一致,状态变更需要记录日志 +4. **外键约束**: campus_id、class_id等外键需要保证数据完整性 +5. **联系信息**: 紧急联系人和电话是重要安全信息,需要格式验证 +6. **头像存储**: headimg字段存储图片路径,需要配合文件服务 +7. **访问时间**: first_come和second_come用于跟踪学员访问轨迹 +8. **体验课统计**: trial_class_count需要与实际课程记录保持同步 +9. **数据隐私**: 学员个人信息需要符合数据保护法规 +10. **批量操作**: 大批量学员数据操作需要考虑性能影响 diff --git a/niucloud/databasedoc/school_student_article_reads.md b/niucloud/databasedoc/school_student_article_reads.md new file mode 100644 index 00000000..45cc81ff --- /dev/null +++ b/niucloud/databasedoc/school_student_article_reads.md @@ -0,0 +1,83 @@ +# school_student_article_reads 表文档 + +## 表概述 +**表名**: school_student_article_reads +**功能**: 学员文章阅读记录表,用于记录和跟踪学员对文章和学习资料的阅读行为,包括阅读时间、阅读时长等,支持学习进度监控、行为分析和个性化推荐 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +student_id int NULL NO MUL NULL select,insert,update,references 学员ID +article_id int NULL NO MUL NULL select,insert,update,references 文章ID +read_time timestamp NULL NO CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 阅读时间 +read_duration int NULL YES 0 select,insert,update,references 阅读时长(秒) +``` + +## 功能用途 + +### 主要功能 +- **阅读记录跟踪**: 记录学员对文章和学习资料的阅读行为 +- **阅读时长统计**: 精确统计学员在每篇文章上的阅读时间 +- **学习进度监控**: 监控学员的学习进度和阅读习惯 +- **阅读时间记录**: 记录每次阅读的具体时间点 +- **学习行为分析**: 为学习行为分析提供基础数据 +- **个性化推荐**: 基于阅读记录提供个性化内容推荐 +- **学习效果评估**: 评估学员的学习投入度和专注度 +- **数据统计支持**: 为各类学习统计报表提供数据支持 + +### 业务场景 +- **在线学习跟踪**: 跟踪学员在线阅读教学文章的情况 +- **作业资料阅读**: 记录学员阅读作业说明和参考资料的时间 +- **课前预习监控**: 监控学员课前预习资料的阅读完成情况 +- **课后复习跟踪**: 跟踪学员课后复习资料的阅读进度 +- **学习效果分析**: 分析阅读时长与学习效果的关联性 +- **个性化教学**: 根据阅读习惯调整教学内容和方式 +- **家长反馈**: 为家长提供孩子的学习投入度数据 +- **教师教学调整**: 帮助教师了解学员的学习状态 +- **学习奖励机制**: 基于阅读时长和频次设计奖励机制 + +## 关联关系 + +### 主要关联表 +- **school_member**: 学员表,关联阅读文章的学员信息 +- **school_article**: 文章表,关联被阅读的文章内容 +- **school_course**: 课程表,关联文章所属的课程 +- **school_class**: 班级表,关联学员所在的班级 +- **school_learning_progress**: 学习进度表,关联学员的整体学习进度 +- **school_homework**: 作业表,关联与作业相关的阅读材料 +- **school_exam**: 考试表,关联考试相关的阅读材料 +- **school_student_behavior**: 学员行为表,关联其他学习行为记录 + +### 关联说明 +- `student_id` 关联 `school_member.id`,标识阅读文章的学员 +- `article_id` 关联 `school_article.id`,标识被阅读的文章 +- 与学习进度系统关联,更新学员的学习完成度 +- 与推荐系统关联,基于阅读历史推荐相关内容 +- 与统计系统关联,生成学习行为分析报告 +- 与通知系统关联,提醒学员完成必读材料 +- 与奖励系统关联,基于阅读表现给予奖励 +- 与家长端关联,展示学员的学习投入情况 + +## 索引建议 +- **主键索引**: `PRIMARY KEY (id)` - 自动创建 +- **学员索引**: `INDEX idx_student_id (student_id)` - 支持按学员查询阅读记录 +- **文章索引**: `INDEX idx_article_id (article_id)` - 支持按文章查询阅读情况 +- **阅读时间索引**: `INDEX idx_read_time (read_time)` - 支持按阅读时间查询 +- **阅读时长索引**: `INDEX idx_read_duration (read_duration)` - 支持按阅读时长查询 +- **复合索引**: `INDEX idx_student_article (student_id, article_id)` - 支持学员和文章的复合查询 +- **时间范围索引**: `INDEX idx_student_time (student_id, read_time)` - 支持学员和时间的复合查询 +- **唯一索引**: `UNIQUE INDEX idx_unique_read (student_id, article_id, read_time)` - 防止重复记录 + +## 注意事项 +- **数据准确性**: 确保阅读时长记录的准确性,避免异常数据 +- **重复记录防护**: 防止同一学员同一时间对同一文章的重复记录 +- **隐私保护**: 保护学员的阅读行为隐私数据 +- **性能优化**: 合理控制记录频率,避免过度记录影响性能 +- **数据清理**: 定期清理异常的阅读记录数据 +- **时长合理性**: 验证阅读时长的合理性,过滤异常值 +- **存储优化**: 考虑历史数据的归档和存储优化 +- **统计准确性**: 确保基于阅读记录的统计数据准确性 +- **实时性要求**: 平衡数据实时性和系统性能的要求 +- **数据备份**: 定期备份重要的学习行为数据 diff --git a/niucloud/databasedoc/school_student_course_usage.md b/niucloud/databasedoc/school_student_course_usage.md new file mode 100644 index 00000000..13a471e9 --- /dev/null +++ b/niucloud/databasedoc/school_student_course_usage.md @@ -0,0 +1,127 @@ +# school_student_course_usage 表文档 + +## 表概述 +**表名**: school_student_course_usage +**功能**: 学员课程使用记录表,用于详细记录学员对课程的使用情况,包括学习时长、进度跟踪、访问频次等数据,为学习效果分析、课程优化和个性化推荐提供数据支撑 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 记录编号 +student_course_id int NULL NO NULL select,insert,update,references 学员课程ID(关联到student_courses表) +used_hours int NULL NO NULL select,insert,update,references 本次使用的课时数 +usage_date date NULL NO NULL select,insert,update,references 课时使用日期 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +student_id int NULL YES NULL select,insert,update,references 学员id +resource_id int NULL YES NULL select,insert,update,references 资源 id +``` + +## 功能用途 + +### 主要功能 +- **学习行为记录**: 详细记录学员的学习行为和使用模式 +- **进度跟踪**: 实时跟踪学员的学习进度和完成情况 +- **时长统计**: 统计学员在课程上的实际学习时间 +- **访问分析**: 分析学员的访问频次和学习习惯 +- **效果评估**: 为学习效果评估提供客观数据支撑 +- **个性化推荐**: 基于使用数据为学员推荐合适的课程 +- **课程优化**: 为课程内容和结构优化提供数据依据 +- **学习报告**: 生成详细的学习报告和统计分析 + +### 业务场景 +- **学习监控**: 实时监控学员的学习状态和活跃度 +- **进度管理**: 帮助教师和管理员了解学员学习进度 +- **效果分析**: 分析不同课程的学习效果和受欢迎程度 +- **个性化服务**: 根据学习数据提供个性化学习建议 +- **课程改进**: 基于使用数据优化课程内容和教学方法 +- **学习报告**: 为学员、教师、家长提供详细的学习报告 +- **数据挖掘**: 挖掘学习行为模式,发现教学规律 +- **质量评估**: 评估课程质量和教学效果 +- **资源配置**: 根据使用情况合理配置教学资源 +- **预警机制**: 识别学习困难的学员,及时提供帮助 + +## 关联关系 + +### 直接关联 +- **school_member**: 通过member_id关联学员信息 +- **school_course**: 通过course_id关联课程信息 +- **school_sys_user**: 通过create_uid关联创建用户 +- **school_sys_user**: 通过update_uid关联更新用户 + +### 业务关联 +- **school_class**: 关联班级信息,了解班级学习情况 +- **school_personnel**: 关联教师信息,分析教学效果 +- **school_contract**: 关联合同信息,验证课程权限 +- **school_attendance**: 关联考勤记录,完善学习档案 +- **school_homework**: 关联作业情况,评估学习效果 + +### 统计关联 +- **school_stat_day**: 日统计数据的基础来源 +- **school_stat_hour**: 小时统计数据的基础来源 +- **学习分析报表**: 为各类学习分析报表提供数据支撑 + +## 索引建议 + +### 主键索引 +```sql +PRIMARY KEY (`id`) +``` + +### 业务索引 +```sql +-- 学员查询索引 +INDEX `idx_member_id` (`member_id`) + +-- 课程查询索引 +INDEX `idx_course_id` (`course_id`) + +-- 使用日期索引 +INDEX `idx_usage_date` (`usage_date`) + +-- 创建时间索引 +INDEX `idx_create_time` (`create_time`) + +-- 学员课程组合索引 +INDEX `idx_member_course` (`member_id`, `course_id`) + +-- 日期范围查询索引 +INDEX `idx_member_date` (`member_id`, `usage_date`) + +-- 课程统计索引 +INDEX `idx_course_date` (`course_id`, `usage_date`) +``` + +### 索引说明 +- **member_id索引**: 支持按学员查询使用记录 +- **course_id索引**: 支持按课程统计使用情况 +- **usage_date索引**: 支持按日期范围查询 +- **组合索引**: 优化常用的学员+课程组合查询 +- **统计索引**: 支持各类统计分析查询 + +## 注意事项 + +### 数据准确性 +- **实时记录**: 确保学习行为的实时准确记录 +- **数据完整性**: 保证使用记录的完整性和一致性 +- **时间精度**: 精确记录学习时间,支持细粒度分析 +- **去重处理**: 避免重复记录同一学习行为 + +### 性能优化 +- **批量处理**: 对大量使用记录采用批量处理方式 +- **数据分区**: 按时间或学员进行数据分区提升查询效率 +- **缓存策略**: 对热点数据进行缓存优化 +- **索引优化**: 根据查询模式优化索引设计 + +### 隐私保护 +- **数据脱敏**: 在数据分析时对敏感信息进行脱敏处理 +- **访问控制**: 严格控制学习数据的访问权限 +- **数据备份**: 定期备份重要的学习记录数据 +- **合规要求**: 确保数据处理符合相关法律法规 + +### 业务规则 +- **异常检测**: 识别异常的学习行为模式 +- **数据清理**: 定期清理无效或过期的使用记录 +- **统计准确**: 确保基于使用数据的统计分析准确可靠 +- **报告生成**: 为各类学习报告提供准确的数据支撑 diff --git a/niucloud/databasedoc/school_student_courses.md b/niucloud/databasedoc/school_student_courses.md new file mode 100644 index 00000000..f4c00387 --- /dev/null +++ b/niucloud/databasedoc/school_student_courses.md @@ -0,0 +1,110 @@ +# school_student_courses 表文档 + +## 表概述 +**表名**: school_student_courses +**功能**: 学员课程关联表,负责管理学员与课程的关联关系,包括课时管理、使用情况跟踪、教练分配等核心功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 记录编号 +student_id int NULL NO MUL NULL select,insert,update,references 学员ID +course_id int NULL NO NULL select,insert,update,references 课程ID +total_hours int NULL NO NULL select,insert,update,references 总正式课时数 +gift_hours int NULL YES 0 select,insert,update,references 赠送课时数 +start_date date NULL NO NULL select,insert,update,references 课程开始日期 +end_date date NULL NO NULL select,insert,update,references 课程结束日期 +use_total_hours int NULL NO 0 select,insert,update,references 已使用课包课时数 +use_gift_hours int NULL NO 0 select,insert,update,references 已使用课包赠送课时数 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +single_session_count int NULL YES NULL select,insert,update,references 单次消课数量 +status tinyint(1) NULL YES NULL select,insert,update,references 课程状态1有效2过期3等待期4延期 +resource_id int NULL YES NULL select,insert,update,references 资源ID +main_coach_id int NULL YES NULL select,insert,update,references 主教练ID +assistant_ids varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 助教ID列表(逗号分隔) +education_id int NULL YES NULL select,insert,update,references 教务ID +``` + +## 功能用途 + +### 主要功能 +1. **学员课程关联**: 建立学员与课程的关联关系 +2. **课时管理**: 管理总课时数、赠送课时数及使用情况 +3. **课程周期管理**: 管理课程的开始和结束日期 +4. **课时消耗跟踪**: 跟踪已使用的正式课时和赠送课时 +5. **教练分配**: 管理主教练和助教的分配 +6. **课程状态控制**: 管理课程的有效性和状态变更 +7. **单次消课设置**: 设置每次上课消耗的课时数量 +8. **教务管理**: 关联教务人员进行课程管理 +9. **资源关联**: 关联相关资源信息 + +### 业务场景 +- 学员报名课程时创建课程关联记录 +- 课时包购买和赠送课时分配 +- 学员上课时进行课时消耗 +- 教练排课和教学安排 +- 课程到期提醒和续费管理 +- 课程状态变更和延期处理 +- 课时使用情况统计和分析 +- 教务人员课程管理和监督 +- 课程资源分配和调整 + +## 关联关系 + +### 主要关联表 +1. **school_student**: 通过student_id关联学员信息 +2. **school_course**: 通过course_id关联课程信息 +3. **school_personnel**: 通过main_coach_id关联主教练 +4. **school_personnel**: 通过assistant_ids关联助教 +5. **school_personnel**: 通过education_id关联教务人员 +6. **school_attendance**: 学员考勤记录关联 +7. **school_schedule**: 课程安排关联 +8. **school_pay**: 课程付费记录关联 +9. **school_contract**: 课程合同关联 + +### 关联说明 +- **学员关联**: student_id关联学员基本信息和学习状态 +- **课程关联**: course_id关联课程详细信息和课程设置 +- **教练关联**: main_coach_id关联主教练,assistant_ids关联多个助教 +- **教务关联**: education_id关联负责的教务人员 +- **资源关联**: resource_id关联相关教学资源 +- **考勤关联**: 与考勤表关联跟踪上课情况 +- **排课关联**: 与排课表关联管理课程安排 +- **付费关联**: 与付费记录关联课程购买情况 + +## 索引建议 +- **主键索引**: id(已存在) +- **外键索引**: student_id(学员课程查询) +- **业务索引**: + - course_id(课程学员查询) + - main_coach_id(教练课程查询) + - education_id(教务课程查询) + - status(状态查询) +- **复合索引**: + - (student_id, status)(学员有效课程查询) + - (course_id, status)(课程有效学员查询) + - (main_coach_id, status)(教练有效课程查询) + - (start_date, end_date)(课程周期查询) +- **时间索引**: + - start_date(开始时间查询) + - end_date(结束时间查询) + - created_at(创建时间查询) + +## 注意事项 +1. **课时完整性**: 总课时数必须等于已使用课时数加剩余课时数 +2. **状态一致性**: 课程状态变更需要与实际情况保持一致 +3. **日期有效性**: 开始日期不能晚于结束日期 +4. **教练有效性**: 主教练和助教必须是有效的教练人员 +5. **课时消耗**: 单次消课数量不能超过剩余课时 +6. **助教格式**: assistant_ids字段存储逗号分隔的助教ID列表 +7. **过期处理**: 课程到期后需要及时更新状态 +8. **数据同步**: 课时使用情况需要与考勤记录保持同步 +9. **权限控制**: 只有相关教练和教务人员可以操作 +10. **历史保留**: 课程结束后数据需要保留用于统计分析 +11. **并发控制**: 课时消耗操作需要防止并发冲突 +12. **赠送课时**: 赠送课时的使用需要有明确的规则 +13. **延期处理**: 课程延期需要更新结束日期和状态 +14. **资源管理**: 课程资源的分配和回收需要及时处理 +15. **审计要求**: 重要操作需要记录操作日志 diff --git a/niucloud/databasedoc/school_student_favorites.md b/niucloud/databasedoc/school_student_favorites.md new file mode 100644 index 00000000..0bb5c038 --- /dev/null +++ b/niucloud/databasedoc/school_student_favorites.md @@ -0,0 +1,108 @@ +# school_student_favorites 表文档 + +## 表概述 +**表名**: school_student_favorites +**功能**: 学员收藏表,用于管理学员对各类内容的收藏功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +student_id int NULL NO MUL NULL select,insert,update,references 学员ID +target_type varchar(50) utf8mb4_0900_ai_ci NO MUL NULL select,insert,update,references 收藏类型:article-文章 +target_id int NULL NO NULL select,insert,update,references 目标ID +created_at timestamp NULL NO CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 收藏时间 +``` + +## 功能用途 + +### 主要功能 +- **收藏管理**: 管理学员对各类内容的收藏和取消收藏操作 +- **多类型支持**: 支持文章(article)等多种类型内容的收藏 +- **学员关联**: 通过student_id关联具体的学员用户 +- **目标定位**: 通过target_type和target_id精确定位收藏的具体内容 +- **时间记录**: 记录收藏的具体时间,便于排序和统计 +- **收藏列表**: 为学员提供个人收藏内容的列表展示 +- **快速访问**: 为学员提供快速访问收藏内容的入口 +- **收藏统计**: 统计学员的收藏行为和偏好分析 +- **内容推荐**: 基于收藏数据为学员推荐相关内容 + +### 业务场景 +- **文章收藏**: 学员收藏感兴趣的教学文章、学习资料等 +- **课程收藏**: 学员收藏心仪的课程,便于后续报名学习 +- **视频收藏**: 学员收藏教学视频、录播课程等多媒体内容 +- **资料收藏**: 学员收藏学习资料、课件、习题等教学资源 +- **活动收藏**: 学员收藏感兴趣的校园活动、讲座等 +- **教师收藏**: 学员收藏喜欢的任课教师,关注其课程动态 +- **个人中心**: 在个人中心展示学员的收藏内容列表 +- **学习计划**: 基于收藏内容制定个性化学习计划 +- **内容推荐**: 根据收藏偏好推荐相似的学习内容 +- **社交分享**: 学员可以分享自己的收藏内容给其他同学 + +## 关联关系 + +### 主要关联表 +- **school_student**: 学员表,通过student_id关联学员信息 +- **school_article**: 文章表,当target_type为article时关联 +- **school_course**: 课程表,当target_type为course时关联 +- **school_video**: 视频表,当target_type为video时关联 +- **school_personnel**: 教师表,当target_type为teacher时关联 +- **school_activity**: 活动表,当target_type为activity时关联 +- **school_resource**: 资源表,当target_type为resource时关联 +- **school_member**: 会员表,通过学员关联到会员信息 + +### 关联说明 +- `student_id` 关联 `school_student.id`,标识收藏的学员 +- `target_type` 和 `target_id` 组合标识收藏的具体内容 +- **文章收藏**: target_type='article', target_id关联school_article.id +- **课程收藏**: target_type='course', target_id关联school_course.id +- **视频收藏**: target_type='video', target_id关联school_video.id +- **教师收藏**: target_type='teacher', target_id关联school_personnel.id +- **多态关联**: 通过target_type实现对不同类型内容的统一收藏管理 +- **学员关联**: 与学员表关联,获取收藏者的详细信息 +- **内容关联**: 根据类型动态关联到具体的内容表 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 学员ID索引(用于查询学员的收藏列表) +INDEX idx_student_id (student_id) + +-- 目标类型索引(用于按类型查询收藏) +INDEX idx_target_type (target_type) + +-- 创建时间索引(用于按时间排序) +INDEX idx_created_at (created_at) + +-- 复合索引(用于查询学员的特定类型收藏) +INDEX idx_student_target_type (student_id, target_type) + +-- 复合索引(用于查询特定内容的收藏情况) +INDEX idx_target_type_id (target_type, target_id) + +-- 复合索引(用于防重复收藏) +UNIQUE INDEX idx_student_target_unique (student_id, target_type, target_id) + +-- 复合索引(用于收藏时间排序) +INDEX idx_student_created (student_id, created_at DESC) +``` + +## 注意事项 +- **重复收藏**: 需要防止学员重复收藏同一内容,建议添加唯一索引 +- **数据一致性**: 删除目标内容时需要同步删除相关收藏记录 +- **类型扩展**: target_type字段需要支持新的内容类型扩展 +- **权限控制**: 学员只能管理自己的收藏,不能查看他人收藏 +- **性能优化**: 收藏列表查询需要考虑分页和缓存机制 +- **数据清理**: 定期清理无效的收藏记录(目标内容已删除) +- **统计分析**: 可以基于收藏数据进行用户行为分析 +- **存储限制**: 考虑对单个学员的收藏数量进行合理限制 +- **时间精度**: created_at字段保证时间记录的准确性 +- **业务逻辑**: 收藏和取消收藏的业务逻辑需要保证原子性 +- **内容关联**: 确保target_id对应的内容确实存在 +- **索引维护**: 定期维护和优化查询索引 +- **备份策略**: 重要的收藏数据需要定期备份 +- **监控告警**: 监控收藏功能的使用情况和异常 +- **用户体验**: 收藏操作需要提供良好的用户反馈 diff --git a/niucloud/databasedoc/school_student_label.md b/niucloud/databasedoc/school_student_label.md new file mode 100644 index 00000000..df6beb54 --- /dev/null +++ b/niucloud/databasedoc/school_student_label.md @@ -0,0 +1,75 @@ +# school_student_label 表文档 + +## 表概述 +**表名**: school_student_label +**功能**: 学员标签管理表,用于创建和管理学员的分类标签,支持多维度学员分类、个性化教学和精准营销,包括标签命名、排序控制和备注说明,为学校提供完整的学员画像构建和数据分析功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +label_id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 标签id +label_name varchar(50) utf8mb4_general_ci NO select,insert,update,references 标签名称 +memo varchar(1000) utf8mb4_general_ci NO select,insert,update,references 备注 +sort int NULL NO 0 select,insert,update,references 排序 +create_time int NULL NO 0 select,insert,update,references 添加时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **标签分类管理**: 创建和管理学员的分类标签,支持多维度学员分类 +- **标签命名规范**: 统一管理标签名称,避免重复和混乱的标签体系 +- **标签排序控制**: 支持标签的排序功能,便于标签的有序展示和管理 +- **标签备注说明**: 为每个标签提供详细的备注说明,明确标签的使用场景 +- **标签时间追踪**: 记录标签的创建和更新时间,便于标签生命周期管理 +- **标签唯一标识**: 通过唯一ID确保标签的准确引用和关联 +- **标签描述存储**: 支持长文本备注,详细描述标签的含义和用途 +- **标签层次管理**: 通过排序字段实现标签的层次化管理 + +### 业务场景 +- **学员分类管理**: 根据学习能力、兴趣爱好、年龄段等维度对学员进行分类 +- **个性化教学**: 基于学员标签制定个性化的教学方案和课程推荐 +- **营销活动定位**: 根据学员标签进行精准的营销活动投放和推广 +- **班级组建**: 利用标签信息合理组建班级,确保教学效果 +- **学员画像构建**: 通过多个标签组合构建完整的学员画像 +- **数据统计分析**: 基于标签进行学员数据的统计分析和报表生成 +- **客户关系管理**: 帮助销售和客服人员更好地了解和服务学员 +- **教学资源配置**: 根据标签分布合理配置教学资源和师资力量 +- **学员跟踪服务**: 为不同标签的学员提供差异化的跟踪服务 + +## 关联关系 + +### 主要关联表 +- **school_member**: 会员表,通过中间表关联学员和标签的多对多关系 +- **school_member_label_rel**: 学员标签关系表,记录学员与标签的关联关系 +- **school_customer_resources**: 客户资源表,可能通过标签进行客户分类 +- **school_course**: 课程表,可能根据学员标签推荐相应课程 +- **school_class**: 班级表,可能根据学员标签进行班级分组 +- **school_personnel**: 人员表,教师可能根据学员标签调整教学策略 + +### 关联说明 +- 与 `school_member` 通过中间表形成多对多关系,一个学员可以有多个标签 +- 与 `school_course` 关联,支持基于标签的课程推荐和匹配 +- 与 `school_class` 关联,支持基于标签的班级组建和管理 +- 与营销系统关联,支持基于标签的精准营销和活动推送 +- 与数据分析系统关联,支持基于标签的数据统计和分析 + +## 索引建议 +- **主键索引**: `PRIMARY KEY (label_id)` - 自动创建 +- **标签名称索引**: `UNIQUE INDEX idx_label_name (label_name)` - 确保标签名称唯一性 +- **排序索引**: `INDEX idx_sort (sort)` - 支持按排序字段查询 +- **时间索引**: `INDEX idx_create_time (create_time)` - 支持按创建时间查询 +- **更新时间索引**: `INDEX idx_update_time (update_time)` - 支持按更新时间查询 +- **复合索引**: `INDEX idx_sort_create (sort, create_time)` - 支持排序和时间的复合查询 + +## 注意事项 +- **标签唯一性**: 确保标签名称的唯一性,避免重复标签造成混乱 +- **标签命名规范**: 建立标签命名规范,确保标签名称的一致性和可理解性 +- **标签生命周期**: 定期审查标签的使用情况,清理无用或过时的标签 +- **标签权限管理**: 控制标签的创建、修改和删除权限,防止随意操作 +- **标签关联影响**: 删除标签前需要检查是否有学员关联,避免数据不一致 +- **排序字段维护**: 保持排序字段的合理性,避免排序混乱 +- **备注信息完整**: 确保备注信息的完整性,便于理解标签的用途 +- **标签数量控制**: 控制标签的总数量,避免标签过多导致管理困难 diff --git a/niucloud/databasedoc/school_sys_agreement.md b/niucloud/databasedoc/school_sys_agreement.md new file mode 100644 index 00000000..de25a367 --- /dev/null +++ b/niucloud/databasedoc/school_sys_agreement.md @@ -0,0 +1,102 @@ +# school_sys_agreement 表文档 + +## 表概述 +**表名**: school_sys_agreement +**功能**: 系统协议管理表,用于管理各种类型的协议和合同模板,包括用户协议、隐私政策、服务条款等法律文档的存储、版本控制和内容管理,为平台提供完整的协议管理解决方案 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 主键 +agreement_key varchar(255) utf8mb4_general_ci NO select,insert,update,references 协议关键字 +title varchar(255) utf8mb4_general_ci NO select,insert,update,references 协议标题 +content text utf8mb4_general_ci YES NULL select,insert,update,references 协议内容 +create_time int NULL NO 0 select,insert,update,references 添加时间 +update_time int NULL NO 0 select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +- **协议模板管理**: 创建和维护各种协议模板,支持富文本内容编辑 +- **版本控制**: 管理协议的多个版本,跟踪修改历史和生效时间 +- **分类管理**: 按协议类型进行分类组织,便于查找和管理 +- **状态控制**: 控制协议的启用/禁用状态,确保合规性 +- **内容渲染**: 支持协议内容的动态展示和格式化输出 +- **法律合规**: 确保平台运营的法律合规性和风险控制 + +### 业务场景 +- **用户注册**: 新用户注册时展示并要求同意相关协议 +- **隐私保护**: 管理隐私政策,确保用户数据保护合规 +- **服务条款**: 定义平台服务的使用条款和限制条件 +- **法律声明**: 发布免责声明和法律责任条款 +- **商业合作**: 管理合作伙伴协议和商务条款 +- **政策更新**: 当法律法规变化时及时更新相关协议 +- **风险控制**: 通过协议条款降低平台运营风险 +- **合规审计**: 为监管部门提供完整的协议文档记录 + +## 关联关系 + +### 直接关联 +- **school_sys_user**: 通过create_uid关联创建用户 +- **school_sys_user**: 通过update_uid关联更新用户 + +### 业务关联 +- **school_member**: 用户注册时需要同意相关协议 +- **school_sys_config**: 系统配置中可能引用协议设置 +- **school_sys_log**: 协议操作会记录到系统日志 +- **school_sys_notice**: 协议更新时可能发送通知 + +### 功能关联 +- **用户注册流程**: 与用户注册模块集成 +- **法律合规模块**: 与合规检查功能关联 +- **内容管理系统**: 与CMS内容编辑功能关联 + +## 索引建议 + +### 主键索引 +```sql +PRIMARY KEY (`id`) +``` + +### 业务索引 +```sql +-- 协议关键字查询索引 +INDEX `idx_agreement_key` (`agreement_key`) + +-- 标题搜索索引 +INDEX `idx_title` (`title`) + +-- 创建时间索引 +INDEX `idx_create_time` (`create_time`) + +-- 更新时间索引 +INDEX `idx_update_time` (`update_time`) +``` + +### 索引说明 +- **agreement_key索引**: 支持按协议关键字快速查询 +- **title索引**: 支持按标题搜索协议 +- **create_time索引**: 支持按创建时间排序和查询 +- **update_time索引**: 支持按更新时间排序和查询 + +## 注意事项 + +### 法律合规 +- **内容审核**: 所有协议内容必须经过法务部门审核 +- **法规遵循**: 确保协议条款符合当地法律法规要求 +- **定期更新**: 根据法律变化及时更新协议内容 +- **版本控制**: 保留所有历史版本以备法律追溯 + +### 技术实现 +- **内容安全**: 对协议内容进行XSS防护和安全过滤 +- **性能优化**: 对常用协议进行缓存以提升访问速度 +- **权限管理**: 严格控制协议编辑和发布权限 +- **数据备份**: 定期备份重要协议数据 + +### 业务流程 +- **审批流程**: 建立协议发布的审批机制 +- **通知机制**: 协议更新时及时通知相关用户 +- **用户确认**: 记录用户对协议的确认状态 +- **软删除**: 使用软删除避免误删重要协议 diff --git a/niucloud/databasedoc/school_sys_area.md b/niucloud/databasedoc/school_sys_area.md new file mode 100644 index 00000000..b5b65d5e --- /dev/null +++ b/niucloud/databasedoc/school_sys_area.md @@ -0,0 +1,101 @@ +# school_sys_area 表文档 + +## 表概述 +**表名**: school_sys_area +**功能**: 系统地区管理表,用于存储全国省市区县等行政区划信息,支持层级结构管理和地理位置定位,为系统提供地区选择的基础数据支撑 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references +pid int NULL NO 0 select,insert,update,references 父级 +name varchar(50) utf8mb4_general_ci NO select,insert,update,references 名称 +shortname varchar(30) utf8mb4_general_ci NO select,insert,update,references 简称 +longitude varchar(30) utf8mb4_general_ci NO select,insert,update,references 经度 +latitude varchar(30) utf8mb4_general_ci NO select,insert,update,references 纬度 +level smallint NULL NO 0 select,insert,update,references 级别 +sort mediumint NULL NO 0 select,insert,update,references 排序 +status tinyint NULL NO 1 select,insert,update,references 状态1有效 +``` + +## 功能用途 + +### 主要功能 +- **地区数据管理**: 存储全国省市区县等行政区划信息 +- **层级结构管理**: 通过pid字段构建地区的树形层级关系 +- **地理位置定位**: 存储经纬度坐标信息,支持地图定位功能 +- **地区分级管理**: 通过level字段区分省、市、区县等不同级别 +- **地区状态控制**: 管理地区的启用/禁用状态 +- **地区排序管理**: 支持自定义地区显示顺序 +- **地区简称管理**: 提供地区的简称信息,便于显示和检索 +- **基础数据支撑**: 为其他业务模块提供地区选择的基础数据 +- **地区检索优化**: 支持按名称、简称等多种方式检索地区 + +### 业务场景 +- **用户地址选择**: 用户注册、收货地址等场景的地区选择 +- **校区地址管理**: 校区创建时选择所在地区 +- **人员地址信息**: 教师、学员等人员信息中的地址选择 +- **统计分析**: 按地区统计校区分布、学员分布等数据 +- **地图展示**: 在地图上标注校区位置、服务范围等 +- **配送范围设置**: 设置教材配送、上门服务的覆盖范围 +- **营销活动**: 按地区开展针对性的营销推广活动 +- **数据筛选**: 按地区筛选各类业务数据和报表 +- **权限控制**: 基于地区的数据访问权限控制 +- **服务区域**: 定义不同校区的服务覆盖区域 + +## 关联关系 + +### 主要关联表 +- **school_campus**: 校区表,关联campus_area_id字段 +- **school_member**: 会员表,关联地址相关字段 +- **school_personnel**: 人员表,关联地址信息 +- **school_member_address**: 会员地址表,关联省市区字段 +- **school_sys_config**: 系统配置表,可能关联默认地区设置 + +### 关联说明 +- **自关联**: 通过pid字段实现地区的层级关系,pid=0为顶级地区 +- **校区关联**: 校区创建时需要选择所在地区,用于地理位置标识 +- **地址关联**: 各类地址信息都需要关联到具体的省市区 +- **统计关联**: 各类统计报表按地区维度进行数据汇总 +- **权限关联**: 可能与用户权限系统结合,实现地区级别的数据权限 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 父级ID索引(用于查询子地区) +INDEX idx_pid (pid) + +-- 级别索引(用于按级别查询) +INDEX idx_level (level) + +-- 状态索引(用于查询有效地区) +INDEX idx_status (status) + +-- 排序索引(用于排序显示) +INDEX idx_sort (sort) + +-- 复合索引(用于层级查询) +INDEX idx_pid_level_status (pid, level, status) + +-- 名称索引(用于地区搜索) +INDEX idx_name (name) +``` + +## 注意事项 +- **数据完整性**: 确保地区数据的完整性和准确性,避免缺失重要地区 +- **层级一致性**: 维护地区层级关系的一致性,避免出现循环引用 +- **级别规范**: level字段应遵循统一的级别定义(如1-省,2-市,3-区县) +- **坐标精度**: 经纬度数据应保证足够的精度,支持准确的地理定位 +- **状态管理**: 禁用地区时需要考虑对关联数据的影响 +- **数据更新**: 地区信息变更时需要同步更新相关业务数据 +- **性能优化**: 地区数据查询频繁,需要合理设置缓存策略 +- **编码规范**: 建议使用标准的行政区划代码作为地区标识 +- **数据同步**: 定期同步最新的行政区划调整信息 +- **排序逻辑**: 排序字段应考虑用户习惯和业务需求 +- **简称唯一性**: 在同级地区中简称应避免重复 +- **删除限制**: 已被引用的地区不应允许删除 +- **批量操作**: 支持地区数据的批量导入和更新功能 +- **数据备份**: 重要的基础数据应定期备份 diff --git a/niucloud/databasedoc/school_sys_attachment.md b/niucloud/databasedoc/school_sys_attachment.md new file mode 100644 index 00000000..e0ee020b --- /dev/null +++ b/niucloud/databasedoc/school_sys_attachment.md @@ -0,0 +1,102 @@ +# school_sys_attachment 表文档 + +## 表概述 +**表名**: school_sys_attachment +**功能**: 系统附件管理表,负责管理教务系统中的各种文件附件,包括图片、视频、文档等多媒体资源的存储、分类、访问控制等功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +att_id int NULL NO PRI NULL auto_increment select,insert,update,references +name varchar(100) utf8mb4_general_ci NO select,insert,update,references 附件名称 +real_name varchar(255) utf8mb4_general_ci NO select,insert,update,references 原始文件名 +path varchar(255) utf8mb4_general_ci NO select,insert,update,references 完整地址 +dir varchar(200) utf8mb4_general_ci NO select,insert,update,references 附件路径 +att_size char(30) utf8mb4_general_ci NO select,insert,update,references 附件大小 +att_type char(30) utf8mb4_general_ci NO select,insert,update,references 附件类型image,video +storage_type varchar(20) utf8mb4_general_ci NO select,insert,update,references 图片上传类型 local本地 aliyun 阿里云oss qiniu 七牛 .... +cate_id int NULL NO 0 select,insert,update,references 相关分类 +create_time int NULL NO 0 select,insert,update,references 上传时间 +update_time int NULL NO 0 select,insert,update,references +url varchar(255) utf8mb4_general_ci NO select,insert,update,references 网络地址 +``` + +## 功能用途 + +### 主要功能 +- **文件附件管理**: 管理系统中的各种文件附件,包括图片、视频、文档等 +- **多存储支持**: 支持本地存储、阿里云OSS、七牛云等多种存储方式 +- **文件分类**: 通过分类ID对附件进行分类管理 +- **文件信息记录**: 记录文件的原始名称、存储路径、大小、类型等详细信息 +- **网络访问**: 提供文件的网络访问地址 +- **文件类型识别**: 自动识别和分类文件类型(图片、视频等) +- **存储路径管理**: 管理文件的存储目录和完整路径 +- **文件大小统计**: 记录和统计文件大小信息 +- **上传时间追踪**: 跟踪文件的上传和更新时间 + +### 业务场景 +- **课程资料**: 上传和管理课程相关的教学资料、课件 +- **学员作业**: 学员提交的作业文件和附件 +- **教师资源**: 教师上传的教学资源和素材 +- **系统配置**: 系统logo、背景图等配置文件 +- **用户头像**: 学员和教师的头像图片 +- **合同文档**: 合同相关的文档和附件 +- **证书文件**: 学员证书、资质证明等文件 +- **宣传材料**: 学校宣传图片、视频等营销素材 +- **备份存档**: 重要文件的备份和存档管理 + +## 关联关系 + +### 主要关联表 +- `school_assignment`: 作业表 (作业附件) +- `school_course`: 课程表 (课程资料) +- `school_student`: 学员表 (头像文件) +- `school_personnel`: 人员表 (头像文件) +- `school_contract`: 合同表 (合同附件) +- `school_sys_config`: 系统配置表 (配置文件) +- `school_campus`: 校区表 (校区相关文件) +- `school_certificate`: 证书表 (证书文件) + +### 关联说明 +- **作业关联**: 通过作业表的attachment_id字段关联作业附件 +- **课程关联**: 课程资料和教学素材的文件存储 +- **用户关联**: 用户头像和个人文件的存储 +- **合同关联**: 合同相关文档和附件的管理 +- **系统关联**: 系统配置文件和静态资源的存储 +- **分类关联**: 通过cate_id进行文件分类管理 +- **业务关联**: 各业务模块通过外键关联具体的附件文件 + +## 索引建议 +- **主键索引**: att_id (已存在) +- **分类索引**: cate_id (文件分类查询) +- **类型索引**: att_type (按文件类型查询) +- **存储类型索引**: storage_type (按存储方式查询) +- **时间索引**: + - create_time (创建时间查询) + - update_time (更新时间查询) +- **复合索引**: + - (cate_id, att_type) (分类类型查询) + - (storage_type, create_time) (存储方式时间查询) + - (att_type, create_time) (类型时间查询) +- **路径索引**: path (文件路径查询) +- **名称索引**: name (文件名称查询) + +## 注意事项 +- **文件路径**: path和dir字段需要保证路径的正确性和可访问性 +- **文件大小**: att_size字段记录文件大小,需要合理的存储限制 +- **文件类型**: att_type需要严格验证,防止恶意文件上传 +- **存储安全**: 不同存储类型需要相应的安全配置和访问控制 +- **文件命名**: name和real_name需要处理特殊字符和重名问题 +- **网络地址**: url字段需要保证外网访问的有效性 +- **分类管理**: cate_id需要与分类表保持一致性 +- **存储空间**: 需要监控各存储方式的空间使用情况 +- **文件清理**: 定期清理无关联的孤立文件 +- **备份策略**: 重要文件需要制定备份和恢复策略 +- **访问权限**: 敏感文件需要设置适当的访问权限 +- **病毒扫描**: 上传文件需要进行安全扫描 +- **格式验证**: 严格验证文件格式和内容的合法性 +- **存储迁移**: 不同存储方式间的文件迁移策略 +- **CDN加速**: 静态文件可考虑使用CDN加速访问 +- **文件版本**: 考虑是否需要支持文件版本管理 +- **删除策略**: 文件删除需要考虑关联数据的完整性 diff --git a/niucloud/databasedoc/school_sys_attachment_category.md b/niucloud/databasedoc/school_sys_attachment_category.md new file mode 100644 index 00000000..63b18134 --- /dev/null +++ b/niucloud/databasedoc/school_sys_attachment_category.md @@ -0,0 +1,82 @@ +# school_sys_attachment_category 表文档 + +## 表概述 +**表名**: school_sys_attachment_category +**功能**: 系统附件分类管理表,用于管理文件附件的分类体系,支持图片、视频等多种文件类型的层级分类管理和目录组织,包括多级分类结构、文件类型分类、排序控制和目录管理,为学校提供完整的文件分类管理和媒体库组织功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +pid int NULL NO 0 select,insert,update,references 父级ID +type varchar(50) utf8mb4_general_ci NO select,insert,update,references 文件管理类型(image,video) +name varchar(50) utf8mb4_general_ci NO select,insert,update,references 分类名称 +enname varchar(50) utf8mb4_general_ci NO select,insert,update,references 分类目录 +sort int NULL NO 0 select,insert,update,references 排序 +``` + +## 功能用途 + +### 主要功能 +- **分类层级管理**: 支持多级分类结构,通过pid字段实现父子级关系 +- **文件类型分类**: 按文件类型(图片、视频等)进行分类管理 +- **分类命名**: 提供中文名称和英文目录名称的双重命名 +- **排序控制**: 支持分类的自定义排序,便于管理和展示 +- **目录结构**: 为文件存储提供逻辑目录结构 +- **分类检索**: 支持按类型和名称进行分类检索 +- **层级展示**: 支持树形结构的分类展示 +- **分类统计**: 统计各分类下的文件数量 + +### 业务场景 +- **文件管理**: 为系统文件提供分类管理功能 +- **媒体库管理**: 管理图片、视频等媒体文件的分类 +- **教学资源分类**: 对教学相关的附件进行分类整理 +- **文档分类**: 对各类文档和资料进行分类管理 +- **用户上传管理**: 为用户上传的文件提供分类选择 +- **系统资源整理**: 整理系统各模块使用的附件资源 +- **备份分类**: 对备份文件进行分类管理 +- **权限分类**: 结合权限系统对不同分类设置访问权限 + +## 关联关系 + +### 主要关联表 +- **school_sys_attachment**: 系统附件表,关联具体的文件记录 +- **school_lesson_course_teaching**: 教学内容表,关联教学资源分类 +- **school_sys_config**: 系统配置表,关联文件管理配置 +- **school_personnel**: 人员表,关联文件上传者信息 +- **school_campus**: 校区表,关联分类的使用范围 + +### 关联说明 +- **自关联**: pid字段实现分类的父子级关系,构建分类树 +- **附件关联**: 系统附件表通过分类ID关联到具体分类 +- **类型关联**: type字段与文件类型配置关联 +- **权限关联**: 分类可能与权限系统关联,控制访问权限 +- **配置关联**: 与系统配置关联,管理文件存储和分类规则 +- **业务关联**: 各业务模块通过分类管理相关的附件资源 + +## 索引建议 +- **主键索引**: id (已存在) +- **父级索引**: pid (支持层级查询) +- **类型索引**: type (按文件类型查询) +- **名称索引**: name (按分类名称查询) +- **英文名索引**: enname (按英文目录查询) +- **排序索引**: sort (支持排序查询) +- **复合索引**: + - (pid, sort) (父级下按排序查询) + - (type, sort) (类型内按排序查询) + - (pid, type) (父级下按类型查询) + +## 注意事项 +- **层级深度**: 控制分类层级深度,避免过深影响性能 +- **循环引用**: 防止pid设置导致的循环引用问题 +- **英文目录**: enname应符合文件系统目录命名规范 +- **类型一致性**: type字段值应与系统支持的文件类型一致 +- **排序唯一性**: 同级分类的sort值建议唯一,避免排序混乱 +- **删除检查**: 删除分类前需检查是否有子分类或关联文件 +- **名称规范**: 分类名称应规范,避免特殊字符 +- **权限继承**: 子分类可能继承父分类的权限设置 +- **缓存策略**: 分类树结构适合使用缓存提升查询性能 +- **数据一致性**: 修改分类结构时需保证数据一致性 +- **备份重要性**: 分类结构变更前应进行备份 +- **性能优化**: 大量分类时考虑使用materialized path等优化方案 diff --git a/niucloud/databasedoc/school_sys_config.md b/niucloud/databasedoc/school_sys_config.md new file mode 100644 index 00000000..1c6bf1ee --- /dev/null +++ b/niucloud/databasedoc/school_sys_config.md @@ -0,0 +1,87 @@ +# school_sys_config 表文档 + +## 表概述 +**表名**: school_sys_config +**功能**: 系统配置管理表,负责管理教务系统中的各种配置参数、系统设置、插件配置等系统级配置信息 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 主键 +config_key varchar(255) utf8mb4_general_ci NO select,insert,update,references 配置项关键字 +value text utf8mb4_general_ci YES NULL select,insert,update,references 配置值json +status tinyint NULL NO 1 select,insert,update,references 是否启用 1启用 0不启用 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 修改时间 +addon varchar(255) utf8mb4_general_ci NO select,insert,update,references 所属插件 +``` + +## 功能用途 + +### 主要功能 +- **系统配置管理**: 管理系统级别的配置参数和设置 +- **插件配置**: 管理各种插件的配置信息和参数 +- **动态配置**: 支持运行时动态修改配置而无需重启系统 +- **JSON配置**: 支持复杂的JSON格式配置数据 +- **配置启用控制**: 通过状态字段控制配置的启用和禁用 +- **配置分类**: 通过addon字段对配置进行分类管理 +- **配置版本**: 通过时间字段跟踪配置的创建和修改历史 + +### 业务场景 +- **系统初始化**: 系统启动时加载各种配置参数 +- **功能开关**: 控制系统功能模块的启用和禁用 +- **参数调优**: 动态调整系统运行参数 +- **插件管理**: 管理第三方插件的配置信息 +- **多环境配置**: 支持不同环境的配置管理 +- **配置备份**: 备份和恢复系统配置 +- **配置审计**: 跟踪配置变更历史 +- **热更新**: 支持配置的热更新和实时生效 + +## 关联关系 + +### 主要关联表 +- `school_campus`: 校区信息表 (校区相关配置) +- `school_course`: 课程信息表 (课程相关配置) +- `school_personnel`: 人员信息表 (权限相关配置) +- `school_pay`: 支付信息表 (支付相关配置) +- `sys_addon`: 插件管理表 (addon字段关联) +- `sys_log`: 系统日志表 (配置变更日志) + +### 关联说明 +- **插件关联**: addon字段关联具体的插件或模块 +- **业务配置**: 为各业务模块提供配置支持 +- **系统集成**: 与第三方系统集成的配置参数 +- **功能控制**: 控制各功能模块的行为和参数 +- **日志关联**: 配置变更会记录到系统日志中 + +## 索引建议 +- **主键索引**: id (已存在) +- **唯一索引**: config_key (配置键唯一性) +- **业务索引**: + - addon (插件配置查询) + - status (启用状态查询) +- **复合索引**: + - (addon, status) (插件启用配置查询) + - (config_key, addon) (插件配置键查询) + - (status, update_time) (启用配置更新时间查询) +- **时间索引**: + - create_time (创建时间查询) + - update_time (更新时间查询) + +## 注意事项 +- **配置键唯一性**: config_key需要保证全局唯一性,避免配置冲突 +- **JSON格式验证**: value字段存储JSON数据,需要验证格式正确性 +- **状态一致性**: status字段变更需要同步更新相关业务逻辑 +- **插件归属**: addon字段确定配置的归属模块,删除插件时需要清理相关配置 +- **配置缓存**: 频繁访问的配置建议使用缓存机制提高性能 +- **配置备份**: 重要配置修改前需要备份原始值 +- **权限控制**: 配置修改需要严格的权限控制机制 +- **配置验证**: 配置值修改时需要验证数据的有效性和合法性 +- **热更新机制**: 配置修改后需要通知相关模块重新加载配置 +- **默认值处理**: 配置不存在时需要有合理的默认值处理机制 +- **配置分组**: 建议通过config_key的命名规范进行配置分组 +- **敏感信息**: 敏感配置信息需要加密存储 +- **配置依赖**: 某些配置可能存在依赖关系,修改时需要检查依赖 +- **版本兼容**: 配置结构变更需要考虑向后兼容性 +- **监控告警**: 关键配置变更需要监控和告警机制 diff --git a/niucloud/databasedoc/school_sys_cron_task.md b/niucloud/databasedoc/school_sys_cron_task.md new file mode 100644 index 00000000..3196b6be --- /dev/null +++ b/niucloud/databasedoc/school_sys_cron_task.md @@ -0,0 +1,111 @@ +# school_sys_cron_task 表文档 + +## 表概述 +**表名**: school_sys_cron_task +**功能**: 系统定时任务管理表,用于管理和调度系统中的各种定时执行任务,支持cron表达式和周期性任务调度 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +status int NULL NO 1 select,insert,update,references 任务状态 +count int NULL NO 0 select,insert,update,references 执行次数 +title char(50) utf8mb4_general_ci NO select,insert,update,references 任务名称 +type varchar(255) utf8mb4_general_ci NO select,insert,update,references 任务模式 cron 定时任务 crond 周期任务 +crond_type char(200) utf8mb4_general_ci NO select,insert,update,references 任务周期 +crond_length int NULL NO 0 select,insert,update,references 任务周期 +task varchar(500) utf8mb4_general_ci NO select,insert,update,references 任务命令 +data longtext utf8mb4_general_ci YES NULL select,insert,update,references 附加参数 +status_desc varchar(1000) utf8mb4_general_ci NO select,insert,update,references 上次执行结果 +last_time int NULL NO 0 select,insert,update,references 最后执行时间 +next_time int NULL NO 0 select,insert,update,references 下次执行时间 +create_time int NULL NO 0 select,insert,update,references 创建时间 +delete_time int NULL NO 0 select,insert,update,references 删除时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +sort int NULL NO 0 select,insert,update,references 排序 +``` + +## 功能用途 + +### 主要功能 +- **定时任务管理**: 管理系统中的各种定时执行任务 +- **任务调度**: 支持cron表达式和周期性任务调度 +- **任务状态监控**: 跟踪任务的执行状态和结果 +- **任务执行统计**: 记录任务的执行次数和历史 +- **任务参数管理**: 管理任务执行所需的参数和配置 +- **任务结果记录**: 记录任务执行的结果和错误信息 +- **任务时间管理**: 管理任务的执行时间和下次执行时间 +- **任务排序**: 支持任务的优先级排序 +- **任务生命周期**: 管理任务的创建、更新、删除等生命周期 + +### 业务场景 +- **数据备份**: 定时备份重要的业务数据 +- **报表生成**: 定时生成各种统计报表 +- **数据清理**: 定期清理过期或无用的数据 +- **消息推送**: 定时发送通知消息或提醒 +- **系统监控**: 定期检查系统状态和性能 +- **财务结算**: 定时进行财务数据的结算和统计 +- **考勤统计**: 定期统计员工考勤数据 +- **课程提醒**: 定时发送课程开始提醒 +- **缴费提醒**: 定期发送缴费到期提醒 +- **数据同步**: 定时同步外部系统数据 +- **日志归档**: 定期归档历史日志数据 +- **性能优化**: 定时执行数据库优化任务 + +## 关联关系 + +### 主要关联表 +- `school_sys_config`: 系统配置表 (任务配置关联) +- `school_sys_log`: 系统日志表 (任务执行日志) +- `school_personnel`: 人员表 (任务创建者关联) +- `school_campus`: 校区表 (校区相关任务) +- `school_member`: 会员表 (会员相关任务) +- `school_course`: 课程表 (课程相关任务) +- `school_pay`: 支付表 (支付相关任务) +- `school_attendance`: 考勤表 (考勤统计任务) + +### 关联说明 +- **配置关联**: 任务可能需要读取系统配置参数 +- **日志关联**: 任务执行过程和结果记录在系统日志中 +- **人员关联**: 记录任务的创建者和管理者 +- **校区关联**: 某些任务可能针对特定校区执行 +- **业务关联**: 任务通常操作具体的业务数据表 +- **数据关联**: 任务执行时会读取和处理相关业务数据 + +## 索引建议 +- **主键索引**: id (已存在) +- **业务索引**: + - status (任务状态查询) + - type (任务类型查询) + - next_time (下次执行时间查询) + - last_time (最后执行时间查询) + - create_time (创建时间查询) + - delete_time (删除时间查询) +- **复合索引**: + - (status, next_time) (有效任务执行时间查询) + - (type, status) (类型状态查询) + - (delete_time, status) (有效任务查询) +- **排序索引**: + - sort (任务排序) + - (sort, status) (有效任务排序) + +## 注意事项 +- **任务唯一性**: 相同功能的任务避免重复创建 +- **时间精度**: 执行时间使用时间戳,确保精度和一致性 +- **状态管理**: 任务状态变更需要原子性操作 +- **并发控制**: 避免同一任务的并发执行 +- **错误处理**: 任务执行失败时需要记录详细错误信息 +- **资源管理**: 长时间运行的任务需要监控资源使用 +- **任务依赖**: 处理任务间的依赖关系 +- **执行超时**: 设置任务执行超时时间,避免死锁 +- **重试机制**: 失败任务的重试策略和次数限制 +- **日志记录**: 详细记录任务执行过程和结果 +- **权限控制**: 任务的创建、修改、删除需要相应权限 +- **数据备份**: 重要任务的配置和数据需要备份 +- **监控告警**: 任务执行异常时需要及时告警 +- **性能优化**: 避免任务执行影响系统正常运行 +- **软删除**: 使用delete_time实现软删除,保留历史记录 +- **参数验证**: 任务参数需要验证格式和有效性 +- **版本管理**: 任务更新时保留历史版本信息 +- **执行环境**: 确保任务执行环境的稳定性和安全性 diff --git a/niucloud/databasedoc/school_sys_dict.md b/niucloud/databasedoc/school_sys_dict.md new file mode 100644 index 00000000..09aaa28c --- /dev/null +++ b/niucloud/databasedoc/school_sys_dict.md @@ -0,0 +1,84 @@ +# school_sys_dict 表文档 + +## 表概述 +**表名**: school_sys_dict +**功能**: 系统字典管理表,用于存储和管理系统中的各类字典数据,提供统一的数据字典服务,支持动态配置和维护系统中的枚举值、选项列表等基础数据 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references id +name varchar(50) utf8mb4_general_ci NO select,insert,update,references 字典名称 +key varchar(100) utf8mb4_general_ci NO select,insert,update,references 字典关键词 +dictionary text utf8mb4_general_ci NO NULL select,insert,update,references 字典数据 +memo varchar(255) utf8mb4_general_ci NO select,insert,update,references +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +``` + +## 功能用途 + +### 主要功能 +- **字典数据管理**: 统一管理系统中的各类字典数据和枚举值 +- **动态配置**: 支持运行时动态修改字典数据,无需重启系统 +- **分类管理**: 通过key字段对字典进行分类和标识 +- **数据存储**: 使用JSON格式存储复杂的字典数据结构 +- **备注说明**: 提供memo字段记录字典的用途和说明 +- **版本控制**: 通过时间字段跟踪字典数据的创建和更新历史 + +### 业务场景 +- **下拉选项**: 为前端页面提供下拉框、单选框等选项数据 +- **状态枚举**: 定义各种业务状态的枚举值(如订单状态、用户状态等) +- **分类数据**: 管理课程分类、人员类型、支付方式等分类信息 +- **配置参数**: 存储系统配置参数和业务规则配置 +- **地区数据**: 管理省市区等地理位置信息 +- **权限配置**: 定义角色权限、菜单权限等权限相关数据 +- **多语言支持**: 存储多语言环境下的文本翻译数据 +- **业务规则**: 配置各种业务流程的规则和参数 + +## 关联关系 + +### 主要关联表 +- **school_sys_config**: 系统配置表,可能引用字典数据 +- **school_member**: 会员表,可能使用字典定义的状态和类型 +- **school_course**: 课程表,可能使用字典定义的分类和状态 +- **school_personnel**: 人员表,可能使用字典定义的职位和类型 +- **school_pay**: 支付表,可能使用字典定义的支付方式和状态 +- **school_sys_menu**: 菜单表,可能使用字典定义的菜单类型 + +### 关联说明 +- 字典表为其他业务表提供标准化的枚举值和选项数据 +- 通过key字段建立逻辑关联,业务表通过字典key获取对应的字典数据 +- 支持一对多关系,一个字典可以被多个业务表引用 +- 字典数据的变更会影响引用该字典的所有业务功能 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 字典关键词唯一索引(用于快速查找字典) +UNIQUE INDEX idx_key (key) + +-- 字典名称索引(用于按名称搜索) +INDEX idx_name (name) + +-- 创建时间索引(用于按时间排序) +INDEX idx_create_time (create_time) + +-- 更新时间索引(用于查询最近更新的字典) +INDEX idx_update_time (update_time) +``` + +## 注意事项 +- **数据一致性**: 修改字典数据时需要考虑对引用该字典的业务功能的影响 +- **缓存策略**: 字典数据访问频繁,建议使用缓存提高性能 +- **数据格式**: dictionary字段存储JSON数据,需要确保数据格式的正确性 +- **键值唯一性**: key字段应保持唯一性,避免字典冲突 +- **版本管理**: 重要字典的修改应记录版本历史,支持回滚操作 +- **权限控制**: 字典数据的修改应有严格的权限控制 +- **数据备份**: 定期备份字典数据,防止数据丢失 +- **性能优化**: 大量字典数据时需要考虑查询性能优化 +- **数据验证**: 字典数据的格式和内容需要进行严格验证 +- **国际化**: 支持多语言环境时需要考虑字典数据的国际化处理 diff --git a/niucloud/databasedoc/school_sys_export.md b/niucloud/databasedoc/school_sys_export.md new file mode 100644 index 00000000..99f96a53 --- /dev/null +++ b/niucloud/databasedoc/school_sys_export.md @@ -0,0 +1,104 @@ +# school_sys_export 表文档 + +## 表概述 +**表名**: school_sys_export +**功能**: 系统数据导出管理表,用于管理系统中各类数据的导出任务和记录,包括学员信息、课程数据、财务报表、考勤记录等多种数据导出,支持导出状态跟踪、文件管理、错误处理和异步导出,为学校提供完整的数据导出和文件管理功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 主键 +export_key varchar(255) utf8mb4_general_ci NO select,insert,update,references 主题关键字 +export_num int NULL NO 0 select,insert,update,references 导出数据数量 +file_path varchar(255) utf8mb4_general_ci NO select,insert,update,references 文件存储路径 +file_size varchar(255) utf8mb4_general_ci NO select,insert,update,references 文件大小 +export_status tinyint NULL NO 0 select,insert,update,references 导出状态 +fail_reason varchar(255) utf8mb4_general_ci NO select,insert,update,references 失败原因 +create_time int NULL NO 0 select,insert,update,references 导出时间 +``` + +## 功能用途 + +### 主要功能 +- **数据导出管理**: 管理系统中各类数据的导出任务和记录 +- **导出任务跟踪**: 跟踪导出任务的执行状态和进度 +- **文件管理**: 管理导出生成的文件存储路径和文件信息 +- **导出统计**: 记录导出的数据数量和文件大小 +- **状态监控**: 监控导出任务的成功、失败状态 +- **错误处理**: 记录导出失败的原因和错误信息 +- **主题分类**: 通过export_key对不同类型的导出进行分类 +- **时间追踪**: 记录导出任务的创建和执行时间 +- **文件下载**: 提供导出文件的下载和访问功能 + +### 业务场景 +- **学员信息导出**: 导出学员基本信息、学习记录等数据 +- **课程数据导出**: 导出课程信息、课程安排、教学计划等 +- **财务报表导出**: 导出收费记录、财务统计、账务明细等 +- **考勤记录导出**: 导出学员考勤、教师考勤等记录 +- **成绩单导出**: 导出考试成绩、评价结果等学习成果 +- **合同信息导出**: 导出合同详情、签约记录等法务文档 +- **统计报告导出**: 导出各类业务统计和分析报告 +- **备份数据导出**: 导出系统数据进行备份和归档 +- **审计数据导出**: 导出操作日志、审计记录等合规数据 +- **营销数据导出**: 导出客户信息、营销活动数据等 + +## 关联关系 + +### 主要关联表 +- **school_sys_user**: 系统用户表 (导出操作用户关联) +- **school_member**: 会员表 (会员数据导出) +- **school_student**: 学员表 (学员数据导出) +- **school_course**: 课程表 (课程数据导出) +- **school_personnel**: 人员表 (人员数据导出) +- **school_pay**: 支付表 (财务数据导出) +- **school_contract**: 合同表 (合同数据导出) +- **school_attendance**: 考勤表 (考勤数据导出) +- **school_sys_log**: 系统日志表 (日志数据导出) +- **school_campus**: 校区表 (校区数据导出) + +### 关联说明 +- **用户关联**: 导出任务与执行导出的系统用户关联 +- **数据源关联**: export_key标识导出的数据来源表 +- **业务关联**: 根据导出主题关联相应的业务数据表 +- **权限关联**: 导出权限与用户角色和数据权限关联 +- **文件关联**: 导出文件可能关联系统附件管理 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 导出主题索引(用于按类型查询) +INDEX idx_export_key (export_key) + +-- 导出状态索引(用于按状态查询) +INDEX idx_export_status (export_status) + +-- 创建时间索引(用于按时间查询) +INDEX idx_create_time (create_time) + +-- 文件路径索引(用于文件管理) +INDEX idx_file_path (file_path) + +-- 复合索引(用于综合查询) +INDEX idx_key_status_time (export_key, export_status, create_time) +INDEX idx_status_time (export_status, create_time) +``` + +## 注意事项 +- **文件安全**: 导出文件需要设置合适的访问权限和安全控制 +- **数据权限**: 导出操作需要严格的数据权限控制,防止数据泄露 +- **文件大小**: 大数据量导出需要考虑文件大小限制和分批处理 +- **存储管理**: 导出文件需要合理的存储策略和定期清理机制 +- **导出格式**: 支持多种导出格式(Excel、CSV、PDF等) +- **异步处理**: 大数据量导出建议使用异步处理避免超时 +- **进度反馈**: 长时间导出任务需要提供进度反馈机制 +- **错误重试**: 导出失败时需要提供重试机制 +- **并发控制**: 控制同时进行的导出任务数量,避免系统负载过高 +- **日志记录**: 详细记录导出操作的日志信息 +- **文件下载**: 提供安全的文件下载链接和访问控制 +- **数据脱敏**: 敏感数据导出时需要进行脱敏处理 +- **格式验证**: 导出文件格式需要验证完整性和正确性 +- **备份策略**: 重要导出文件需要备份保存 +- **监控告警**: 建立导出任务的监控和异常告警机制 diff --git a/niucloud/databasedoc/school_sys_menu.md b/niucloud/databasedoc/school_sys_menu.md new file mode 100644 index 00000000..19410810 --- /dev/null +++ b/niucloud/databasedoc/school_sys_menu.md @@ -0,0 +1,110 @@ +# school_sys_menu 表文档 + +## 表概述 +**表名**: school_sys_menu +**功能**: 系统菜单管理表,负责管理教务系统中的菜单结构、权限控制、导航层级、菜单图标等系统界面组织功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 菜单ID +app_type varchar(255) utf8mb4_general_ci NO admin select,insert,update,references 应用类型 +menu_name varchar(32) utf8mb4_general_ci NO select,insert,update,references 菜单名称 +menu_short_name varchar(50) utf8mb4_general_ci NO select,insert,update,references 菜单短标题 +menu_key varchar(255) utf8mb4_general_ci NO select,insert,update,references 菜单标识(菜单输入,接口自动生成) +parent_key varchar(255) utf8mb4_general_ci NO select,insert,update,references 父级key +menu_type tinyint NULL NO 1 select,insert,update,references 菜单类型 0目录 1菜单 2按钮 +icon varchar(500) utf8mb4_general_ci NO select,insert,update,references 图标 菜单有效 +api_url varchar(100) utf8mb4_general_ci NO select,insert,update,references api接口地址 +router_path varchar(128) utf8mb4_general_ci NO select,insert,update,references 菜单路由地址 前端使用 +view_path varchar(255) utf8mb4_general_ci NO select,insert,update,references 菜单文件地址 +methods varchar(10) utf8mb4_general_ci NO select,insert,update,references 提交方式POST GET PUT DELETE +sort int NULL NO 1 select,insert,update,references 排序 +status tinyint unsigned NULL NO 1 select,insert,update,references 正常,禁用(禁用后不允许访问) +is_show tinyint NULL NO 1 select,insert,update,references 是否显示 +create_time int NULL NO 0 select,insert,update,references +delete_time int NULL NO 0 select,insert,update,references +addon varchar(255) utf8mb4_general_ci NO select,insert,update,references 所属插件 +source varchar(255) utf8mb4_general_ci NO system select,insert,update,references 菜单来源 system 系统文件 create 新建菜单 generator 代码生成器 +menu_attr varchar(50) utf8mb4_general_ci NO select,insert,update,references 菜单属性 common 公共 system 系统 +``` + +## 功能用途 + +### 主要功能 +- **菜单结构管理**: 建立系统的层级菜单结构和导航体系 +- **权限控制**: 控制不同角色对菜单的访问权限 +- **菜单层级**: 支持多级菜单的父子关系管理 +- **菜单图标**: 配置菜单的显示图标和样式 +- **菜单排序**: 控制菜单的显示顺序和位置 +- **菜单状态**: 管理菜单的启用和禁用状态 +- **路由管理**: 配置菜单对应的页面路由和组件 +- **菜单类型**: 区分目录、菜单、按钮等不同类型 +- **动态菜单**: 支持根据权限动态生成菜单 + +### 业务场景 +- **系统初始化**: 系统安装时创建基础菜单结构 +- **权限分配**: 为不同角色分配菜单访问权限 +- **菜单导航**: 用户登录后根据权限显示可访问菜单 +- **功能扩展**: 新增功能模块时添加对应菜单 +- **界面定制**: 根据业务需要调整菜单结构和样式 +- **权限验证**: 访问页面时验证菜单权限 +- **菜单维护**: 管理员维护和调整菜单配置 +- **多端适配**: 支持PC端和移动端的菜单适配 +- **菜单搜索**: 支持菜单的快速搜索和定位 + +## 关联关系 + +### 主要关联表 +- `school_sys_role`: 系统角色表 (角色菜单权限关联) +- `school_personnel`: 人员表 (用户菜单权限关联) +- `role_menu_permissions`: 角色菜单权限表 (权限分配) +- `school_sys_config`: 系统配置表 (菜单配置关联) +- `school_addon`: 插件表 (插件菜单关联) +- `sys_log`: 系统日志表 (菜单操作日志) + +### 关联说明 +- **角色关联**: 角色表通过权限表关联菜单,控制角色可访问的菜单 +- **用户关联**: 用户通过角色间接关联菜单权限 +- **权限关联**: 权限表记录角色与菜单的对应关系 +- **配置关联**: 系统配置可能影响菜单的显示和行为 +- **插件关联**: 插件安装时可能添加新的菜单项 +- **日志关联**: 菜单的增删改操作记录在系统日志中 +- **层级关联**: 菜单之间通过parent_id形成父子关系 + +## 索引建议 +- **主键索引**: menu_id (已存在) +- **外键索引**: + - parent_id (父菜单查询) +- **业务索引**: + - menu_type (菜单类型查询) + - status (状态查询) + - sort (排序查询) + - menu_key (菜单标识查询) +- **复合索引**: + - (parent_id, sort) (同级菜单排序查询) + - (status, menu_type) (有效菜单类型查询) + - (parent_id, status) (有效子菜单查询) +- **时间索引**: + - create_time (创建时间查询) + - update_time (更新时间查询) + +## 注意事项 +- **菜单标识唯一性**: menu_key必须唯一,避免菜单标识冲突 +- **层级关系**: parent_id不能形成循环引用,避免无限递归 +- **菜单类型**: menu_type需要明确定义(如:目录、菜单、按钮) +- **路由配置**: menu_url需要与前端路由配置保持一致 +- **权限验证**: 删除菜单前需要检查是否有角色权限关联 +- **排序逻辑**: sort字段用于控制同级菜单的显示顺序 +- **状态控制**: 禁用父菜单时需要考虑子菜单的处理 +- **图标格式**: menu_icon建议使用统一的图标库标识 +- **菜单深度**: 建议菜单层级不超过3-4级,避免过深嵌套 +- **缓存策略**: 菜单数据变更频率低,适合缓存优化 +- **权限同步**: 菜单变更时需要同步更新相关权限配置 +- **多语言支持**: menu_name可能需要支持多语言 +- **移动端适配**: 需要考虑移动端菜单的显示和交互 +- **菜单搜索**: 支持菜单的模糊搜索和快速定位 +- **数据完整性**: 确保菜单数据的完整性和一致性 +- **权限控制**: 菜单配置需要严格的权限控制 +- **备份恢复**: 菜单配置是系统核心数据,需要定期备份 diff --git a/niucloud/databasedoc/school_sys_notice.md b/niucloud/databasedoc/school_sys_notice.md new file mode 100644 index 00000000..7d0d4dc2 --- /dev/null +++ b/niucloud/databasedoc/school_sys_notice.md @@ -0,0 +1,104 @@ +# school_sys_notice 表文档 + +## 表概述 +**表名**: school_sys_notice +**功能**: 系统通知配置管理表,用于配置和管理系统各类通知消息的发送方式和模板信息,支持微信公众号、小程序订阅消息和短信等多种通知渠道,为系统消息推送提供统一的配置服务 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +key varchar(50) utf8mb4_general_ci NO select,insert,update,references 标识 +sms_content text utf8mb4_general_ci YES NULL select,insert,update,references 短信配置参数 +is_wechat tinyint NULL NO 0 select,insert,update,references 公众号模板消息(0:关闭,1:开启) +is_weapp tinyint NULL NO 0 select,insert,update,references 小程序订阅消息(0:关闭,1:开启) +is_sms tinyint NULL NO 0 select,insert,update,references 发送短信(0:关闭,1:开启) +wechat_template_id varchar(255) utf8mb4_general_ci NO select,insert,update,references 微信模版消息id +weapp_template_id varchar(255) utf8mb4_general_ci NO select,insert,update,references 微信小程序订阅消息id +sms_id varchar(255) utf8mb4_general_ci NO select,insert,update,references 短信id(对应短信配置) +create_time int NULL NO 0 select,insert,update,references 添加时间 +wechat_first varchar(255) utf8mb4_general_ci NO select,insert,update,references 微信头部 +wechat_remark varchar(255) utf8mb4_general_ci NO select,insert,update,references 微信说明 +``` + +## 功能用途 + +### 主要功能 +- **通知渠道配置**: 统一配置微信公众号、小程序、短信等通知渠道 +- **模板消息管理**: 管理各种业务场景的消息模板和内容格式 +- **发送开关控制**: 通过开关控制不同渠道的消息发送状态 +- **消息内容配置**: 配置短信内容、微信头部和说明等消息内容 +- **模板ID管理**: 管理微信公众号和小程序的模板消息ID +- **短信配置**: 配置短信发送的相关参数和模板 +- **通知标识管理**: 通过key字段标识不同类型的通知消息 +- **多渠道统一**: 为同一业务事件提供多渠道的通知配置 + +### 业务场景 +- **用户注册通知**: 新用户注册时的欢迎消息和账户激活通知 +- **课程提醒**: 课程开始、结束、变更等相关通知 +- **支付通知**: 支付成功、失败、退款等支付相关通知 +- **考试通知**: 考试安排、成绩发布、证书颁发等通知 +- **系统公告**: 系统维护、功能更新、重要公告等通知 +- **营销推广**: 优惠活动、新课程推荐等营销消息 +- **服务提醒**: 服务到期、续费提醒、客服回复等服务通知 +- **异常告警**: 系统异常、安全警告等紧急通知 +- **互动消息**: 评论回复、点赞提醒、私信通知等社交消息 +- **业务流程**: 审核结果、申请状态、流程进度等业务通知 + +## 关联关系 + +### 主要关联表 +- **school_sys_notice_log**: 通知发送日志表,记录具体的通知发送记录 +- **school_sys_notice_sms_log**: 短信发送日志表,记录短信发送详情 +- **school_sys_config**: 系统配置表,可能引用通知相关的系统配置 +- **school_member**: 会员表,通知的接收对象 +- **school_personnel**: 人员表,通知的接收对象 +- **school_student**: 学员表,通知的接收对象 +- **school_sys_user**: 系统用户表,通知的接收对象 + +### 关联说明 +- 为系统各类业务事件提供统一的通知配置模板 +- 通过key字段与具体的业务场景建立逻辑关联 +- 配置信息被通知发送服务引用,实现消息的自动化推送 +- 支持多渠道通知的统一管理和配置 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 通知标识唯一索引(确保key的唯一性) +UNIQUE INDEX idx_key (key) + +-- 微信公众号开关索引(用于查询启用的公众号通知) +INDEX idx_is_wechat (is_wechat) + +-- 小程序开关索引(用于查询启用的小程序通知) +INDEX idx_is_weapp (is_weapp) + +-- 短信开关索引(用于查询启用的短信通知) +INDEX idx_is_sms (is_sms) + +-- 创建时间索引(用于按时间排序) +INDEX idx_create_time (create_time) + +-- 复合索引(多渠道查询) +INDEX idx_multi_channel (is_wechat, is_weapp, is_sms) +``` + +## 注意事项 +- **模板ID准确性**: 确保微信公众号和小程序模板ID的准确性 +- **内容合规性**: 通知内容应符合各平台的内容规范和政策要求 +- **发送频率控制**: 避免过度发送通知,影响用户体验 +- **权限管理**: 严格控制通知配置的修改权限 +- **模板同步**: 模板变更时需要及时同步更新配置信息 +- **渠道可用性**: 定期检查各通知渠道的可用性和配置状态 +- **消息格式**: 确保不同渠道的消息格式符合平台要求 +- **错误处理**: 建立通知发送失败的重试和错误处理机制 +- **用户偏好**: 考虑用户的通知偏好设置,支持个性化配置 +- **数据备份**: 定期备份通知配置,防止配置丢失 +- **性能优化**: 大量通知发送时需要考虑性能优化 +- **监控统计**: 建立通知发送的监控和统计分析 +- **合规要求**: 遵守相关法规对消息推送的要求 +- **安全防护**: 防止通知功能被恶意利用进行垃圾信息推送 diff --git a/niucloud/databasedoc/school_sys_notice_log.md b/niucloud/databasedoc/school_sys_notice_log.md new file mode 100644 index 00000000..3b395f01 --- /dev/null +++ b/niucloud/databasedoc/school_sys_notice_log.md @@ -0,0 +1,119 @@ +# school_sys_notice_log 表文档 + +## 表概述 +**表名**: school_sys_notice_log +**功能**: 系统通知日志表,用于记录系统发送的各类通知消息的详细信息,包括短信、微信等多渠道通知,支持消息追踪、用户行为统计和发送结果监控,为学校提供完整的通知管理和数据分析功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 通知记录ID +key varchar(255) utf8mb4_general_ci YES select,insert,update,references 消息key +notice_type varchar(50) utf8mb4_general_ci YES sms select,insert,update,references 消息类型(sms,wechat.weapp) +uid int unsigned NULL NO 0 select,insert,update,references 通知的用户id +member_id int NULL NO 0 select,insert,update,references 消息的会员id +nickname varchar(255) utf8mb4_general_ci NO select,insert,update,references 接收人用户昵称或姓名 +receiver varchar(255) utf8mb4_general_ci NO select,insert,update,references 接收人(对应手机号,openid) +content text utf8mb4_general_ci YES NULL select,insert,update,references 消息数据 +is_click tinyint unsigned NULL NO 0 select,insert,update,references 点击次数 +is_visit tinyint unsigned NULL NO 0 select,insert,update,references 访问次数 +visit_time int NULL NO 0 select,insert,update,references 访问时间 +create_time int unsigned NULL NO 0 select,insert,update,references 消息时间 +result varchar(1000) utf8mb4_general_ci NO select,insert,update,references 结果 +params text utf8mb4_general_ci YES NULL select,insert,update,references +``` + +## 功能用途 + +### 主要功能 +- **通知记录管理**: 记录系统发送的各类通知消息的详细信息 +- **多渠道支持**: 支持短信(sms)、微信小程序(wechat.weapp)等多种通知渠道 +- **用户关联**: 关联系统用户和会员,支持精准的消息推送 +- **消息追踪**: 跟踪消息的点击次数、访问次数等用户行为数据 +- **发送结果**: 记录消息发送的结果状态,便于监控和统计 +- **内容存档**: 完整保存通知内容和发送参数,便于审计和查询 +- **接收人管理**: 记录接收人的昵称和联系方式(手机号/openid) +- **消息分类**: 通过key字段对不同类型的消息进行分类管理 +- **时间追踪**: 记录消息创建时间和用户访问时间 + +### 业务场景 +- **课程通知**: 发送上课提醒、课程变更、请假通知等 +- **缴费提醒**: 发送学费到期、缴费成功、欠费提醒等 +- **考试通知**: 发送考试安排、成绩发布、补考通知等 +- **活动推广**: 发送营销活动、优惠信息、新课程推荐等 +- **系统公告**: 发送系统维护、政策变更、重要通知等 +- **生日祝福**: 发送生日祝福、节日问候、纪念日提醒等 +- **考勤提醒**: 发送考勤异常、迟到提醒、请假审批等 +- **服务提醒**: 发送服务到期、续费提醒、客服回访等 +- **紧急通知**: 发送紧急停课、安全提醒、突发事件等 +- **互动消息**: 发送评价邀请、问卷调查、反馈收集等 + +## 关联关系 + +### 主要关联表 +- **school_sys_user**: 系统用户表 (uid外键关联) +- **school_member**: 会员表 (member_id外键关联) +- **school_sys_notice**: 系统通知配置表 (key字段关联) +- **school_personnel**: 人员表 (通过receiver关联) +- **school_student**: 学员表 (通过receiver关联) +- **school_course**: 课程表 (课程相关通知) +- **school_pay**: 支付表 (支付相关通知) +- **school_campus**: 校区表 (校区相关通知) + +### 关联说明 +- **用户关联**: uid关联school_sys_user表,确定通知的系统用户 +- **会员关联**: member_id关联school_member表,确定通知的会员用户 +- **配置关联**: key字段关联school_sys_notice表的通知配置 +- **接收人关联**: receiver字段存储手机号或openid,关联具体接收人 +- **业务关联**: 根据通知类型关联相应的业务表(课程、支付等) +- **渠道关联**: notice_type字段确定通知发送的具体渠道 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 用户ID索引(用于查询用户通知记录) +INDEX idx_uid (uid) + +-- 会员ID索引(用于查询会员通知记录) +INDEX idx_member_id (member_id) + +-- 消息key索引(用于按消息类型查询) +INDEX idx_key (key) + +-- 通知类型索引(用于按渠道查询) +INDEX idx_notice_type (notice_type) + +-- 接收人索引(用于查询接收人记录) +INDEX idx_receiver (receiver) + +-- 创建时间索引(用于按时间查询) +INDEX idx_create_time (create_time) + +-- 访问时间索引(用于统计分析) +INDEX idx_visit_time (visit_time) + +-- 复合索引(用于统计查询) +INDEX idx_uid_notice_type_time (uid, notice_type, create_time) +INDEX idx_member_key_time (member_id, key, create_time) +INDEX idx_receiver_notice_type (receiver, notice_type) +``` + +## 注意事项 +- **用户标识**: uid和member_id不能同时为0,至少要有一个有效的用户标识 +- **接收人格式**: receiver字段根据notice_type存储不同格式的接收人标识 +- **消息内容**: content字段可能包含敏感信息,需要注意数据安全 +- **点击统计**: is_click和is_visit字段用于统计用户行为,需要准确记录 +- **时间一致性**: create_time和visit_time需要保证时间的准确性 +- **结果记录**: result字段应详细记录发送结果,便于问题排查 +- **参数安全**: params字段可能包含敏感参数,需要加密存储 +- **数据清理**: 定期清理过期的通知记录,控制数据量增长 +- **性能优化**: 大量通知记录查询时需要考虑分页和缓存 +- **监控告警**: 建立通知发送失败率的监控和告警机制 +- **权限控制**: 通知记录查询需要严格的权限控制 +- **数据备份**: 重要通知记录需要定期备份 +- **统计分析**: 利用点击和访问数据进行用户行为分析 +- **渠道管理**: 不同通知渠道的处理逻辑需要区分管理 +- **消息去重**: 避免重复发送相同的通知消息 diff --git a/niucloud/databasedoc/school_sys_notice_sms_log.md b/niucloud/databasedoc/school_sys_notice_sms_log.md new file mode 100644 index 00000000..7bdde6c2 --- /dev/null +++ b/niucloud/databasedoc/school_sys_notice_sms_log.md @@ -0,0 +1,117 @@ +# school_sys_notice_sms_log 表文档 + +## 表概述 +**表名**: school_sys_notice_sms_log +**功能**: 系统短信通知日志表,用于记录和管理系统发送的所有短信通知,包括发送状态跟踪、模板管理和结果反馈 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references id +mobile varchar(11) utf8mb4_general_ci NO select,insert,update,references 手机号码 +sms_type varchar(32) utf8mb4_general_ci NO select,insert,update,references 发送关键字(注册、找回密码) +key varchar(32) utf8mb4_general_ci NO select,insert,update,references 发送关键字(注册、找回密码) +template_id varchar(50) utf8mb4_general_ci NO select,insert,update,references +content text utf8mb4_general_ci NO NULL select,insert,update,references 发送内容 +params text utf8mb4_general_ci NO NULL select,insert,update,references 数据参数 +status varchar(32) utf8mb4_general_ci NO sending select,insert,update,references 发送状态:sending-发送中;success-发送成功;fail-发送失败 +result text utf8mb4_general_ci YES NULL select,insert,update,references 短信结果 +create_time int NULL NO 0 select,insert,update,references 创建时间 +send_time int NULL NO 0 select,insert,update,references 发送时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +delete_time int NULL NO 0 select,insert,update,references 删除时间 +``` + +## 功能用途 + +### 主要功能 +- **短信发送记录**: 记录系统发送的所有短信通知详细信息 +- **发送状态跟踪**: 实时跟踪短信的发送状态(发送中、成功、失败) +- **模板管理**: 通过template_id关联短信模板,支持模板化发送 +- **参数记录**: 保存短信发送时的动态参数信息 +- **结果反馈**: 记录短信服务商返回的发送结果 +- **时间管理**: 记录短信的创建、发送、更新等关键时间节点 +- **内容存档**: 完整保存发送的短信内容,便于审计和查询 +- **分类管理**: 通过sms_type和key字段对短信进行分类管理 +- **软删除支持**: 支持软删除机制,保留历史记录 + +### 业务场景 +- **用户注册**: 发送注册验证码短信 +- **密码找回**: 发送密码重置验证码 +- **课程提醒**: 发送上课提醒、请假通知等 +- **缴费通知**: 发送学费到期、缴费成功等通知 +- **活动推广**: 发送营销活动、优惠信息等 +- **系统通知**: 发送系统维护、重要公告等通知 +- **考勤提醒**: 发送考勤异常、迟到提醒等 +- **成绩通知**: 发送考试成绩、评价结果等 +- **生日祝福**: 发送生日祝福、节日问候等 +- **紧急通知**: 发送紧急停课、安全提醒等 + +## 关联关系 + +### 主要关联表 +- **school_member**: 会员表,通过mobile字段关联会员手机号 +- **school_personnel**: 人员表,通过mobile字段关联员工手机号 +- **school_student**: 学员表,通过mobile字段关联学员手机号 +- **school_sys_notice**: 系统通知表,可能关联通知记录 +- **school_sys_config**: 系统配置表,关联短信服务配置 +- **school_course**: 课程表,课程相关短信通知 +- **school_pay**: 支付表,支付相关短信通知 + +### 关联说明 +- **手机号关联**: 通过mobile字段与各用户表建立关联关系 +- **模板关联**: template_id关联短信模板配置信息 +- **业务关联**: key字段标识具体的业务场景和触发条件 +- **配置关联**: 短信发送依赖系统配置的短信服务参数 +- **通知关联**: 可能与系统通知功能形成完整的消息推送体系 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 手机号索引(用于查询用户短信记录) +INDEX idx_mobile (mobile) + +-- 短信类型索引(用于按类型查询) +INDEX idx_sms_type (sms_type) + +-- 关键字索引(用于按业务场景查询) +INDEX idx_key (key) + +-- 状态索引(用于查询发送状态) +INDEX idx_status (status) + +-- 模板ID索引(用于按模板查询) +INDEX idx_template_id (template_id) + +-- 创建时间索引(用于按时间查询) +INDEX idx_create_time (create_time) + +-- 发送时间索引(用于按发送时间查询) +INDEX idx_send_time (send_time) + +-- 复合索引(用于统计查询) +INDEX idx_mobile_status_time (mobile, status, create_time) + +-- 软删除索引(用于查询有效记录) +INDEX idx_delete_time (delete_time) +``` + +## 注意事项 +- **手机号格式**: mobile字段应严格验证手机号格式的正确性 +- **发送频率**: 需要控制短信发送频率,避免频繁发送造成骚扰 +- **内容审核**: 短信内容应经过审核,避免发送违规信息 +- **状态同步**: 发送状态应及时更新,确保状态的准确性 +- **错误处理**: 发送失败时应记录详细的错误信息便于排查 +- **参数安全**: params字段可能包含敏感信息,需要注意数据安全 +- **模板管理**: 短信模板变更时需要考虑对历史记录的影响 +- **成本控制**: 短信发送涉及费用,需要合理控制发送成本 +- **时间精度**: 时间字段应保证足够精度,支持精确的时间统计 +- **数据清理**: 定期清理过期的短信记录,控制数据量增长 +- **监控告警**: 建立短信发送失败率的监控和告警机制 +- **合规要求**: 短信发送需要遵守相关法律法规和运营商规定 +- **重试机制**: 发送失败时应有合理的重试机制 +- **日志轮转**: 大量短信记录需要考虑日志轮转和归档策略 +- **性能优化**: 高并发短信发送时需要考虑性能优化 diff --git a/niucloud/databasedoc/school_sys_poster.md b/niucloud/databasedoc/school_sys_poster.md new file mode 100644 index 00000000..e9e79c46 --- /dev/null +++ b/niucloud/databasedoc/school_sys_poster.md @@ -0,0 +1,112 @@ +# school_sys_poster 表文档 + +## 表概述 +**表名**: school_sys_poster +**功能**: 系统海报管理表,用于管理和展示系统中的各类宣传海报,包括课程推广、活动宣传、品牌展示等多种类型的海报内容,支持海报的分类管理、状态控制和展示配置,为营销推广和品牌宣传提供完整的海报管理服务 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 主键 +name varchar(255) utf8mb4_general_ci NO select,insert,update,references 海报名称 +type varchar(255) utf8mb4_general_ci NO select,insert,update,references 海报类型 +channel varchar(255) utf8mb4_general_ci NO select,insert,update,references 海报支持渠道 +value text utf8mb4_general_ci YES NULL select,insert,update,references 配置值json +status tinyint NULL NO 1 select,insert,update,references 是否启用 1启用 2不启用 +addon varchar(255) utf8mb4_general_ci NO select,insert,update,references 所属插件 +is_default int NULL NO 0 select,insert,update,references 是否默认海报,1:是,0:否 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +- **海报内容管理**: 管理海报的标题、描述、图片等基本信息 +- **分类管理**: 支持海报的分类组织和管理 +- **状态控制**: 控制海报的启用、禁用状态 +- **展示配置**: 配置海报的展示位置和展示方式 +- **排序管理**: 支持海报的显示顺序调整 +- **时间管理**: 记录海报的创建、更新和删除时间 +- **软删除支持**: 支持海报的逻辑删除和恢复 +- **多媒体支持**: 支持图片、视频等多种媒体格式 +- **权限控制**: 控制海报的查看和管理权限 +- **统计分析**: 支持海报展示效果的统计分析 + +### 业务场景 +- **课程推广**: 制作和展示课程宣传海报 +- **活动宣传**: 发布各类活动的宣传海报 +- **品牌展示**: 展示机构品牌形象和文化 +- **招生宣传**: 制作招生季的宣传海报 +- **师资介绍**: 展示优秀教师的介绍海报 +- **成果展示**: 展示学员成果和机构荣誉 +- **节日祝福**: 发布节日祝福和问候海报 +- **政策宣传**: 宣传教育政策和机构政策 +- **安全提醒**: 发布安全教育和提醒海报 +- **通知公告**: 以海报形式发布重要通知 +- **营销活动**: 促销活动和优惠信息海报 +- **校园文化**: 展示校园文化和价值观 + +## 关联关系 + +### 主要关联表 +- `school_sys_user`: 系统用户表 (创建者和管理者关联) +- `school_campus`: 校区信息表 (海报适用校区) +- `school_course`: 课程信息表 (课程推广海报) +- `school_sys_config`: 系统配置表 (展示配置) +- `school_sys_dict`: 数据字典表 (海报分类和类型) +- `school_activity`: 活动信息表 (活动宣传海报) +- `school_personnel`: 人员信息表 (师资介绍海报) +- `school_sys_log`: 系统日志表 (操作记录) +- `school_member`: 会员信息表 (目标受众) + +### 关联说明 +- **用户关联**: 关联创建和管理海报的系统用户 +- **校区关联**: 海报可以关联特定校区或全局展示 +- **课程关联**: 课程推广海报关联具体课程信息 +- **配置关联**: 海报展示配置参考系统配置 +- **分类关联**: 海报分类和类型使用数据字典 +- **活动关联**: 活动宣传海报关联具体活动 +- **人员关联**: 师资介绍海报关联具体教师 +- **日志关联**: 海报操作记录到系统日志 +- **受众关联**: 海报可以针对特定会员群体 + +## 索引建议 +- **主键索引**: id (已存在) +- **状态索引**: + - status (状态查询) + - delete_time (软删除查询) +- **分类索引**: + - category (分类查询) + - type (类型查询) +- **时间索引**: + - create_time (创建时间查询) + - update_time (更新时间查询) +- **排序索引**: + - sort_order (排序查询) +- **复合索引**: + - (status, category) (状态分类查询) + - (status, sort_order) (有效海报排序) + - (category, sort_order) (分类内排序) + - (status, create_time) (状态时间查询) +- **全文索引**: + - (title, description) (内容搜索) + +## 注意事项 +- **图片管理**: 海报图片需要合理的存储和访问策略 +- **文件大小**: 控制海报文件大小,避免影响加载速度 +- **版权问题**: 确保海报内容不侵犯他人版权 +- **内容审核**: 海报内容需要经过审核才能发布 +- **分辨率适配**: 海报需要适配不同设备的分辨率 +- **加载优化**: 优化海报加载速度和用户体验 +- **缓存策略**: 合理使用缓存提高海报展示性能 +- **权限控制**: 严格控制海报的创建和管理权限 +- **数据备份**: 重要海报数据需要定期备份 +- **软删除**: 使用软删除避免误删重要海报 +- **版本管理**: 考虑海报的版本管理和历史记录 +- **统计分析**: 记录海报的展示和点击统计 +- **移动适配**: 确保海报在移动端的良好展示 +- **安全检查**: 防止恶意文件上传和XSS攻击 +- **存储清理**: 定期清理无用的海报文件 +- **内容合规**: 确保海报内容符合相关法规要求 diff --git a/niucloud/databasedoc/school_sys_printer.md b/niucloud/databasedoc/school_sys_printer.md new file mode 100644 index 00000000..f13e7e73 --- /dev/null +++ b/niucloud/databasedoc/school_sys_printer.md @@ -0,0 +1,113 @@ +# school_sys_printer 表文档 + +## 表概述 +**表名**: school_sys_printer +**功能**: 系统打印机配置管理表,用于管理各种品牌的云打印机设备配置和打印模板 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +printer_id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references +printer_name varchar(255) utf8mb4_general_ci NO select,insert,update,references 打印机名称 +brand varchar(255) utf8mb4_general_ci NO select,insert,update,references 设备品牌(易联云,365,飞鹅) +printer_code varchar(255) utf8mb4_general_ci NO select,insert,update,references 打印机编号 +printer_key varchar(255) utf8mb4_general_ci NO select,insert,update,references 打印机秘钥 +open_id varchar(255) utf8mb4_general_ci NO select,insert,update,references 开发者id +apikey varchar(255) utf8mb4_general_ci NO select,insert,update,references 开发者密钥 +template_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 小票打印模板类型,多个逗号隔开 +trigger varchar(255) utf8mb4_general_ci NO select,insert,update,references 触发打印时机 +value longtext utf8mb4_general_ci YES NULL select,insert,update,references 打印模板数据,json格式 +print_width varchar(255) utf8mb4_general_ci NO 58mm select,insert,update,references 纸张宽度 +status tinyint NULL NO 1 select,insert,update,references 状态(0,关闭,1:开启) +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +- **打印机设备管理**: 管理易联云、365、飞鹅等品牌的云打印机设备 +- **设备配置管理**: 配置打印机编号、密钥、开发者ID等连接参数 +- **模板类型管理**: 管理不同业务场景的小票打印模板类型 +- **打印触发配置**: 配置自动打印的触发时机和条件 +- **模板数据存储**: 存储JSON格式的打印模板数据和样式 +- **纸张规格设置**: 设置打印纸张宽度等物理参数 +- **设备状态控制**: 控制打印机的启用和禁用状态 +- **多品牌支持**: 支持多种云打印机品牌的统一管理 +- **API密钥管理**: 安全管理各品牌打印机的API访问密钥 + +### 业务场景 +- **收费凭证打印**: 自动打印学费收据、报名凭证等财务单据 +- **课程安排打印**: 打印课程表、上课通知等教学文档 +- **考勤记录打印**: 打印学员签到记录、考勤统计等 +- **合同协议打印**: 打印培训合同、协议书等法务文档 +- **成绩单打印**: 打印考试成绩、评价报告等学习成果 +- **通知公告打印**: 打印学校通知、公告等信息 +- **证书凭证打印**: 打印结业证书、培训证明等 +- **营销材料打印**: 打印宣传单、优惠券等营销物料 +- **报表统计打印**: 打印各类业务统计报表 +- **备份文档打印**: 打印重要数据的纸质备份 + +## 关联关系 + +### 主要关联表 +- **school_sys_printer_template**: 打印模板表,存储具体的打印模板 +- **school_pay**: 支付表,触发收费凭证打印 +- **school_contract**: 合同表,触发合同打印 +- **school_course**: 课程表,触发课程相关文档打印 +- **school_attendance**: 考勤表,触发考勤记录打印 +- **school_campus**: 校区表,不同校区可能使用不同打印机 +- **school_sys_config**: 系统配置表,全局打印配置 +- **school_member**: 会员表,个人信息打印 +- **school_student**: 学员表,学员相关文档打印 + +### 关联说明 +- **模板关联**: 通过template_type关联具体的打印模板 +- **业务触发**: 各业务表通过trigger配置触发相应的打印任务 +- **校区关联**: 不同校区可能配置不同的打印机设备 +- **用户关联**: 打印任务可能关联具体的操作用户 +- **配置关联**: 与系统全局配置形成层级配置关系 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (printer_id) + +-- 打印机编号索引(用于设备识别) +UNIQUE INDEX idx_printer_code (printer_code) + +-- 打印机名称索引(用于名称查询) +INDEX idx_printer_name (printer_name) + +-- 品牌索引(用于按品牌查询) +INDEX idx_brand (brand) + +-- 状态索引(用于查询可用设备) +INDEX idx_status (status) + +-- 模板类型索引(用于按模板类型查询) +INDEX idx_template_type (template_type) + +-- 触发时机索引(用于按触发条件查询) +INDEX idx_trigger (trigger) + +-- 创建时间索引(用于按时间查询) +INDEX idx_create_time (create_time) +``` + +## 注意事项 +- **API密钥安全**: 妥善保管各品牌打印机的API密钥,避免泄露 +- **网络连接**: 云打印机需要稳定的网络连接,注意网络环境 +- **模板格式**: 不同品牌打印机的模板格式可能不同,需要适配 +- **纸张规格**: 确保设置的纸张宽度与实际使用的纸张匹配 +- **打印队列**: 高并发打印时需要考虑打印队列管理 +- **错误处理**: 建立打印失败的重试和错误处理机制 +- **设备状态**: 定期检查打印机设备的在线状态 +- **模板数据**: JSON格式的模板数据需要验证格式正确性 +- **权限控制**: 控制打印机配置的修改权限 +- **日志记录**: 记录打印任务的执行日志和结果 +- **成本控制**: 监控打印量,控制打印成本 +- **维护保养**: 定期维护打印机设备,确保打印质量 +- **备用方案**: 准备备用打印机,防止设备故障影响业务 +- **数据备份**: 定期备份打印机配置和模板数据 diff --git a/niucloud/databasedoc/school_sys_printer_template.md b/niucloud/databasedoc/school_sys_printer_template.md new file mode 100644 index 00000000..2ed8b1c3 --- /dev/null +++ b/niucloud/databasedoc/school_sys_printer_template.md @@ -0,0 +1,89 @@ +# school_sys_printer_template 表文档 + +## 表概述 +**表名**: school_sys_printer_template +**功能**: 系统打印模板管理表,用于管理各种打印业务的模板配置,支持多种打印类型和自定义模板格式 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +template_id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references +template_name varchar(255) utf8mb4_general_ci NO select,insert,update,references 模板名称 +template_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 模板类型 +value longtext utf8mb4_general_ci YES NULL select,insert,update,references 模板数据,json格式 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +- **模板管理**: 管理各种打印业务的模板配置和格式 +- **模板分类**: 支持不同类型的打印模板(收费凭证、课程表、考勤表等) +- **模板配置**: 存储模板的详细配置信息,支持JSON格式的灵活配置 +- **模板版本**: 支持模板的创建和更新时间管理 +- **模板复用**: 提供可复用的模板配置,提高打印效率 +- **格式定制**: 支持自定义打印格式和样式配置 +- **数据映射**: 配置打印数据与模板字段的映射关系 +- **布局设计**: 管理打印页面的布局和排版配置 + +### 业务场景 +- **收费凭证打印**: 学费、杂费等各种收费凭证的打印模板 +- **课程表打印**: 学员课程安排表的打印模板配置 +- **考勤记录打印**: 学员和教师考勤记录的打印模板 +- **合同打印**: 教学合同、协议等文档的打印模板 +- **证书打印**: 结业证书、荣誉证书等的打印模板 +- **报表打印**: 各种统计报表的打印模板配置 +- **通知单打印**: 家长通知单、缴费通知等的打印模板 +- **名单打印**: 学员名单、教师名单等的打印模板 +- **标签打印**: 学员卡片、座位标签等的打印模板 + +## 关联关系 + +### 主要关联表 +- `school_sys_printer`: 打印机设备表(模板与打印机关联) +- `school_pay`: 支付表(收费凭证模板关联) +- `school_course`: 课程表(课程相关模板关联) +- `school_attendance`: 考勤表(考勤模板关联) +- `school_contract`: 合同表(合同模板关联) +- `school_member`: 会员表(学员相关模板关联) +- `school_personnel`: 人员表(教师相关模板关联) +- `school_campus`: 校区表(校区模板配置关联) + +### 关联说明 +- **设备关联**: 模板与具体的打印机设备关联使用 +- **业务关联**: 不同类型的模板对应不同的业务场景 +- **数据关联**: 模板配置中定义与业务数据的映射关系 +- **权限关联**: 模板的使用可能受到用户权限限制 +- **校区关联**: 不同校区可能使用不同的模板配置 +- **版本关联**: 模板支持版本管理和历史记录 + +## 索引建议 +- **主键索引**: template_id(已存在) +- **业务索引**: + - template_type(模板类型查询) + - template_name(模板名称查询) + - create_time(创建时间查询) + - update_time(更新时间查询) +- **复合索引**: + - (template_type, template_name)(类型名称查询优化) + - (template_type, create_time)(类型时间查询) +- **唯一索引**: + - (template_name, template_type)(同类型模板名称唯一) + +## 注意事项 +- **模板格式**: value字段存储JSON格式数据,需要验证格式正确性 +- **模板备份**: 重要模板需要定期备份,防止数据丢失 +- **版本控制**: 模板更新时需要保留历史版本,支持回滚 +- **权限控制**: 模板的创建、修改、删除需要相应权限 +- **数据验证**: 模板配置数据需要验证完整性和有效性 +- **性能优化**: 大量模板数据需要考虑查询性能优化 +- **兼容性**: 模板格式变更时需要考虑向后兼容性 +- **安全性**: 模板配置可能包含敏感信息,需要安全保护 +- **标准化**: 建议制定模板配置的标准格式和规范 +- **测试验证**: 新模板需要充分测试,确保打印效果正确 +- **文档管理**: 维护详细的模板使用文档和说明 +- **监控告警**: 监控模板使用情况和异常情况 +- **数据迁移**: 系统升级时需要考虑模板数据的迁移 +- **缓存策略**: 常用模板可以考虑缓存,提高访问速度 diff --git a/niucloud/databasedoc/school_sys_role.md b/niucloud/databasedoc/school_sys_role.md new file mode 100644 index 00000000..01205ba7 --- /dev/null +++ b/niucloud/databasedoc/school_sys_role.md @@ -0,0 +1,108 @@ +# school_sys_role 表文档 + +## 表概述 +**表名**: school_sys_role +**功能**: 系统角色管理表,负责管理教务系统中的用户角色定义、权限分配、角色层级、数据权限等访问控制功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +role_id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 角色id +role_name varchar(255) utf8mb4_general_ci NO select,insert,update,references 角色名称 +role_key varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 角色英文标识|market=销售,teacher=老师,manager=经理 +rules text utf8mb4_general_ci YES NULL select,insert,update,references 角色权限(menus_id) +mobile_rules text utf8mb4_general_ci YES NULL select,insert,update,references 移动端权限规则JSON +addon_keys text utf8mb4_general_ci YES NULL select,insert,update,references 角色应用权限(应用key) +status tinyint unsigned NULL NO 1 select,insert,update,references 状态 +create_time int NULL NO 0 select,insert,update,references 添加时间 +update_time int NULL NO 0 select,insert,update,references 最后修改时间 +dept_id int NULL YES NULL select,insert,update,references 部门id +is_supervisor tinyint NULL YES 0 select,insert,update,references 是否为主管:1是 0 否 +campus_id int NULL YES NULL select,insert,update,references 所属校区 +``` + +## 功能用途 + +### 主要功能 +- **角色定义管理**: 定义系统中的各种用户角色和职责 +- **权限分配**: 为角色分配相应的功能权限和数据权限 +- **角色层级**: 支持角色的层级关系和权限继承 +- **数据权限控制**: 控制角色可访问的数据范围 +- **角色状态管理**: 管理角色的启用和禁用状态 +- **角色排序**: 控制角色的显示顺序和优先级 +- **角色描述**: 提供角色的详细说明和备注 +- **权限模板**: 作为权限分配的模板和基础 +- **访问控制**: 实现基于角色的访问控制(RBAC) + +### 业务场景 +- **系统初始化**: 创建系统默认角色(超级管理员、管理员等) +- **用户注册**: 为新用户分配默认角色 +- **权限管理**: 管理员为角色分配和调整权限 +- **组织架构**: 根据组织结构创建对应角色 +- **业务流程**: 不同角色在业务流程中承担不同职责 +- **数据安全**: 通过角色控制敏感数据的访问 +- **功能授权**: 控制用户可使用的系统功能 +- **审计合规**: 角色权限变更的审计和合规管理 +- **多租户**: 支持多校区的角色权限隔离 + +## 关联关系 + +### 主要关联表 +- `school_personnel`: 人员表 (用户角色关联) +- `school_sys_menu`: 系统菜单表 (角色菜单权限) +- `role_menu_permissions`: 角色菜单权限表 (权限分配) +- `school_campus`: 校区表 (数据权限范围) +- `school_department`: 部门表 (部门角色关联) +- `school_sys_config`: 系统配置表 (角色配置) +- `sys_log`: 系统日志表 (角色操作日志) +- `school_approval_process`: 审批流程表 (角色审批权限) + +### 关联说明 +- **用户关联**: 人员表中的role_id字段关联此表,确定用户角色 +- **菜单关联**: 通过权限表关联菜单,控制角色可访问的功能 +- **权限关联**: 权限表记录角色与具体权限的对应关系 +- **数据权限**: 角色可能限制在特定校区或部门的数据范围 +- **部门关联**: 部门可能有默认角色或角色层级关系 +- **配置关联**: 系统配置可能影响角色的权限和行为 +- **日志关联**: 角色的创建、修改、删除操作记录在日志中 +- **审批关联**: 角色决定用户在审批流程中的权限和职责 + +## 索引建议 +- **主键索引**: role_id (已存在) +- **唯一索引**: + - role_key (角色标识唯一) +- **外键索引**: + - parent_id (父角色查询) +- **业务索引**: + - status (状态查询) + - sort (排序查询) + - role_name (角色名称查询) +- **复合索引**: + - (status, sort) (有效角色排序查询) + - (parent_id, status) (有效子角色查询) + - (role_key, status) (角色标识状态查询) +- **时间索引**: + - create_time (创建时间查询) + - update_time (更新时间查询) + +## 注意事项 +- **角色标识唯一性**: role_key必须唯一,避免角色标识冲突 +- **角色名称唯一性**: role_name建议唯一,避免角色名称混淆 +- **层级关系**: parent_id不能形成循环引用,避免无限递归 +- **权限继承**: 子角色可能继承父角色的部分权限 +- **数据完整性**: 删除角色前需要检查是否有用户关联 +- **权限同步**: 角色权限变更时需要同步更新用户权限 +- **状态控制**: 禁用角色时需要考虑关联用户的处理 +- **排序逻辑**: sort字段用于控制角色的显示顺序 +- **权限最小化**: 遵循最小权限原则,避免权限过度分配 +- **角色粒度**: 角色设计要平衡粒度,避免过细或过粗 +- **默认角色**: 系统应该有默认角色,新用户自动分配 +- **超级管理员**: 超级管理员角色需要特殊保护,不能删除 +- **权限验证**: 所有操作都需要验证用户角色权限 +- **缓存策略**: 角色权限信息适合缓存,提高性能 +- **审计日志**: 角色权限变更需要详细的审计日志 +- **多租户隔离**: 不同校区的角色权限需要隔离 +- **权限模板**: 可以基于角色创建权限分配模板 +- **临时权限**: 考虑是否需要支持临时权限授权 +- **权限回收**: 用户离职或角色变更时及时回收权限 diff --git a/niucloud/databasedoc/school_sys_schedule.md b/niucloud/databasedoc/school_sys_schedule.md new file mode 100644 index 00000000..2423b671 --- /dev/null +++ b/niucloud/databasedoc/school_sys_schedule.md @@ -0,0 +1,106 @@ +# school_sys_schedule 表文档 + +## 表概述 +**表名**: school_sys_schedule +**功能**: 系统计划任务管理表,用于管理和调度系统中的各种定时任务和周期性任务 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +addon varchar(255) utf8mb4_general_ci NO select,insert,update,references 所属插件 +key varchar(255) utf8mb4_general_ci NO select,insert,update,references 计划任务模板key +status int NULL NO 1 select,insert,update,references 任务状态 是否启用 +time varchar(500) utf8mb4_general_ci NO select,insert,update,references 任务周期 json结构 +count int NULL NO 0 select,insert,update,references 执行次数 +last_time int NULL NO 0 select,insert,update,references 最后执行时间 +next_time int NULL NO 0 select,insert,update,references 下次执行时间 +create_time int NULL NO 0 select,insert,update,references 创建时间 +delete_time int NULL NO 0 select,insert,update,references 删除时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +sort int NULL NO 0 select,insert,update,references 排序 +``` + +## 功能用途 + +### 主要功能 +- **任务调度管理**: 管理系统中各种定时任务的调度和执行 +- **插件任务支持**: 支持不同插件模块的专属定时任务 +- **任务状态控制**: 控制任务的启用、禁用状态 +- **执行周期配置**: 通过JSON结构灵活配置任务执行周期 +- **执行统计**: 记录任务的执行次数和执行历史 +- **时间管理**: 跟踪任务的最后执行时间和下次执行时间 +- **任务排序**: 支持任务的优先级排序和执行顺序 +- **任务模板**: 基于key值管理任务模板和配置 +- **执行监控**: 监控任务的执行状态和性能 + +### 业务场景 +- **数据同步任务**: 定期同步各系统间的数据 +- **报表生成**: 定时生成各类统计报表和分析数据 +- **数据备份**: 定期备份重要的业务数据 +- **消息推送**: 定时发送通知消息和提醒 +- **数据清理**: 定期清理过期数据和临时文件 +- **统计计算**: 定时计算业务指标和统计数据 +- **系统维护**: 定期执行系统维护和优化任务 +- **缓存更新**: 定时更新和刷新系统缓存 +- **日志归档**: 定期归档和压缩系统日志 +- **健康检查**: 定期检查系统和服务的健康状态 +- **数据导入导出**: 定时执行数据的导入导出任务 +- **邮件发送**: 定时发送邮件通知和报告 + +## 关联关系 + +### 主要关联表 +- `school_sys_schedule_log`: 任务执行日志表(任务执行记录) +- `school_sys_addon`: 插件表(任务所属插件) +- `school_sys_cron_task`: 定时任务表(具体的cron任务) +- `school_sys_user`: 系统用户表(任务创建者) +- `school_campus`: 校区表(任务执行范围) +- `school_sys_config`: 系统配置表(任务相关配置) +- `school_sys_log`: 系统日志表(任务执行日志) + +### 关联说明 +- **插件关联**: addon字段关联到具体的插件模块 +- **任务模板**: key字段标识任务模板和配置类型 +- **执行日志**: 与执行日志表形成一对多关系 +- **时间关联**: 记录任务的创建、更新和执行时间 +- **状态关联**: 任务状态影响实际的执行调度 +- **配置关联**: time字段存储JSON格式的执行周期配置 +- **监控关联**: 与系统监控和告警系统关联 + +## 索引建议 +- **主键索引**: id(已存在) +- **插件索引**: addon(按插件查询任务) +- **任务键索引**: key(按任务模板查询) +- **状态索引**: status(按状态查询活跃任务) +- **时间索引**: + - next_time(下次执行时间查询) + - last_time(最后执行时间查询) + - create_time(创建时间查询) + - update_time(更新时间查询) +- **复合索引**: + - (status, next_time)(查询待执行任务) + - (addon, status)(按插件查询活跃任务) + - (addon, key)(插件任务模板查询) + - (status, sort)(按状态和排序查询) +- **排序索引**: sort(任务排序) +- **删除状态索引**: delete_time(逻辑删除查询) + +## 注意事项 +- **时间精度**: 确保执行时间的精确性和时区处理 +- **并发控制**: 防止同一任务的重复执行和并发冲突 +- **异常处理**: 建立完善的任务执行异常处理机制 +- **性能监控**: 监控任务执行的性能和资源消耗 +- **日志记录**: 详细记录任务执行的过程和结果 +- **配置验证**: 验证JSON格式的时间配置的正确性 +- **资源管理**: 合理管理任务执行时的系统资源 +- **故障恢复**: 建立任务执行失败的重试和恢复机制 +- **权限控制**: 严格控制任务的创建、修改和删除权限 +- **数据一致性**: 确保任务状态与实际执行状态的一致性 +- **插件依赖**: 处理任务与插件模块的依赖关系 +- **时间同步**: 确保服务器时间的准确性和同步 +- **任务隔离**: 不同插件的任务应该相互隔离 +- **执行超时**: 设置合理的任务执行超时时间 +- **负载均衡**: 在多服务器环境下合理分配任务执行 +- **备份恢复**: 重要任务配置需要定期备份 diff --git a/niucloud/databasedoc/school_sys_schedule_log.md b/niucloud/databasedoc/school_sys_schedule_log.md new file mode 100644 index 00000000..3e3a1244 --- /dev/null +++ b/niucloud/databasedoc/school_sys_schedule_log.md @@ -0,0 +1,115 @@ +# school_sys_schedule_log 表文档 + +## 表概述 +**表名**: school_sys_schedule_log +**功能**: 系统计划任务执行日志表,用于记录定时任务的执行历史、状态和结果 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 执行记录id +schedule_id int NULL NO 0 select,insert,update,references 任务id +addon varchar(255) utf8mb4_general_ci NO select,insert,update,references 所属插件 +key varchar(255) utf8mb4_general_ci NO select,insert,update,references 计划任务模板key +name varchar(50) utf8mb4_general_ci NO select,insert,update,references 计划任务名称 +execute_time int NULL NO NULL select,insert,update,references 执行时间 +execute_result text utf8mb4_general_ci YES NULL select,insert,update,references 日志信息 +status varchar(255) utf8mb4_general_ci NO select,insert,update,references 执行状态 +class varchar(255) utf8mb4_general_ci NO select,insert,update,references +job varchar(255) utf8mb4_general_ci NO select,insert,update,references +``` + +## 功能用途 + +### 主要功能 +- **任务执行记录**: 记录系统中所有计划任务的执行历史和详细信息 +- **执行状态跟踪**: 实时跟踪任务的执行状态(成功、失败、执行中等) +- **执行结果存储**: 存储任务执行的详细结果和日志信息 +- **任务分类管理**: 通过addon字段区分不同插件的计划任务 +- **任务模板关联**: 通过key字段关联具体的任务模板配置 +- **执行时间记录**: 精确记录任务的执行开始时间 +- **错误日志收集**: 收集和存储任务执行过程中的错误信息 +- **性能监控**: 监控任务执行的性能和耗时情况 +- **任务审计**: 为系统审计提供完整的任务执行记录 + +### 业务场景 +- **数据同步任务**: 记录学员信息、课程数据等定期同步任务的执行情况 +- **报表生成**: 记录定时生成各类统计报表的任务执行日志 +- **数据清理**: 记录定期清理过期数据、日志文件等清理任务 +- **消息推送**: 记录定时发送通知、提醒等消息推送任务 +- **财务结算**: 记录定期财务结算、对账等财务相关任务 +- **系统备份**: 记录数据库备份、文件备份等系统维护任务 +- **缓存更新**: 记录定期更新缓存数据的任务执行情况 +- **监控检查**: 记录系统健康检查、性能监控等监控任务 +- **业务提醒**: 记录课程提醒、缴费提醒等业务相关的定时任务 +- **数据统计**: 记录定期统计分析数据的任务执行记录 + +## 关联关系 + +### 主要关联表 +- **school_sys_schedule**: 计划任务配置表,通过schedule_id关联任务配置 +- **school_sys_addon**: 插件表,通过addon字段关联任务所属插件 +- **school_sys_user**: 系统用户表,关联任务的创建和管理用户 +- **school_sys_config**: 系统配置表,关联任务执行的配置参数 +- **school_sys_log**: 系统日志表,可能与任务日志形成完整的日志体系 +- **school_member**: 会员表,某些任务可能涉及会员数据处理 +- **school_course**: 课程表,课程相关的定时任务 +- **school_pay**: 支付表,财务相关的定时任务 + +### 关联说明 +- `schedule_id` 关联 `school_sys_schedule.id`,标识具体的计划任务配置 +- `addon` 关联 `school_sys_addon.key`,标识任务所属的插件模块 +- `key` 字段标识任务模板的唯一标识符 +- `class` 和 `job` 字段标识任务的具体执行类和方法 +- **配置关联**: 与任务配置表关联,获取任务的执行参数 +- **插件关联**: 与插件系统关联,支持插件化的任务管理 +- **日志关联**: 与系统日志体系关联,形成完整的操作记录 +- **监控关联**: 与系统监控关联,实现任务执行的实时监控 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 任务ID索引(用于查询特定任务的执行记录) +INDEX idx_schedule_id (schedule_id) + +-- 插件索引(用于按插件查询任务记录) +INDEX idx_addon (addon) + +-- 任务key索引(用于按任务模板查询) +INDEX idx_key (key) + +-- 执行状态索引(用于按状态查询) +INDEX idx_status (status) + +-- 执行时间索引(用于按时间查询) +INDEX idx_execute_time (execute_time) + +-- 复合索引(用于任务执行统计) +INDEX idx_schedule_status_time (schedule_id, status, execute_time) + +-- 复合索引(用于插件任务统计) +INDEX idx_addon_status_time (addon, status, execute_time) + +-- 复合索引(用于任务模板统计) +INDEX idx_key_status_time (key, status, execute_time) +``` + +## 注意事项 +- **日志大小控制**: execute_result字段可能存储大量日志信息,需要控制日志大小 +- **数据清理策略**: 定期清理过期的任务执行日志,避免数据量过大 +- **执行状态准确性**: 确保任务执行状态的准确记录和及时更新 +- **错误信息完整性**: 任务执行失败时应记录完整的错误信息和堆栈 +- **时间精度**: 执行时间应保证足够精度,支持性能分析 +- **并发安全**: 多个任务同时执行时需要保证日志记录的并发安全 +- **存储性能**: 大量任务执行时需要考虑日志写入的性能影响 +- **查询优化**: 针对常用的查询场景优化索引和查询语句 +- **监控告警**: 建立任务执行异常的监控和告警机制 +- **日志轮转**: 实施合理的日志轮转和归档策略 +- **权限控制**: 控制任务日志的查看和管理权限 +- **备份策略**: 重要任务的执行日志需要定期备份 +- **性能统计**: 定期分析任务执行性能,优化任务配置 +- **异常处理**: 建立任务执行异常的处理和恢复机制 +- **审计合规**: 确保任务执行日志满足审计和合规要求 diff --git a/niucloud/databasedoc/school_sys_user.md b/niucloud/databasedoc/school_sys_user.md new file mode 100644 index 00000000..294ef7c8 --- /dev/null +++ b/niucloud/databasedoc/school_sys_user.md @@ -0,0 +1,79 @@ +# school_sys_user 表文档 + +## 表概述 +**表名**: school_sys_user +**功能**: 系统用户管理表,用于存储和管理系统后台管理员的基本信息、登录状态、权限配置等核心数据。 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +uid smallint unsigned NULL NO PRI NULL auto_increment select,insert,update,references 系统用户ID +username varchar(255) utf8mb4_general_ci NO select,insert,update,references 用户账号 +head_img varchar(255) utf8mb4_general_ci NO select,insert,update,references +password varchar(100) utf8mb4_general_ci NO select,insert,update,references 用户密码 +real_name varchar(16) utf8mb4_general_ci NO select,insert,update,references 实际姓名 +last_ip varchar(50) utf8mb4_general_ci NO select,insert,update,references 最后一次登录ip +last_time int unsigned NULL NO 0 select,insert,update,references 最后一次登录时间 +create_time int unsigned NULL NO 0 select,insert,update,references 添加时间 +login_count int unsigned NULL NO 0 select,insert,update,references 登录次数 +is_del tinyint unsigned NULL NO 0 select,insert,update,references +login_type varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 登录类型 +delete_time int NULL NO 0 select,insert,update,references 删除时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +status tinyint unsigned NULL NO 1 select,insert,update,references 后台管理员状态 1有效0无效 +role_ids varchar(255) utf8mb4_general_ci NO select,insert,update,references 权限组 +is_admin tinyint NULL NO 0 select,insert,update,references 是否是管理员 +``` + +## 功能用途 + +### 主要功能 +1. **用户身份管理**: 存储管理员的基本身份信息(用户名、真实姓名、头像等) +2. **登录认证**: 管理用户密码、登录状态、登录历史 +3. **权限控制**: 通过role_ids字段关联角色权限,支持多角色分配 +4. **安全审计**: 记录登录IP、登录次数、最后登录时间等安全信息 +5. **状态管理**: 支持用户启用/禁用、软删除等状态控制 + +### 业务场景 +- 系统管理员登录认证 +- 后台用户权限管理 +- 操作日志审计追踪 +- 用户状态监控 +- 多角色权限分配 +- 安全登录控制 + +## 关联关系 + +### 直接关联表 +1. **school_sys_user_role**: 通过uid字段关联用户角色关系 +2. **school_sys_role**: 通过role_ids字段关联角色信息 +3. **school_sys_user_log**: 通过uid字段关联用户操作日志 + +### 间接关联表 +1. **school_sys_menu**: 通过角色权限间接关联菜单权限 +2. **school_campus**: 可能通过业务逻辑关联校区管理权限 +3. **各业务表**: 通过创建人、更新人字段关联 + +### 关联说明 +- `uid`字段作为主键,在多个表中作为外键引用 +- `role_ids`字段存储角色ID列表,与school_sys_role表形成多对多关系 +- `username`字段作为登录凭证,需要保证唯一性 +- 通过is_admin字段区分超级管理员和普通管理员 + +## 索引建议 +- 主键索引:uid(自动创建) +- 唯一索引:username(登录账号唯一性) +- 普通索引:status(按状态查询活跃用户) +- 普通索引:is_del(软删除查询) +- 复合索引:status + is_del(查询有效用户) +- 普通索引:last_time(按最后登录时间排序) + +## 注意事项 +1. **密码安全**: password字段应使用强加密算法存储,不可明文保存 +2. **软删除**: 使用is_del字段实现软删除,避免直接删除用户数据 +3. **角色权限**: role_ids字段存储格式需要统一,建议使用JSON或逗号分隔 +4. **登录安全**: 需要配合登录失败次数限制、IP白名单等安全机制 +5. **时间字段**: 所有时间字段使用时间戳格式,注意时区处理 +6. **状态一致性**: status和is_del字段需要保持逻辑一致性 +7. **超级管理员**: is_admin=1的用户具有最高权限,需要严格控制 diff --git a/niucloud/databasedoc/school_sys_user_log.md b/niucloud/databasedoc/school_sys_user_log.md new file mode 100644 index 00000000..13963569 --- /dev/null +++ b/niucloud/databasedoc/school_sys_user_log.md @@ -0,0 +1,61 @@ +# school_sys_user_log 表文档 + +## 表概述 +**表名**: school_sys_user_log +**功能**: 系统用户操作日志记录表,用于记录管理员在系统中的所有操作行为,包括登录、访问页面、执行操作等,为系统安全审计和问题追踪提供数据支持 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 管理员操作记录ID +ip varchar(50) utf8mb4_general_ci NO select,insert,update,references 登录IP +uid int unsigned NULL NO 0 select,insert,update,references 管理员id +username varchar(64) utf8mb4_general_ci NO select,insert,update,references 管理员姓名 +url varchar(128) utf8mb4_general_ci NO select,insert,update,references 链接 +params longtext utf8mb4_general_ci YES NULL select,insert,update,references 参数 +type varchar(32) utf8mb4_general_ci NO select,insert,update,references 请求方式 +create_time int unsigned NULL NO 0 select,insert,update,references 操作时间 +``` + +## 功能用途 + +### 主要功能 +- **操作记录**: 记录管理员的每一次系统操作,包括访问的URL、请求参数、操作时间等 +- **安全审计**: 提供完整的操作轨迹,用于安全审计和合规检查 +- **问题追踪**: 当系统出现问题时,可通过日志快速定位操作源头 +- **行为分析**: 分析管理员的操作习惯和系统使用情况 +- **权限监控**: 监控管理员是否存在越权操作或异常行为 + +### 业务场景 +- **日常审计**: 定期检查管理员操作记录,确保操作合规 +- **安全事件调查**: 当发生安全事件时,通过日志追溯操作源头 +- **系统优化**: 分析操作频率,优化系统功能和界面设计 +- **权限管理**: 根据操作记录调整管理员权限配置 +- **培训指导**: 分析新管理员的操作记录,提供针对性培训 + +## 关联关系 + +### 可能的关联表 +- **sys_user**: 通过uid字段关联系统用户表,获取管理员详细信息 +- **sys_role**: 间接关联角色表,分析不同角色的操作行为 +- **sys_menu**: 通过url字段关联菜单表,分析功能使用情况 + +### 关联说明 +- **与sys_user表**: uid字段关联sys_user.id,建立操作记录与具体管理员的关系 +- **业务关联**: 通过url和params字段可以关联到具体的业务操作 +- **时间关联**: create_time字段可与其他表的时间字段进行关联分析 + +## 索引建议 +- **主键索引**: id字段(已存在) +- **用户索引**: uid字段,用于快速查询特定用户的操作记录 +- **时间索引**: create_time字段,用于按时间范围查询 +- **复合索引**: (uid, create_time) 用于查询特定用户的时间范围操作 +- **IP索引**: ip字段,用于安全分析和异常登录检测 + +## 注意事项 +- **数据量控制**: 日志表数据增长快,需要定期清理历史数据 +- **敏感信息**: params字段可能包含敏感参数,需要注意数据安全 +- **性能影响**: 频繁的日志写入可能影响系统性能,建议异步处理 +- **存储空间**: 长期运行会产生大量数据,需要合理的存储策略 +- **查询优化**: 大数据量查询时需要合理使用索引和分页 diff --git a/niucloud/databasedoc/school_sys_user_role.md b/niucloud/databasedoc/school_sys_user_role.md new file mode 100644 index 00000000..ce809836 --- /dev/null +++ b/niucloud/databasedoc/school_sys_user_role.md @@ -0,0 +1,96 @@ +# school_sys_user_role 表文档 + +## 表概述 +**表名**: school_sys_user_role +**功能**: 系统用户角色关联表,用于建立用户与角色的多对多关联关系,实现基于角色的权限管理和访问控制,支持超级管理员标识和角色组合权限 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +uid int NULL NO 0 select,insert,update,references 用户id +role_ids varchar(255) utf8mb4_general_ci NO select,insert,update,references 角色id +create_time int NULL NO 0 select,insert,update,references 添加时间 +is_admin int NULL NO 0 select,insert,update,references 是否是超级管理员 +status int NULL NO 1 select,insert,update,references 状态 +``` + +## 功能用途 + +### 主要功能 +- **用户角色绑定**: 建立用户与角色的多对多关联关系 +- **权限管理**: 通过角色分配实现用户权限的统一管理 +- **超级管理员标识**: 通过is_admin字段标识超级管理员用户 +- **角色组合管理**: 支持一个用户拥有多个角色的组合权限 +- **用户状态控制**: 管理用户角色分配的启用/禁用状态 +- **权限继承**: 用户通过角色继承相应的菜单和功能权限 +- **角色变更记录**: 记录用户角色分配的时间信息 +- **权限隔离**: 确保不同角色用户的数据和功能访问隔离 +- **批量权限管理**: 支持批量分配和调整用户角色 + +### 业务场景 +- **系统用户管理**: 为系统管理员、教务人员等分配相应角色 +- **权限分级管理**: 校长、主管、教师等不同级别的权限管理 +- **功能模块访问**: 控制用户对不同功能模块的访问权限 +- **数据权限控制**: 基于角色控制用户可访问的数据范围 +- **临时权限分配**: 为特定用户临时分配额外的角色权限 +- **角色权限审计**: 审计和检查用户的角色权限分配情况 +- **权限回收**: 用户离职或调岗时回收相应的角色权限 +- **多校区权限**: 为跨校区用户分配不同校区的角色权限 +- **季节性权限**: 根据业务需要临时调整用户的角色权限 +- **权限继承**: 新用户根据岗位自动继承标准的角色配置 + +## 关联关系 + +### 主要关联表 +- **school_sys_user**: 系统用户表,通过uid字段关联 +- **school_sys_role**: 系统角色表,通过role_ids字段关联 +- **school_sys_menu**: 系统菜单表,通过角色获取菜单权限 +- **school_personnel**: 人员表,可能与系统用户存在关联 +- **school_campus**: 校区表,角色可能与特定校区相关 +- **school_sys_user_log**: 用户日志表,记录角色变更操作 + +### 关联说明 +- **用户关联**: 通过uid字段与school_sys_user表建立一对一关系 +- **角色关联**: role_ids字段存储多个角色ID,以逗号分隔 +- **权限继承**: 用户通过角色获得对应的菜单和功能权限 +- **日志关联**: 角色变更操作会记录到用户操作日志中 +- **校区关联**: 角色权限可能与特定校区的数据访问相关 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 用户ID索引(用于查询用户角色) +UNIQUE INDEX idx_uid (uid) + +-- 状态索引(用于查询有效的用户角色) +INDEX idx_status (status) + +-- 超级管理员索引(用于查询管理员) +INDEX idx_is_admin (is_admin) + +-- 创建时间索引(用于按时间查询) +INDEX idx_create_time (create_time) + +-- 复合索引(用于权限验证) +INDEX idx_uid_status (uid, status) +``` + +## 注意事项 +- **角色ID格式**: role_ids字段存储格式应统一,建议使用逗号分隔的数字串 +- **超级管理员**: is_admin=1的用户拥有所有权限,需要严格控制 +- **角色验证**: 用户登录时需要验证角色的有效性和状态 +- **权限缓存**: 用户权限信息应合理缓存,提高系统性能 +- **角色变更**: 角色变更后需要清除相关缓存,确保权限及时生效 +- **数据一致性**: 角色删除时需要检查是否有用户仍在使用该角色 +- **权限最小化**: 遵循权限最小化原则,避免过度授权 +- **审计日志**: 重要的角色变更操作应记录详细的审计日志 +- **并发控制**: 角色分配操作需要考虑并发安全问题 +- **角色继承**: 角色权限变更时需要考虑对已分配用户的影响 +- **状态同步**: 用户状态变更时需要同步更新角色分配状态 +- **备份恢复**: 重要的权限配置数据应定期备份 +- **安全检查**: 定期检查和审计用户的角色权限分配 +- **角色清理**: 定期清理无效或过期的角色分配记录 diff --git a/niucloud/databasedoc/school_template_message.md b/niucloud/databasedoc/school_template_message.md new file mode 100644 index 00000000..c3de864b --- /dev/null +++ b/niucloud/databasedoc/school_template_message.md @@ -0,0 +1,85 @@ +# school_template_message 表文档 + +## 表概述 +**表名**: school_template_message +**功能**: 模板消息管理表,负责管理教务系统中的消息模板,包括微信模板消息、短信模板、邮件模板等各种通知模板的配置和管理 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +title varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 模板标题 +template_id varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 模板id +``` + +## 功能用途 + +### 主要功能 +1. **模板消息配置**: 管理各种消息模板的标题和模板ID +2. **多渠道支持**: 支持微信模板消息、短信、邮件等多种消息渠道 +3. **模板标识管理**: 通过template_id唯一标识不同的消息模板 +4. **模板分类**: 通过title对模板进行分类和描述 +5. **消息发送**: 为消息发送功能提供模板支持 +6. **模板维护**: 支持模板的增删改查操作 +7. **业务集成**: 与各业务模块集成,提供消息通知服务 + +### 业务场景 +- 学员报名成功通知 +- 课程开课提醒 +- 考试成绩通知 +- 缴费成功确认 +- 课程变更通知 +- 系统维护公告 +- 生日祝福消息 +- 活动邀请通知 +- 作业提交提醒 +- 请假审批结果 +- 成绩查询通知 +- 毕业证书领取通知 + +## 关联关系 + +### 主要关联表 +1. **school_sys_notice**: 系统通知表(消息发送记录) +2. **school_student**: 学员表(消息接收者) +3. **school_personnel**: 人员表(消息接收者) +4. **school_member**: 会员表(消息接收者) +5. **school_course**: 课程表(课程相关通知) +6. **school_exam_records**: 考试记录表(考试通知) +7. **school_pay**: 支付表(支付通知) +8. **school_sys_config**: 系统配置表(消息配置) +9. **school_wechat_reply**: 微信回复表(微信消息) + +### 关联说明 +- **通知关联**: 系统通知表使用模板发送各种通知消息 +- **用户关联**: 学员、人员、会员作为消息的接收对象 +- **业务关联**: 课程、考试、支付等业务触发相应的模板消息 +- **配置关联**: 系统配置表存储消息发送的相关配置参数 +- **微信关联**: 微信相关表使用模板发送微信消息 +- **模板引用**: template_id被其他表引用来指定使用的消息模板 + +## 索引建议 +- **主键索引**: id(已存在) +- **唯一索引**: template_id(模板ID唯一性) +- **业务索引**: + - title(模板标题查询) +- **复合索引**: + - (template_id, title)(模板查询优化) + +## 注意事项 +1. **模板ID唯一性**: template_id必须保证全局唯一,避免模板冲突 +2. **模板格式**: 不同渠道的模板格式要求不同,需要分别配置 +3. **模板审核**: 微信模板消息需要通过微信官方审核才能使用 +4. **参数配置**: 模板中的变量参数需要与业务数据字段对应 +5. **发送限制**: 不同消息渠道有发送频率和数量限制 +6. **权限控制**: 模板配置需要相应的管理权限 +7. **模板备份**: 重要模板需要备份,避免误删除 +8. **版本管理**: 模板变更需要版本控制和回滚机制 +9. **测试验证**: 模板配置后需要测试发送效果 +10. **合规要求**: 消息内容需要符合相关法规要求 +11. **字符限制**: 不同渠道对消息长度有限制 +12. **编码格式**: 确保模板内容的编码格式正确 +13. **多语言支持**: 可能需要支持多语言模板 +14. **缓存策略**: 模板数据适合缓存优化性能 +15. **监控统计**: 需要监控模板的使用情况和发送成功率 diff --git a/niucloud/databasedoc/school_user_feedback.md b/niucloud/databasedoc/school_user_feedback.md new file mode 100644 index 00000000..e039549b --- /dev/null +++ b/niucloud/databasedoc/school_user_feedback.md @@ -0,0 +1,78 @@ +# school_user_feedback 表文档 + +## 表概述 +**表名**: school_user_feedback +**功能**: 用户反馈管理表,用于收集和管理用户(客户资源)的反馈信息,支持文本反馈和附件上传,为客户服务和产品改进提供重要的用户意见收集渠道 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 反馈编号 +user_id int NULL NO NULL select,insert,update,references 用户ID|school_customer_resources表id +feedback_text text utf8mb4_general_ci NO NULL select,insert,update,references 反馈内容 +attachment_url varchar(255) utf8mb4_general_ci YES NULL select,insert,update,references 附件URL(OSS对象存储) +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +``` + +## 功能用途 + +### 主要功能 +- **反馈信息收集**: 收集用户对课程、服务、系统等方面的反馈意见 +- **附件支持**: 支持用户上传图片、文档等附件作为反馈补充 +- **用户关联**: 关联客户资源表,追踪反馈来源 +- **时间追踪**: 记录反馈创建和修改时间,便于跟踪处理进度 +- **内容管理**: 存储详细的反馈文本内容 +- **云存储集成**: 附件通过OSS对象存储服务管理 + +### 业务场景 +- **课程反馈**: 学员对课程内容、教学质量的意见和建议 +- **服务评价**: 用户对客服、咨询等服务的反馈 +- **系统问题**: 用户在使用系统过程中遇到的问题和bug报告 +- **功能建议**: 用户对系统功能改进的建议和需求 +- **投诉处理**: 用户投诉和不满意见的收集和处理 +- **满意度调查**: 定期收集用户满意度和体验反馈 +- **产品改进**: 基于用户反馈进行产品和服务的持续改进 + +## 关联关系 + +### 主要关联表 +- **school_customer_resources**: 通过user_id关联客户资源信息 +- **school_member**: 可能关联会员信息(如果用户是会员) +- **school_course**: 可能关联具体的课程反馈 +- **school_personnel**: 可能关联处理反馈的工作人员 +- **school_sys_attachment**: 关联反馈附件的详细信息 + +### 关联说明 +- `user_id` → `school_customer_resources.id`: 一对多关系,一个客户可以提交多个反馈 +- 反馈内容可能涉及具体的课程、服务或系统功能 +- 附件通过OSS存储,attachment_url存储访问链接 +- 支持反馈的分类和标签管理 + +## 索引建议 +```sql +-- 主键索引(已存在) +PRIMARY KEY (id) + +-- 用户查询索引 +INDEX idx_user_id (user_id) + +-- 创建时间索引 +INDEX idx_created_at (created_at) + +-- 更新时间索引 +INDEX idx_updated_at (updated_at) + +-- 复合索引:用户+创建时间 +INDEX idx_user_created (user_id, created_at) +``` + +## 注意事项 +- **数据隐私**: 反馈内容可能包含敏感信息,需要做好数据保护 +- **附件安全**: OSS附件需要设置适当的访问权限和安全策略 +- **内容审核**: 反馈内容应进行适当的审核和过滤 +- **响应时效**: 建立反馈处理的时效要求和跟踪机制 +- **分类管理**: 建议增加反馈类型和状态字段便于管理 +- **存储优化**: 大量反馈数据需要考虑存储和查询性能优化 +- **用户关联**: 确保user_id的有效性和数据一致性 diff --git a/niucloud/databasedoc/school_venue.md b/niucloud/databasedoc/school_venue.md new file mode 100644 index 00000000..d63ead35 --- /dev/null +++ b/niucloud/databasedoc/school_venue.md @@ -0,0 +1,94 @@ +# school_venue 表文档 + +## 表概述 +**表名**: school_venue +**功能**: 场地信息管理表,负责管理教务系统中的教学场地信息,包括场地容量、可用状态、时间安排等核心场地管理功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 场地编号 +campus_id int NULL NO NULL select,insert,update,references 校区ID +venue_name varchar(255) utf8mb4_general_ci NO NULL select,insert,update,references 场地名称 +capacity int NULL NO NULL select,insert,update,references 场地可容纳人数上限 +availability_status tinyint(1) NULL NO NULL select,insert,update,references 场地可用状态: 1-可用, 0-不可用 +time_range_type enum('range','fixed','all') utf8mb4_general_ci NO NULL select,insert,update,references 场地可用时间范围类型: range-范围类型, fixed-固定时间范围类型 +time_range_start varchar(8) utf8mb4_general_ci YES NULL select,insert,update,references 范围类型的开始时间 +time_range_end varchar(8) utf8mb4_general_ci YES NULL select,insert,update,references 范围类型的结束时间 +fixed_time_ranges json NULL YES NULL select,insert,update,references 固定时间范围类型的可用时间, 存储为JSON数组 +created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 创建时间 +updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 修改时间 +deleted_at int NULL YES 0 select,insert,update,references 逻辑删除时间 +``` + +## 功能用途 + +### 主要功能 +- **场地基础管理**: 管理场地名称、容量等基本信息 +- **容量控制**: 设置和管理场地的最大容纳人数限制 +- **可用状态管理**: 控制场地的启用/禁用状态 +- **时间范围管理**: 支持多种时间安排模式(范围型、固定型、全天型) +- **灵活时间配置**: 支持JSON格式的复杂时间段配置 +- **校区关联**: 将场地归属到具体校区进行分类管理 +- **软删除机制**: 保证场地数据的完整性和可追溯性 + +### 业务场景 +- **排课管理**: 为课程安排提供可用场地选择 +- **场地预订**: 支持场地的预订和冲突检查 +- **容量控制**: 确保课程人数不超过场地容量限制 +- **时间管理**: 根据场地可用时间安排课程时段 +- **资源优化**: 合理分配和利用场地资源 +- **场地维护**: 临时关闭场地进行维护和修缮 +- **多校区管理**: 不同校区的场地独立管理 +- **使用统计**: 分析场地使用率和效率 + +## 关联关系 + +### 主要关联表 +- `school_campus`: 校区信息表 (campus_id) +- `school_course_schedule`: 课程安排表 (venue_id) +- `school_class`: 班级信息表 (通过课程安排关联) +- `school_booking`: 场地预订表 (venue_id) +- `school_maintenance`: 场地维护表 (venue_id) +- `school_equipment`: 设备管理表 (venue_id) + +### 关联说明 +- **校区关联**: campus_id确定场地所属校区,支持多校区管理 +- **排课关联**: 通过course_schedule表关联具体的课程安排 +- **预订关联**: 支持场地的预订和使用记录 +- **维护关联**: 关联场地的维护和保养记录 +- **设备关联**: 关联场地内的教学设备和设施 + +## 索引建议 +- **主键索引**: id (已存在) +- **外键索引**: campus_id (校区场地查询) +- **状态索引**: availability_status (可用场地查询) +- **时间类型索引**: time_range_type (时间类型查询) +- **软删除索引**: deleted_at (有效场地查询) +- **复合索引**: + - (campus_id, availability_status) (校区可用场地查询) + - (availability_status, deleted_at) (有效可用场地查询) + - (campus_id, deleted_at) (校区有效场地查询) +- **容量索引**: capacity (按容量查询场地) +- **时间索引**: + - created_at (创建时间查询) + - updated_at (更新时间查询) + +## 注意事项 +- **容量限制**: capacity必须大于0,表示场地的实际容纳能力 +- **状态一致性**: availability_status和deleted_at需要保持逻辑一致性 +- **时间格式**: time_range_start和time_range_end使用HH:MM格式(如09:00) +- **JSON验证**: fixed_time_ranges字段需要验证JSON格式的正确性 +- **时间逻辑**: time_range_end必须大于time_range_start +- **时间类型**: time_range_type决定了时间字段的使用方式 + - range: 使用time_range_start和time_range_end + - fixed: 使用fixed_time_ranges JSON数组 + - all: 全天可用,忽略时间限制 +- **软删除**: 删除场地时需要检查是否有未完成的课程安排 +- **校区关联**: campus_id不能为空,每个场地必须归属于特定校区 +- **冲突检查**: 安排课程时需要检查场地时间冲突 +- **容量控制**: 课程人数不能超过场地容量限制 +- **维护状态**: 场地维护期间应设置为不可用状态 +- **数据完整性**: 修改场地信息时需要考虑对现有课程安排的影响 +- **权限控制**: 场地管理需要适当的权限控制机制 diff --git a/niucloud/databasedoc/school_verifier.md b/niucloud/databasedoc/school_verifier.md new file mode 100644 index 00000000..ba5a2435 --- /dev/null +++ b/niucloud/databasedoc/school_verifier.md @@ -0,0 +1,88 @@ +# school_verifier 表文档 + +## 表概述 +**表名**: school_verifier +**功能**: 核销验证管理表,用于管理各种业务场景下的核销验证操作,支持会员和用户的核销记录,为优惠券、积分、服务等核销业务提供验证和追踪功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +member_id int NULL NO 0 select,insert,update,references 会员id +uid int NULL NO 0 select,insert,update,references 用户id +create_time int NULL NO 0 select,insert,update,references 添加时间 +verify_type varchar(255) utf8mb4_general_ci NO select,insert,update,references 核销类型 +``` + +## 功能用途 + +### 主要功能 +- **核销记录管理**: 记录各种核销操作的详细信息 +- **多用户支持**: 支持会员和普通用户的核销操作 +- **核销类型分类**: 通过verify_type字段区分不同的核销业务类型 +- **时间追踪**: 记录核销操作的具体时间 +- **验证追溯**: 提供核销操作的完整追溯链 +- **业务关联**: 关联具体的会员和用户信息 + +### 业务场景 +- **优惠券核销**: 用户使用优惠券时的核销验证记录 +- **积分兑换**: 会员积分兑换商品或服务的核销记录 +- **课程核销**: 学员使用课程券或体验券的核销验证 +- **服务核销**: 各种服务项目的使用和核销记录 +- **活动核销**: 营销活动中奖品或福利的核销验证 +- **会员权益**: 会员特权和福利的使用核销记录 +- **礼品核销**: 礼品券、代金券等的核销验证 + +## 关联关系 + +### 主要关联表 +- **school_member**: 通过member_id关联会员信息 +- **school_sys_user**: 通过uid关联系统用户信息 +- **school_coupon**: 可能关联优惠券信息(根据verify_type) +- **school_gift**: 可能关联礼品信息(根据verify_type) +- **school_course**: 可能关联课程核销(根据verify_type) +- **school_member_account_log**: 可能关联积分变动记录 + +### 关联说明 +- `member_id` → `school_member.id`: 关联会员基础信息 +- `uid` → `school_sys_user.id`: 关联系统用户信息 +- `verify_type`: 标识核销的具体业务类型,决定与其他业务表的关联关系 +- 支持同一用户的多次核销操作记录 + +## 索引建议 +```sql +-- 主键索引(已存在) +PRIMARY KEY (id) + +-- 会员查询索引 +INDEX idx_member_id (member_id) + +-- 用户查询索引 +INDEX idx_uid (uid) + +-- 核销类型索引 +INDEX idx_verify_type (verify_type) + +-- 创建时间索引 +INDEX idx_create_time (create_time) + +-- 复合索引:会员+核销类型 +INDEX idx_member_verify_type (member_id, verify_type) + +-- 复合索引:用户+核销类型 +INDEX idx_user_verify_type (uid, verify_type) + +-- 复合索引:核销类型+时间 +INDEX idx_verify_type_time (verify_type, create_time) +``` + +## 注意事项 +- **唯一性控制**: 某些核销类型可能需要防止重复核销 +- **时间有效性**: 核销操作需要验证时间有效性 +- **权限验证**: 确保只有有权限的用户才能进行核销操作 +- **数据一致性**: 核销操作需要与相关业务数据保持一致 +- **防刷机制**: 建立防止恶意刷核销的安全机制 +- **核销状态**: 建议增加核销状态字段(成功/失败/撤销) +- **业务规则**: 不同verify_type应有对应的业务规则验证 +- **审计追踪**: 重要的核销操作需要详细的审计日志 diff --git a/niucloud/databasedoc/school_verify.md b/niucloud/databasedoc/school_verify.md new file mode 100644 index 00000000..9a81b002 --- /dev/null +++ b/niucloud/databasedoc/school_verify.md @@ -0,0 +1,93 @@ +# school_verify 表文档 + +## 表概述 +**表名**: school_verify +**功能**: 核销管理表,用于管理各种业务的核销码生成、使用和记录,包括优惠券核销、积分兑换、课程核销、礼品兑换等多种核销场景,支持核销追溯、防重复核销和业务关联,为学校提供完整的核销业务管理和数据追踪功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references +code varchar(255) utf8mb4_general_ci NO select,insert,update,references 核销码 +data varchar(255) utf8mb4_general_ci NO select,insert,update,references 核销参数 +type varchar(30) utf8mb4_general_ci NO select,insert,update,references 核销类型 +create_time int NULL NO 0 select,insert,update,references 核销时间 +verifier_member_id int NULL NO 0 select,insert,update,references 核销会员id +value varchar(1000) utf8mb4_general_ci NO select,insert,update,references 核销内容 +body varchar(500) utf8mb4_general_ci NO select,insert,update,references 描述 +relate_tag varchar(255) utf8mb4_general_ci NO select,insert,update,references 业务标识 +``` + +## 功能用途 + +### 主要功能 +- **核销码管理**: 生成和管理各种业务的核销码 +- **核销记录**: 记录核销操作的详细信息和时间 +- **多类型支持**: 支持不同类型的核销业务(优惠券、积分、课程等) +- **核销参数**: 存储核销相关的参数和配置信息 +- **核销内容**: 记录具体的核销内容和价值 +- **业务标识**: 通过relate_tag关联具体的业务场景 +- **核销追溯**: 记录核销操作的完整链路和责任人 +- **描述信息**: 提供核销操作的详细描述和说明 + +### 业务场景 +- **优惠券核销**: 学员使用优惠券时的核销记录 +- **积分兑换**: 会员积分兑换商品或服务的核销 +- **课程核销**: 学员上课时的课时核销 +- **礼品核销**: 会员兑换礼品时的核销记录 +- **活动核销**: 各种营销活动的参与核销 +- **服务核销**: 增值服务的使用核销 +- **权益核销**: 会员权益的使用和核销 +- **退费核销**: 退费流程中的核销操作 +- **转课核销**: 课程转让时的核销处理 + +## 关联关系 + +### 主要关联表 +- `school_member`: 会员表(核销会员信息) +- `school_coupon`: 优惠券表(优惠券核销) +- `school_gift`: 礼品表(礼品兑换核销) +- `school_course`: 课程表(课程核销) +- `school_member_account_log`: 会员账户日志(积分核销) +- `school_order_table`: 订单表(订单相关核销) +- `school_contract`: 合同表(合同服务核销) +- `school_pay`: 支付表(支付相关核销) +- `school_personnel`: 人员表(核销操作人员) + +### 关联说明 +- **会员关联**: verifier_member_id关联到具体的核销会员 +- **业务关联**: relate_tag标识关联的具体业务类型和ID +- **类型关联**: type字段区分不同的核销业务类型 +- **参数关联**: data字段存储与业务相关的核销参数 +- **内容关联**: value字段记录核销的具体内容和价值 +- **操作关联**: 记录核销操作的时间和相关描述信息 + +## 索引建议 +- **主键索引**: id(已存在) +- **唯一索引**: code(核销码唯一性) +- **业务索引**: + - verifier_member_id(会员核销查询) + - type(核销类型查询) + - relate_tag(业务标识查询) + - create_time(时间范围查询) +- **复合索引**: + - (type, relate_tag)(业务类型查询优化) + - (verifier_member_id, create_time)(会员核销历史) + - (code, type)(核销码验证优化) + +## 注意事项 +- **核销码唯一性**: code字段必须保证全局唯一,避免重复核销 +- **核销时效**: 需要控制核销码的有效期,防止过期使用 +- **核销权限**: 需要验证核销操作的权限和合法性 +- **数据完整性**: 核销操作需要保证数据的完整性和一致性 +- **核销状态**: 需要防止重复核销同一个码 +- **业务关联**: relate_tag需要与具体业务表保持关联一致性 +- **参数格式**: data字段的参数格式需要标准化 +- **核销记录**: 核销操作需要完整记录,支持审计追溯 +- **异常处理**: 需要处理核销失败的异常情况 +- **性能优化**: 大量核销操作时需要考虑性能优化 +- **安全防护**: 防止恶意核销和刷单行为 +- **数据备份**: 核销数据是重要的业务数据,需要定期备份 +- **监控告警**: 需要监控异常的核销行为和频率 +- **合规要求**: 核销操作需要符合相关业务规范和法规要求 diff --git a/niucloud/databasedoc/school_weapp_version.md b/niucloud/databasedoc/school_weapp_version.md new file mode 100644 index 00000000..87da2e7e --- /dev/null +++ b/niucloud/databasedoc/school_weapp_version.md @@ -0,0 +1,82 @@ +# school_weapp_version 表文档 + +## 表概述 +**表名**: school_weapp_version +**功能**: 微信小程序版本管理表,用于管理教育机构微信小程序的版本发布和更新,包括版本号管理、发布状态控制、任务追踪、失败原因记录等,支持版本迭代、灰度发布和回滚机制,为学校提供完整的小程序版本生命周期管理功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +version varchar(255) utf8mb4_general_ci NO select,insert,update,references +version_no int NULL NO 1 select,insert,update,references +desc varchar(255) utf8mb4_general_ci NO select,insert,update,references 说明 +create_time int NULL NO 0 select,insert,update,references +status tinyint NULL NO 0 select,insert,update,references 状态 +update_time int NULL NO 0 select,insert,update,references +fail_reason text utf8mb4_general_ci YES NULL select,insert,update,references +task_key varchar(20) utf8mb4_general_ci NO select,insert,update,references 上传任务key +``` + +## 功能用途 + +### 主要功能 +- **版本管理**: 管理微信小程序的版本信息,包括版本号和版本描述 +- **版本发布控制**: 控制小程序版本的发布状态,支持版本的启用和禁用 +- **版本序号管理**: 通过版本序号实现版本的有序管理和版本比较 +- **发布任务追踪**: 通过任务key追踪版本发布的异步任务状态 +- **失败原因记录**: 记录版本发布失败的详细原因,便于问题排查 +- **版本描述存储**: 存储版本的详细说明信息,便于版本管理和用户了解 +- **时间追踪**: 记录版本的创建和更新时间,便于版本生命周期管理 +- **状态监控**: 实时监控版本的发布状态,确保版本发布的可靠性 + +### 业务场景 +- **小程序发布**: 管理教育机构微信小程序的版本发布和更新 +- **功能迭代**: 支持小程序功能的迭代开发和版本管理 +- **Bug修复**: 快速发布Bug修复版本,确保用户体验 +- **版本回滚**: 在新版本出现问题时,支持快速回滚到稳定版本 +- **灰度发布**: 支持小程序的灰度发布和A/B测试 +- **用户通知**: 配合版本更新通知用户新功能和改进 +- **合规审核**: 配合微信平台的审核流程,管理版本审核状态 +- **发布计划**: 制定和执行小程序的版本发布计划 +- **质量控制**: 通过版本管理确保发布质量和用户体验 + +## 关联关系 + +### 主要关联表 +- **school_sys_config**: 系统配置表,可能存储小程序的基础配置信息 +- **school_sys_user**: 系统用户表,关联版本发布的操作人员 +- **school_campus**: 校区表,不同校区可能使用不同的小程序版本 +- **school_sys_notice**: 系统通知表,可能关联版本更新通知 +- **school_wechat_config**: 微信配置表,关联小程序的基础配置 +- **school_sys_log**: 系统日志表,记录版本发布的操作日志 + +### 关联说明 +- 与微信开发平台API集成,实现版本的自动发布和管理 +- 与系统配置关联,管理小程序的全局配置参数 +- 与用户权限系统关联,控制版本发布的操作权限 +- 与通知系统关联,及时通知相关人员版本发布状态 +- 与日志系统关联,记录详细的版本发布操作日志 +- 与监控系统关联,实时监控版本发布的成功率和性能 + +## 索引建议 +- **主键索引**: `PRIMARY KEY (id)` - 自动创建 +- **版本号索引**: `UNIQUE INDEX idx_version (version)` - 确保版本号唯一性 +- **版本序号索引**: `INDEX idx_version_no (version_no)` - 支持按版本序号查询 +- **状态索引**: `INDEX idx_status (status)` - 支持按状态查询 +- **任务key索引**: `UNIQUE INDEX idx_task_key (task_key)` - 确保任务key唯一性 +- **时间索引**: `INDEX idx_create_time (create_time)` - 支持按创建时间查询 +- **复合索引**: `INDEX idx_status_version_no (status, version_no)` - 支持状态和版本号的复合查询 + +## 注意事项 +- **版本唯一性**: 确保版本号的唯一性,避免版本冲突 +- **发布权限**: 严格控制版本发布权限,防止未授权的版本发布 +- **任务监控**: 密切监控发布任务的执行状态,及时处理失败情况 +- **回滚准备**: 保持版本回滚的能力,确保问题版本的快速处理 +- **审核合规**: 确保版本内容符合微信平台的审核要求 +- **测试验证**: 发布前进行充分的测试验证,确保版本质量 +- **用户通知**: 及时通知用户版本更新信息和新功能 +- **数据备份**: 发布前备份重要数据,防止版本发布导致的数据问题 +- **性能监控**: 监控新版本的性能表现,及时发现和解决性能问题 +- **失败处理**: 建立完善的发布失败处理机制,确保服务的连续性 diff --git a/niucloud/databasedoc/school_web_adv.md b/niucloud/databasedoc/school_web_adv.md new file mode 100644 index 00000000..4bb647a6 --- /dev/null +++ b/niucloud/databasedoc/school_web_adv.md @@ -0,0 +1,91 @@ +# school_web_adv 表文档 + +## 表概述 +**表名**: school_web_adv +**功能**: 网站广告位管理表,负责管理教务系统中的网站广告位配置,包括广告内容、展示位置、链接跳转、图片展示等网站营销推广功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +adv_id int NULL NO PRI NULL auto_increment select,insert,update,references 主键 +adv_key varchar(50) utf8mb4_general_ci NO 0 select,insert,update,references 广告位key +adv_title varchar(255) utf8mb4_general_ci NO select,insert,update,references 广告内容描述 +adv_url varchar(255) utf8mb4_general_ci NO select,insert,update,references 广告链接 +adv_image varchar(255) utf8mb4_general_ci NO select,insert,update,references 广告内容图片 +sort int NULL NO 0 select,insert,update,references 排序号 +background varchar(255) utf8mb4_general_ci NO #FFFFFF select,insert,update,references 背景色 +``` + +## 功能用途 + +### 主要功能 +1. **广告位管理**: 通过adv_key管理不同位置的广告位 +2. **广告内容配置**: 设置广告标题、描述和展示内容 +3. **链接跳转**: 配置广告点击后的跳转链接 +4. **图片展示**: 管理广告展示的图片资源 +5. **排序控制**: 通过sort字段控制广告展示顺序 +6. **样式定制**: 通过background设置广告背景色 +7. **位置标识**: 通过adv_key区分不同的广告展示位置 + +### 业务场景 +- 首页轮播图广告 +- 课程推荐广告 +- 活动宣传横幅 +- 侧边栏推广位 +- 底部合作伙伴展示 +- 弹窗广告配置 +- 节日活动推广 +- 新课程发布宣传 +- 优惠活动展示 +- 品牌合作推广 +- 招生宣传广告 +- 师资力量展示 + +## 关联关系 + +### 主要关联表 +1. **school_course**: 课程表(课程推广广告) +2. **school_activity**: 活动表(活动宣传广告) +3. **school_sys_config**: 系统配置表(广告系统配置) +4. **school_member**: 会员表(会员相关广告) +5. **school_web_page**: 网页表(页面广告位) +6. **school_diy_theme**: 主题表(广告样式配置) +7. **school_statistics**: 统计表(广告点击统计) +8. **school_personnel**: 人员表(师资展示广告) + +### 关联说明 +- **课程关联**: 课程推广广告链接到具体课程页面 +- **活动关联**: 活动宣传广告关联到活动详情 +- **配置关联**: 系统配置表存储广告系统的全局设置 +- **用户关联**: 根据会员等级展示不同的广告内容 +- **页面关联**: 不同页面配置不同的广告位 +- **主题关联**: 广告样式与网站主题保持一致 +- **统计关联**: 记录广告的展示和点击数据 +- **人员关联**: 师资力量展示类广告 + +## 索引建议 +- **主键索引**: adv_id(已存在) +- **唯一索引**: adv_key(广告位唯一标识) +- **业务索引**: + - sort(排序查询) + - adv_key(广告位查询) +- **复合索引**: + - (adv_key, sort)(广告位排序查询优化) + +## 注意事项 +1. **广告位唯一性**: adv_key必须保证唯一,避免广告位冲突 +2. **图片资源**: 广告图片需要优化大小,避免影响页面加载速度 +3. **链接有效性**: 定期检查adv_url的有效性,避免死链接 +4. **排序管理**: sort值需要合理设置,避免广告展示混乱 +5. **权限控制**: 广告配置需要相应的管理权限 +6. **内容审核**: 广告内容需要审核,确保合规性 +7. **响应式设计**: 广告图片需要适配不同设备屏幕 +8. **加载性能**: 广告过多可能影响页面性能 +9. **用户体验**: 避免过度的广告影响用户体验 +10. **数据统计**: 需要统计广告的展示和点击效果 +11. **缓存策略**: 广告数据适合缓存提高访问速度 +12. **版本管理**: 广告内容变更需要版本控制 +13. **定时管理**: 可能需要支持广告的定时上下线 +14. **A/B测试**: 支持不同广告内容的效果测试 +15. **移动适配**: 确保广告在移动端的展示效果 diff --git a/niucloud/databasedoc/school_web_friendly_link.md b/niucloud/databasedoc/school_web_friendly_link.md new file mode 100644 index 00000000..d9add136 --- /dev/null +++ b/niucloud/databasedoc/school_web_friendly_link.md @@ -0,0 +1,92 @@ +# school_web_friendly_link 表文档 + +## 表概述 +**表名**: school_web_friendly_link +**功能**: 网站友情链接管理表,用于管理网站首页或其他页面的友情链接信息,包括链接标题、URL、图片等,支持链接显示控制、排序管理和SEO优化,为学校网站提供合作伙伴展示和外部资源链接功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 索引id +link_title varchar(100) utf8mb4_general_ci NO NULL select,insert,update,references 标题 +link_url varchar(100) utf8mb4_general_ci NO NULL select,insert,update,references 链接 +link_pic varchar(100) utf8mb4_general_ci NO NULL select,insert,update,references 图片 +sort int NULL NO 0 select,insert,update,references 排序号 +is_show int NULL NO 1 select,insert,update,references 是否显示 1.是 2.否 +``` + +## 功能用途 + +### 主要功能 +- **友情链接管理**: 管理网站首页或其他页面的友情链接信息 +- **链接展示控制**: 通过is_show字段控制链接的显示和隐藏 +- **排序管理**: 通过sort字段控制友情链接的显示顺序 +- **链接信息存储**: 存储链接的标题、URL和图片等完整信息 +- **图片支持**: 支持友情链接的图片展示,提升视觉效果 +- **状态管理**: 灵活控制友情链接的启用和禁用状态 +- **SEO优化**: 通过友情链接提升网站的SEO效果 +- **合作伙伴展示**: 展示学校的合作伙伴和友好机构 +- **外部资源链接**: 提供到外部有用资源的快速访问 + +### 业务场景 +- **合作机构展示**: 展示与学校合作的教育机构链接 +- **政府部门链接**: 链接到教育主管部门和政府网站 +- **行业协会**: 展示相关行业协会和组织的链接 +- **友好学校**: 展示友好学校和姊妹学校的链接 +- **教育资源**: 链接到优质的教育资源和学习平台 +- **技术支持**: 展示技术服务商和支持机构 +- **媒体合作**: 展示合作媒体和新闻机构链接 +- **招聘平台**: 链接到招聘网站和人才服务平台 +- **在线工具**: 提供实用的在线教育工具链接 +- **社区论坛**: 链接到相关的教育社区和论坛 + +## 关联关系 + +### 主要关联表 +- **school_web_nav**: 网站导航表,可能与导航菜单形成完整的网站结构 +- **school_sys_config**: 系统配置表,可能关联网站配置信息 +- **school_sys_user**: 系统用户表,关联友情链接的管理员 +- **school_campus**: 校区表,不同校区可能有不同的友情链接 +- **school_web_article**: 网站文章表,可能在文章中引用友情链接 + +### 关联说明 +- **导航关联**: 与网站导航系统形成完整的网站链接体系 +- **配置关联**: 友情链接的显示可能受系统配置影响 +- **管理关联**: 友情链接的添加和管理需要相应的用户权限 +- **校区关联**: 不同校区可能需要展示不同的友情链接 +- **内容关联**: 友情链接可能在网站内容中被引用和展示 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 显示状态索引(用于查询显示的链接) +INDEX idx_is_show (is_show) + +-- 排序索引(用于按排序查询) +INDEX idx_sort (sort) + +-- 复合索引(用于获取显示的链接并排序) +INDEX idx_show_sort (is_show, sort) + +-- 链接标题索引(用于搜索) +INDEX idx_link_title (link_title) +``` + +## 注意事项 +- **URL有效性**: 定期检查友情链接的URL是否有效,避免死链 +- **链接安全**: 确保友情链接指向安全可信的网站 +- **图片管理**: 友情链接图片应控制大小,优化加载速度 +- **排序逻辑**: sort字段应有明确的排序规则,数值越小越靠前 +- **显示控制**: is_show字段应及时更新,确保显示状态的准确性 +- **链接数量**: 控制友情链接的数量,避免影响页面加载速度 +- **定期维护**: 定期检查和更新友情链接,移除失效链接 +- **权限控制**: 友情链接的管理应有严格的权限控制 +- **备份恢复**: 重要的友情链接配置应定期备份 +- **SEO考虑**: 友情链接应考虑对网站SEO的影响 +- **移动适配**: 确保友情链接在移动设备上的正常显示 +- **加载优化**: 友情链接图片应进行压缩和优化 +- **监控检查**: 建立友情链接的可用性监控机制 +- **合规审查**: 确保友情链接符合相关法律法规要求 diff --git a/niucloud/databasedoc/school_web_nav.md b/niucloud/databasedoc/school_web_nav.md new file mode 100644 index 00000000..59b054f1 --- /dev/null +++ b/niucloud/databasedoc/school_web_nav.md @@ -0,0 +1,99 @@ +# school_web_nav 表文档 + +## 表概述 +**表名**: school_web_nav +**功能**: 网站导航管理表,用于管理网站前台的导航菜单,包括导航名称、链接地址、显示顺序、打开方式等,为网站提供统一的导航结构管理 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references 主键 +nav_title varchar(255) utf8mb4_general_ci NO select,insert,update,references 导航名称 +nav_url varchar(255) utf8mb4_general_ci NO select,insert,update,references 链接地址 +sort int NULL NO NULL select,insert,update,references 排序号 +is_blank int NULL YES 0 select,insert,update,references 是否新打开 +create_time int NULL YES 0 select,insert,update,references 创建时间 +update_time int NULL YES 0 select,insert,update,references 修改时间 +is_show smallint NULL NO 1 select,insert,update,references 是否显示 1显示 0不显示 +``` + +## 功能用途 + +### 主要功能 +- **导航菜单管理**: 管理网站前台的主导航菜单结构 +- **链接地址管理**: 存储导航项目的目标链接地址 +- **显示控制**: 控制导航项目的显示/隐藏状态 +- **排序管理**: 通过sort字段控制导航项目的显示顺序 +- **打开方式控制**: 设置链接是否在新窗口打开 +- **导航标题管理**: 管理导航项目的显示名称 +- **时间记录**: 记录导航项目的创建和修改时间 +- **动态导航**: 支持动态添加、修改、删除导航项目 +- **用户体验优化**: 提供清晰的网站导航结构 + +### 业务场景 +- **网站首页导航**: 网站主页的顶部导航菜单 +- **功能模块导航**: 指向不同功能模块的快速入口 +- **外部链接**: 链接到合作伙伴或相关网站 +- **内容分类导航**: 按内容类别组织的导航结构 +- **移动端导航**: 适配移动设备的导航菜单 +- **多语言导航**: 支持多语言版本的导航管理 +- **季节性导航**: 根据活动或季节调整的临时导航 +- **权限导航**: 根据用户权限显示不同的导航项目 +- **SEO优化**: 通过合理的导航结构提升SEO效果 +- **用户引导**: 引导用户访问重要页面和功能 + +## 关联关系 + +### 主要关联表 +- **school_web_article**: 文章表,导航可能链接到具体文章页面 +- **school_web_friendly_link**: 友情链接表,可能与外部链接导航相关 +- **school_sys_menu**: 系统菜单表,后台管理的导航结构 +- **school_course**: 课程表,导航可能链接到课程展示页面 +- **school_campus**: 校区表,导航可能按校区组织 +- **school_sys_config**: 系统配置表,可能关联导航的全局设置 + +### 关联说明 +- **内容关联**: nav_url字段可能链接到系统内的各种内容页面 +- **菜单关联**: 与后台系统菜单形成前后台导航的对应关系 +- **配置关联**: 导航的全局设置可能存储在系统配置中 +- **权限关联**: 导航显示可能与用户权限或登录状态相关 +- **多语言关联**: 可能与多语言配置表关联实现国际化 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 显示状态索引(用于查询显示的导航) +INDEX idx_is_show (is_show) + +-- 排序索引(用于按顺序获取导航) +INDEX idx_sort (sort) + +-- 复合索引(用于获取显示的导航并排序) +INDEX idx_show_sort (is_show, sort) + +-- 创建时间索引(用于按时间查询) +INDEX idx_create_time (create_time) + +-- 更新时间索引(用于按更新时间查询) +INDEX idx_update_time (update_time) +``` + +## 注意事项 +- **URL有效性**: nav_url字段应验证链接地址的有效性和安全性 +- **排序逻辑**: sort字段应保证导航项目的合理排序,避免重复值 +- **显示控制**: is_show字段变更应及时反映到前台页面 +- **链接安全**: 外部链接应进行安全检查,防止恶意链接 +- **打开方式**: is_blank字段应根据链接类型合理设置 +- **导航数量**: 控制导航项目数量,避免影响用户体验 +- **移动适配**: 考虑移动端的导航显示效果 +- **缓存策略**: 导航数据变更频率低,适合设置缓存 +- **权限控制**: 导航管理应有适当的权限控制 +- **备份恢复**: 重要的导航配置应定期备份 +- **性能优化**: 导航查询频繁,需要优化查询性能 +- **用户体验**: 导航结构应清晰明了,便于用户理解 +- **SEO考虑**: 导航结构应有利于搜索引擎抓取 +- **多语言支持**: 如需支持多语言,应考虑导航的国际化 +- **响应式设计**: 导航应适配不同屏幕尺寸的设备 diff --git a/niucloud/databasedoc/school_wechat_fans.md b/niucloud/databasedoc/school_wechat_fans.md new file mode 100644 index 00000000..b8088b59 --- /dev/null +++ b/niucloud/databasedoc/school_wechat_fans.md @@ -0,0 +1,109 @@ +# school_wechat_fans 表文档 + +## 表概述 +**表名**: school_wechat_fans +**功能**: 微信粉丝管理表,负责管理教务系统中的微信公众号粉丝信息,包括粉丝基本信息、关注状态、地理位置、关注渠道等数据的存储和管理 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +fans_id int NULL NO PRI NULL auto_increment select,insert,update,references 粉丝ID +nickname varchar(255) utf8mb4_general_ci NO select,insert,update,references 昵称 +avatar varchar(500) utf8mb4_general_ci NO select,insert,update,references 头像 +sex smallint NULL NO 1 select,insert,update,references 性别 +language varchar(20) utf8mb4_general_ci NO select,insert,update,references 用户语言 +country varchar(60) utf8mb4_general_ci NO select,insert,update,references 国家 +province varchar(255) utf8mb4_general_ci NO select,insert,update,references 省 +city varchar(255) utf8mb4_general_ci NO select,insert,update,references 城市 +district varchar(255) utf8mb4_general_ci NO select,insert,update,references 行政区/县 +openid varchar(255) utf8mb4_general_ci NO select,insert,update,references 用户的标识,对当前公众号唯一 用户的唯一身份ID +unionid varchar(255) utf8mb4_general_ci NO select,insert,update,references 粉丝unionid +groupid int NULL NO 0 select,insert,update,references 粉丝所在组id +is_subscribe tinyint NULL NO 1 select,insert,update,references 是否订阅 +remark varchar(255) utf8mb4_general_ci NO select,insert,update,references 备注 +subscribe_time int NULL NO 0 select,insert,update,references 关注时间 +subscribe_scene varchar(100) utf8mb4_general_ci NO select,insert,update,references 返回用户关注的渠道来源 +unsubscribe_time int NULL NO 0 select,insert,update,references 取消关注时间 +update_time int NULL NO 0 select,insert,update,references 粉丝信息最后更新时间 +app_id int NULL NO 0 select,insert,update,references 应用appid +``` + +## 功能用途 + +### 主要功能 +- **粉丝信息管理**: 存储微信粉丝的基本信息(昵称、头像、性别等) +- **地理位置记录**: 记录粉丝的地理位置信息(国家、省、市、区县) +- **关注状态跟踪**: 跟踪粉丝的关注和取消关注状态 +- **关注渠道分析**: 记录粉丝关注的渠道来源 +- **粉丝分组管理**: 支持粉丝分组和标签管理 +- **备注信息**: 支持对粉丝添加备注信息 +- **时间记录**: 记录关注时间、取消关注时间、信息更新时间 +- **多应用支持**: 支持多个微信应用的粉丝管理 +- **用户识别**: 通过openid和unionid进行用户身份识别 + +### 业务场景 +- **粉丝获取**: 用户关注微信公众号时自动创建粉丝记录 +- **信息同步**: 定期同步微信平台的粉丝信息 +- **精准营销**: 基于粉丝地理位置和属性进行精准推送 +- **粉丝分析**: 分析粉丝来源渠道和关注趋势 +- **客户服务**: 通过备注信息提供个性化客户服务 +- **消息推送**: 向特定粉丝群体推送营销消息 +- **数据统计**: 统计粉丝增长、流失等关键指标 +- **用户画像**: 构建粉丝用户画像用于精准营销 +- **活动推广**: 基于粉丝信息开展线上线下活动 + +## 关联关系 + +### 主要关联表 +- `school_member`: 会员信息表 (粉丝与会员关联) +- `school_wechat_reply`: 微信回复表 (粉丝消息回复) +- `school_wechat_media`: 微信素材表 (推送素材管理) +- `school_template_message`: 模板消息表 (消息推送) +- `school_sys_notice_log`: 通知日志表 (消息推送记录) +- `school_customer_resources`: 客户资源表 (粉丝转化为客户) +- `school_order_table`: 订单表 (粉丝下单) +- `school_contract`: 合同表 (粉丝签约) + +### 关联说明 +- **会员关联**: 粉丝可以通过openid关联到会员账户 +- **消息关联**: 粉丝接收的各种微信消息和回复 +- **素材关联**: 向粉丝推送的图文、视频等素材 +- **推送关联**: 模板消息和通知推送记录 +- **客户关联**: 粉丝可以转化为潜在客户资源 +- **业务关联**: 粉丝可以直接进行下单、签约等业务操作 +- **应用关联**: app_id关联到具体的微信应用配置 + +## 索引建议 +- **主键索引**: fans_id (已存在) +- **唯一索引**: + - openid (微信用户唯一标识) + - unionid (跨应用用户标识) +- **业务索引**: + - app_id (应用查询) + - is_subscribe (关注状态查询) + - groupid (分组查询) + - subscribe_scene (渠道分析) +- **复合索引**: + - (app_id, is_subscribe) (应用粉丝状态查询) + - (app_id, groupid) (应用分组查询) + - (province, city) (地理位置查询) +- **时间索引**: + - subscribe_time (关注时间查询) + - update_time (更新时间查询) + +## 注意事项 +- **openid唯一性**: 同一应用下openid必须唯一 +- **unionid一致性**: 同一用户在不同应用下unionid应该一致 +- **隐私保护**: 粉丝信息涉及个人隐私,需要严格保护 +- **数据同步**: 需要定期与微信平台同步粉丝信息 +- **关注状态**: is_subscribe字段需要及时更新 +- **地理位置**: 地理位置信息可能为空或不准确 +- **时间格式**: 时间字段使用Unix时间戳格式 +- **数据清理**: 需要定期清理长期未关注的粉丝数据 +- **API限制**: 微信API调用有频率限制,需要合理控制 +- **备注长度**: 备注信息不宜过长,影响查询性能 +- **分组管理**: groupid为0表示未分组 +- **多应用**: 同一用户在不同应用下会有不同的openid +- **数据备份**: 粉丝数据是重要的营销资源,需要定期备份 +- **合规要求**: 粉丝信息使用需要符合相关法律法规 diff --git a/niucloud/databasedoc/school_wechat_media.md b/niucloud/databasedoc/school_wechat_media.md new file mode 100644 index 00000000..38bca60a --- /dev/null +++ b/niucloud/databasedoc/school_wechat_media.md @@ -0,0 +1,89 @@ +# school_wechat_media 表文档 + +## 表概述 +**表名**: school_wechat_media +**功能**: 微信素材管理表,用于管理微信公众号的各种多媒体素材,包括图片、音频、视频、图文等类型,支持素材同步、版本控制和引用管理,包括微信素材ID管理、素材类型分类、内容存储和时间追踪,为学校提供完整的微信营销素材管理和公众号运营支持功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references +type varchar(255) utf8mb4_general_ci NO select,insert,update,references 类型 +value text utf8mb4_general_ci YES NULL select,insert,update,references 值 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 修改时间 +media_id varchar(70) utf8mb4_general_ci NO 0 select,insert,update,references 微信端返回的素材id +``` + +## 功能用途 + +### 主要功能 +- **微信素材管理**: 管理微信公众号的各种多媒体素材 +- **素材类型分类**: 通过type字段区分不同类型的素材(图片、音频、视频、图文等) +- **素材内容存储**: 通过value字段存储素材的具体内容或路径 +- **微信素材ID**: 存储微信平台返回的media_id用于素材调用 +- **素材时间管理**: 记录素材的创建和更新时间 +- **素材同步**: 与微信平台的素材库保持同步 +- **素材引用**: 为其他功能模块提供素材引用服务 +- **素材版本控制**: 支持素材的更新和版本管理 + +### 业务场景 +- **图文消息**: 创建和发送图文消息给粉丝 +- **自动回复**: 在自动回复中使用图片、音频等素材 +- **菜单配置**: 微信菜单中使用的图标和素材 +- **模板消息**: 模板消息中的图片和媒体内容 +- **营销推广**: 营销活动中使用的宣传素材 +- **课程展示**: 课程介绍中的图片和视频素材 +- **活动宣传**: 各种活动的宣传图片和视频 +- **品牌展示**: 学校品牌相关的logo和宣传素材 +- **通知公告**: 通知公告中的配图和多媒体内容 + +## 关联关系 + +### 主要关联表 +- `school_wechat_reply`: 微信回复表(回复中使用的素材) +- `school_wechat_menu`: 微信菜单表(菜单中的图标素材) +- `school_template_message`: 模板消息表(消息中的素材) +- `school_sys_notice`: 系统通知表(通知中的图片素材) +- `school_activity`: 活动表(活动宣传素材) +- `school_course`: 课程表(课程展示素材) +- `school_wechat_config`: 微信配置表(微信应用配置) +- `school_sys_attachment`: 系统附件表(素材文件管理) + +### 关联说明 +- **回复关联**: 自动回复功能中引用的图片、音频等素材 +- **菜单关联**: 微信菜单中使用的图标和背景素材 +- **消息关联**: 各种消息推送中使用的多媒体素材 +- **通知关联**: 系统通知和公告中的配图素材 +- **活动关联**: 营销活动和课程活动的宣传素材 +- **课程关联**: 课程介绍和展示中的图片视频素材 +- **配置关联**: 微信应用的基础配置和素材管理 +- **附件关联**: 素材文件的存储和管理 + +## 索引建议 +- **主键索引**: id(已存在) +- **唯一索引**: media_id(微信素材ID唯一性) +- **业务索引**: + - type(素材类型查询) + - create_time(创建时间查询) + - update_time(更新时间查询) +- **复合索引**: + - (type, create_time)(类型时间查询优化) + - (media_id, type)(微信素材查询优化) + +## 注意事项 +- **素材大小限制**: 不同类型素材有大小限制(图片2MB、音频10MB、视频20MB等) +- **素材格式**: 需要符合微信平台支持的格式要求 +- **media_id时效**: 微信素材ID有有效期,需要定期更新 +- **素材同步**: 需要与微信平台保持素材同步 +- **存储优化**: 大文件素材建议使用云存储 +- **访问权限**: 素材访问需要相应的权限控制 +- **缓存策略**: 常用素材可以缓存提高访问速度 +- **备份管理**: 重要素材需要备份防止丢失 +- **版权合规**: 使用的素材需要注意版权问题 +- **清理策略**: 定期清理无用的素材文件 +- **API限制**: 微信素材上传有频率限制 +- **类型标准**: type字段需要标准化管理 +- **内容审核**: 素材内容需要符合平台规范 +- **性能监控**: 监控素材加载性能和访问情况 diff --git a/niucloud/databasedoc/school_wechat_reply.md b/niucloud/databasedoc/school_wechat_reply.md new file mode 100644 index 00000000..b196a9ce --- /dev/null +++ b/niucloud/databasedoc/school_wechat_reply.md @@ -0,0 +1,101 @@ +# school_wechat_reply 表文档 + +## 表概述 +**表名**: school_wechat_reply +**功能**: 微信自动回复管理表,负责管理教务系统中的微信公众号自动回复功能,包括关键词回复、关注回复、默认回复等智能客服和用户互动功能 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references +name varchar(64) utf8mb4_general_ci NO select,insert,update,references 规则名称 +keyword varchar(64) utf8mb4_general_ci NO select,insert,update,references 关键词 +reply_type varchar(30) utf8mb4_general_ci NO select,insert,update,references 回复类型 subscribe-关注回复 keyword-关键字回复 default-默认回复 +matching_type varchar(30) utf8mb4_general_ci NO 1 select,insert,update,references 匹配方式:full 全匹配;like-模糊匹配 +content text utf8mb4_general_ci NO NULL select,insert,update,references 回复内容 +sort int unsigned NULL NO 50 select,insert,update,references 排序 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +delete_time int NULL NO 0 select,insert,update,references 删除时间 +reply_method varchar(50) utf8mb4_general_ci NO select,insert,update,references 回复方式 all 全部 rand随机 +``` + +## 功能用途 + +### 主要功能 +1. **自动回复规则**: 通过name管理不同的回复规则 +2. **关键词匹配**: 通过keyword设置触发回复的关键词 +3. **回复类型管理**: 支持关注回复、关键字回复、默认回复等类型 +4. **匹配方式控制**: 支持全匹配和模糊匹配两种方式 +5. **回复内容配置**: 设置具体的回复文本内容 +6. **排序管理**: 通过sort控制回复规则的优先级 +7. **回复方式**: 支持全部回复和随机回复两种模式 +8. **时间管理**: 记录创建、更新和删除时间 + +### 业务场景 +- 新用户关注欢迎语 +- 课程咨询自动回复 +- 报名流程指导 +- 常见问题解答 +- 联系方式查询 +- 课程表查询回复 +- 成绩查询指导 +- 缴费方式说明 +- 校区地址回复 +- 营业时间查询 +- 活动信息推送 +- 节日祝福消息 +- 系统维护通知 +- 客服转接提示 + +## 关联关系 + +### 主要关联表 +1. **school_wechat_config**: 微信配置表(微信公众号配置) +2. **school_wechat_menu**: 微信菜单表(菜单回复关联) +3. **school_template_message**: 模板消息表(消息模板关联) +4. **school_member**: 会员表(用户互动记录) +5. **school_course**: 课程表(课程咨询回复) +6. **school_sys_config**: 系统配置表(回复系统配置) +7. **school_personnel**: 人员表(客服人员管理) +8. **school_activity**: 活动表(活动相关回复) + +### 关联说明 +- **配置关联**: 微信配置表存储公众号的基本配置信息 +- **菜单关联**: 微信菜单点击可能触发自动回复 +- **模板关联**: 某些回复可能使用模板消息格式 +- **用户关联**: 记录用户的互动和回复历史 +- **课程关联**: 课程相关咨询的自动回复内容 +- **系统关联**: 系统配置表存储回复功能的全局设置 +- **人员关联**: 客服人员可以管理和维护回复规则 +- **活动关联**: 活动相关的自动回复和推广 + +## 索引建议 +- **主键索引**: id(已存在) +- **业务索引**: + - keyword(关键词查询) + - reply_type(回复类型查询) + - sort(排序查询) + - delete_time(软删除查询) +- **复合索引**: + - (reply_type, sort)(类型排序查询优化) + - (keyword, matching_type)(关键词匹配查询优化) + - (delete_time, sort)(有效规则排序查询) + +## 注意事项 +1. **关键词冲突**: 避免相同关键词设置多个回复规则 +2. **匹配优先级**: 全匹配优先级高于模糊匹配 +3. **回复内容长度**: 微信回复内容有字符数限制 +4. **排序管理**: sort值决定回复规则的执行顺序 +5. **软删除**: 使用delete_time实现软删除,避免误删 +6. **回复频率**: 避免过于频繁的自动回复影响用户体验 +7. **内容审核**: 回复内容需要符合微信平台规范 +8. **权限控制**: 回复规则配置需要相应的管理权限 +9. **测试验证**: 回复规则配置后需要测试效果 +10. **备份策略**: 重要回复规则需要备份 +11. **性能优化**: 关键词匹配需要考虑性能优化 +12. **多媒体支持**: 回复内容可能包含图片、链接等 +13. **用户体验**: 回复内容要简洁明了,有用性强 +14. **更新维护**: 定期更新回复内容,保持时效性 +15. **统计分析**: 需要统计回复规则的使用情况和效果 diff --git a/niucloud/databasedoc/shcool_resources_gift.md b/niucloud/databasedoc/shcool_resources_gift.md new file mode 100644 index 00000000..d6eb4197 --- /dev/null +++ b/niucloud/databasedoc/shcool_resources_gift.md @@ -0,0 +1,123 @@ +# shcool_resources_gift 表文档 + +## 表概述 +**表名**: shcool_resources_gift +**功能**: 客户资源赠品管理表,用于管理各种类型的赠品发放、使用和状态跟踪 + +## 字段说明 + +``` +Field Type Collation Null Key Default Extra Privileges Comment +id int NULL NO PRI NULL auto_increment select,insert,update,references 赠品主键ID +gift_name varchar(255) utf8mb4_general_ci NO select,insert,update,references 赠品名称 +gift_type varchar(50) utf8mb4_general_ci NO MUL select,insert,update,references 赠品类型:course(赠课),voucher(代金券) +gift_time int NULL NO MUL 0 select,insert,update,references 赠送时间 +giver_id int NULL NO MUL 0 select,insert,update,references 赠送来源人员ID +resource_id int NULL NO MUL 0 select,insert,update,references 赠品归属资源ID +order_id int NULL NO MUL 0 select,insert,update,references 赠品使用的订单ID(0表示未使用) +gift_status tinyint NULL NO MUL 1 select,insert,update,references 赠品状态:1=未使用,2=已使用,3=已过期,4=已作废 +use_time int NULL NO 0 select,insert,update,references 赠品使用时间 +create_time int NULL NO 0 select,insert,update,references 创建时间 +update_time int NULL NO 0 select,insert,update,references 更新时间 +delete_time int NULL NO 0 select,insert,update,references 删除时间 +``` + +## 功能用途 + +### 主要功能 +- **赠品管理**: 管理各种类型的赠品信息和发放记录 +- **赠品分类**: 通过gift_type字段区分赠课、代金券等不同类型赠品 +- **状态跟踪**: 实时跟踪赠品的使用状态(未使用、已使用、已过期、已作废) +- **发放记录**: 记录赠品的发放来源和发放时间 +- **使用追踪**: 跟踪赠品的使用情况和使用时间 +- **资源关联**: 通过resource_id关联具体的资源或课程 +- **订单绑定**: 通过order_id记录赠品使用的订单信息 +- **时间管理**: 完整记录赠品的创建、使用、更新等时间节点 +- **软删除支持**: 支持软删除机制,保留重要的赠品历史记录 + +### 业务场景 +- **新用户赠课**: 为新注册用户赠送体验课程 +- **推荐奖励**: 为推荐新用户的老用户发放赠品奖励 +- **活动促销**: 在营销活动中发放代金券和赠课 +- **生日礼品**: 为用户生日发放特殊赠品 +- **节日福利**: 在节假日为用户发放节日赠品 +- **补偿赠品**: 为服务问题或投诉用户发放补偿赠品 +- **会员福利**: 为VIP会员定期发放专属赠品 +- **完课奖励**: 为完成课程的学员发放奖励赠品 +- **邀请奖励**: 为邀请好友的用户发放邀请奖励 +- **充值赠送**: 用户充值时赠送额外的代金券或课程 + +## 关联关系 + +### 主要关联表 +- **school_personnel**: 人员表,通过giver_id关联赠品发放人员 +- **school_course**: 课程表,当gift_type为course时关联具体课程 +- **school_member**: 会员表,关联赠品的接收用户 +- **school_order**: 订单表,通过order_id关联赠品使用的订单 +- **school_pay**: 支付表,代金券类赠品可能影响支付金额 +- **school_activity**: 活动表,赠品可能来源于营销活动 +- **school_member_account**: 会员账户表,代金券可能影响账户余额 +- **school_sys_user**: 系统用户表,关联赠品管理的操作用户 + +### 关联说明 +- **发放人关联**: giver_id关联发放赠品的人员信息 +- **资源关联**: resource_id根据赠品类型关联不同的资源表 +- **订单关联**: order_id记录赠品在哪个订单中被使用 +- **用户关联**: 赠品最终归属于具体的用户或会员 +- **活动关联**: 赠品可能来源于特定的营销活动 + +## 索引建议 +```sql +-- 主键索引(自动创建) +PRIMARY KEY (id) + +-- 赠品类型索引(用于按类型查询) +INDEX idx_gift_type (gift_type) + +-- 发放人员索引(用于查询发放记录) +INDEX idx_giver_id (giver_id) + +-- 资源ID索引(用于查询资源相关赠品) +INDEX idx_resource_id (resource_id) + +-- 订单ID索引(用于查询订单使用的赠品) +INDEX idx_order_id (order_id) + +-- 赠品状态索引(用于按状态查询) +INDEX idx_gift_status (gift_status) + +-- 赠送时间索引(用于按时间查询) +INDEX idx_gift_time (gift_time) + +-- 使用时间索引(用于按使用时间查询) +INDEX idx_use_time (use_time) + +-- 创建时间索引(用于按创建时间查询) +INDEX idx_create_time (create_time) + +-- 复合索引(用于赠品统计) +INDEX idx_type_status_time (gift_type, gift_status, gift_time) + +-- 复合索引(用于发放人统计) +INDEX idx_giver_status_time (giver_id, gift_status, create_time) + +-- 软删除索引(用于查询有效记录) +INDEX idx_delete_time (delete_time) +``` + +## 注意事项 +- **状态管理**: 赠品状态变更应有严格的业务逻辑控制 +- **过期处理**: 需要定期检查和处理过期的赠品 +- **使用限制**: 赠品使用应有明确的使用条件和限制 +- **重复使用**: 防止同一赠品被重复使用 +- **权限控制**: 赠品发放和管理应有严格的权限控制 +- **数据一致性**: 赠品使用时应确保与订单数据的一致性 +- **时间精度**: 时间字段应保证足够精度,支持精确的时间统计 +- **类型规范**: gift_type字段应有明确的类型定义和枚举值 +- **资源验证**: resource_id应验证关联资源的有效性 +- **成本控制**: 赠品发放应考虑成本控制和预算管理 +- **使用统计**: 建立赠品使用效果的统计和分析机制 +- **防刷机制**: 建立防止恶意刷取赠品的安全机制 +- **有效期管理**: 赠品应有明确的有效期设置和管理 +- **审计追踪**: 重要赠品操作应有完整的审计记录 +- **批量处理**: 大量赠品操作时需要考虑性能优化 diff --git a/niucloud/体测记录数据调试.md b/niucloud/体测记录数据调试.md deleted file mode 100644 index b4b531ec..00000000 --- a/niucloud/体测记录数据调试.md +++ /dev/null @@ -1,170 +0,0 @@ -# 体测记录数据传递问题调试报告 - -## 🔍 **问题描述** - -在 `pages/market/clue/clue_info?resource_sharing_id=39` 页面中,新增体测记录时: -- **期望的数据**:`student_id=2017` -- **实际提交的数据**:`student_id=64` - -## 📊 **数据库关系分析** - -### 1. **URL参数分析** -- **URL**:`resource_sharing_id=39` -- **对应客户资源**: - ```sql - SELECT id, name, member_id FROM school_customer_resources WHERE id = 39; - -- 结果:id=39, name="测试学员3", member_id=8 - ``` - -### 2. **学生数据关系** -- **根据member_id查找学生**: - ```sql - SELECT id, name, user_id FROM school_student WHERE user_id = 8; - -- 结果:id=8, name="888", user_id=8 - ``` - -- **期望的学生数据**: - ```sql - SELECT id, name, user_id FROM school_student WHERE id = 2017; - -- 结果:id=2017, name="cesa", user_id=64 - ``` - -### 3. **数据不一致问题** -- **URL参数**:`resource_sharing_id=39` → 应该对应 `student_id=8` -- **实际期望**:`student_id=2017` -- **当前错误**:提交了 `resource_id=64, student_id=64` - -## 🔧 **问题根源分析** - -### 1. **前端数据传递链路** -```javascript -// clue_info.vue 第226行 - -``` - -### 2. **学生数据获取** -```javascript -// clue_info.vue getStudentList方法 -async getStudentList() { - const res = await apiRoute.xs_getStudentList({ - parent_resource_id: this.clientInfo.resource_id - }) - // 查询 school_student 表,条件:user_id = resource_id -} -``` - -### 3. **数据流向** -1. **页面加载**:`resource_sharing_id=39` -2. **获取客户信息**:`clientInfo.resource_id = 39` -3. **获取学生列表**:查询 `school_student` 表,`user_id = 39` -4. **学生数据**:如果存在,返回对应的学生记录 - -## 🚀 **修复方案** - -### 方案1:修正数据关系(推荐) -确保数据库中的关系正确: -```sql --- 检查resource_id=39对应的正确学生 -SELECT - cr.id as resource_id, - cr.name as resource_name, - cr.member_id, - s.id as student_id, - s.name as student_name, - s.user_id -FROM school_customer_resources cr -LEFT JOIN school_student s ON s.user_id = cr.member_id -WHERE cr.id = 39; -``` - -### 方案2:修正前端逻辑 -如果数据关系复杂,修改前端获取学生数据的逻辑: -```javascript -// 根据实际业务逻辑调整查询条件 -async getStudentList() { - // 方式1:通过member_id查询 - const res = await apiRoute.xs_getStudentList({ - user_id: this.clientInfo.customerResource?.member_id - }) - - // 方式2:直接指定student_id - if (this.clientInfo.resource_id === 39) { - // 特殊处理,直接使用正确的student_id - this.studentList = [{ id: 2017, name: 'cesa', /* 其他字段 */ }] - } -} -``` - -### 方案3:后端接口调整 -修改学生列表接口,支持通过resource_id正确查找关联的学生: -```php -// StudentService.php -public function getList(array $data) { - if (!empty($data['parent_resource_id'])) { - // 通过客户资源ID查找关联的学生 - $customerResource = Db::table('school_customer_resources') - ->where('id', $data['parent_resource_id']) - ->find(); - - if ($customerResource && $customerResource['member_id']) { - $where[] = ['user_id', '=', $customerResource['member_id']]; - } - } -} -``` - -## 🧪 **测试验证** - -### 1. **验证当前数据** -```javascript -// 在clue_info.vue中添加调试信息 -console.log('clientInfo.resource_id:', this.clientInfo.resource_id) -console.log('currentStudent:', this.currentStudent) -console.log('studentList:', this.studentList) -``` - -### 2. **验证提交数据** -```javascript -// 在fitness-record-popup.vue中添加调试信息 -console.log('提交参数:', { - resource_id: this.resourceId, - student_id: this.studentId, - // 其他参数... -}) -``` - -## 📝 **建议的修复步骤** - -1. **确认业务逻辑**: - - `resource_sharing_id=39` 应该对应哪个学生? - - 是 `student_id=8`(根据数据库关系)还是 `student_id=2017`(期望值)? - -2. **修正数据关系**: - - 如果应该是 `student_id=2017`,需要修正数据库中的关联关系 - - 或者修正前端的数据获取逻辑 - -3. **测试验证**: - - 修复后测试体测记录新增功能 - - 确保提交的 `student_id` 正确 - -## 🎯 **当前修复状态** - -✅ **已修复**: -- 添加了 `studentId` 属性传递 -- 修正了弹窗组件的参数验证 -- 使用正确的 `student_id` 而不是 `resource_id` - -⚠️ **待确认**: -- 数据库中的学生关联关系是否正确 -- `resource_id=39` 应该对应哪个具体的学生 - ---- - -**调试完成时间**:2025-07-31 -**状态**:✅ 代码逻辑已修复,待确认数据关系 -**下一步**:确认正确的学生关联关系并测试 diff --git a/niucloud/课程安排学员显示修复说明.md b/niucloud/课程安排学员显示修复说明.md deleted file mode 100644 index f1e38a2d..00000000 --- a/niucloud/课程安排学员显示修复说明.md +++ /dev/null @@ -1,171 +0,0 @@ -# 课程安排学员显示修复说明 - -## 🔍 **问题描述** - -在 `pages/market/clue/class_arrangement` 页面中,调用 `/api/course/courseAllList?schedule_date=2025-08-01` 接口时,课程安排中的学员信息显示不正确: -- 应该显示一个正式学员和一个等待位学员 -- 实际只显示了一个学员,另一个学员没有在列表中显示 - -## 📊 **数据库分析** - -### 1. **课程安排数据** -```sql -SELECT id, course_date, time_slot FROM school_course_schedule WHERE course_date = '2025-08-01'; --- 结果: --- id=124, course_date='2025-08-01', time_slot='09:00-10:00' --- id=154, course_date='2025-08-01', time_slot='10:00-11:00' -``` - -### 2. **学员安排数据** -```sql -SELECT pcs.*, cr.name FROM school_person_course_schedule pcs -LEFT JOIN school_customer_resources cr ON pcs.resources_id = cr.id -WHERE pcs.schedule_id = 124; --- 结果: --- id=73, resources_id=5, schedule_type=1, course_type=1, name='测试' (正式学员) --- id=74, resources_id=31, schedule_type=2, course_type=3, name='美团01' (等待位学员) -``` - -### 3. **关联数据问题** -```sql -SELECT cr.id, cr.name, cr.member_id, sm.member_id, sm.headimg -FROM school_customer_resources cr -LEFT JOIN school_member sm ON cr.member_id = sm.member_id -WHERE cr.id IN (5, 31); --- 结果: --- id=5, name='测试', member_id=2, sm.member_id=2, headimg='...' ✅ --- id=31, name='美团01', member_id=0, sm.member_id=NULL, headimg=NULL ❌ -``` - -**问题根源**:`美团01` 的 `member_id` 为 0,在 JOIN `school_member` 表时没有匹配到数据,导致整条记录被过滤掉。 - -## 🔧 **修复方案** - -### **原始代码问题** -```php -// CourseService.php 第398-407行(修复前) -$student = Db::name('person_course_schedule') - ->alias('pcs') - ->where('pcs.schedule_id', $v['id']) - ->join('school_student st', 'pcs.student_id = st.id') // ❌ student_id为NULL - ->join('school_customer_resources cr', 'st.user_id = cr.id') - ->join('school_member sm', 'cr.member_id = sm.member_id') // ❌ INNER JOIN过滤掉member_id=0的记录 - ->field('st.name, sm.headimg as avatar') - ->select(); -``` - -### **修复后代码** -```php -// CourseService.php 第397-407行(修复后) -$student = Db::name('person_course_schedule') - ->alias('pcs') - ->where('pcs.schedule_id', $v['id']) - ->leftJoin('school_customer_resources cr', 'pcs.resources_id = cr.id') // ✅ 使用resources_id - ->leftJoin('school_member sm', 'cr.member_id = sm.member_id AND cr.member_id > 0') // ✅ LEFT JOIN + 条件 - ->field('cr.name, COALESCE(sm.headimg, "") as avatar, pcs.schedule_type, pcs.course_type, pcs.status') - ->select(); -``` - -## 🎯 **修复要点** - -### 1. **字段关联修复** -- **原来**:通过 `pcs.student_id = st.id` 关联(但 student_id 为 NULL) -- **修复**:通过 `pcs.resources_id = cr.id` 关联(正确的关联字段) - -### 2. **JOIN类型修复** -- **原来**:使用 `join()` (INNER JOIN),过滤掉不匹配的记录 -- **修复**:使用 `leftJoin()` (LEFT JOIN),保留所有记录 - -### 3. **member_id处理** -- **原来**:`cr.member_id = sm.member_id` 直接关联 -- **修复**:`cr.member_id = sm.member_id AND cr.member_id > 0` 条件关联 - -### 4. **字段处理** -- **原来**:`sm.headimg as avatar` -- **修复**:`COALESCE(sm.headimg, "") as avatar` 处理NULL值 - -### 5. **增加字段** -- 添加 `pcs.schedule_type`:区分正式位(1)和等待位(2) -- 添加 `pcs.course_type`:区分正式课(1)、体验课(2)、等待位(3) -- 添加 `pcs.status`:学员状态信息 - -## 📋 **测试结果** - -### **修复前** -```json -{ - "student": [ - { - "name": "测试", - "avatar": "https://...", - "schedule_type": 1, - "course_type": 1, - "status": 0 - } - // 缺少"美团01"学员 - ] -} -``` - -### **修复后** -```json -{ - "student": [ - { - "name": "测试", - "avatar": "https://...", - "schedule_type": 1, - "course_type": 1, - "status": 0 - }, - { - "name": "美团01", - "avatar": "", - "schedule_type": 2, - "course_type": 3, - "status": 0 - } - ] -} -``` - -## 🔍 **数据字段说明** - -### **schedule_type 字段** -- `1` - 正式位 -- `2` - 等待位 - -### **course_type 字段** -- `1` - 正式课 -- `2` - 体验课 -- `3` - 等待位 - -### **status 字段** -- `0` - 正常 -- `1` - 已取消 -- `2` - 已完成 - -## 🎯 **技术总结** - -### **问题类型** -1. **数据关联错误**:使用了错误的关联字段 -2. **JOIN类型错误**:INNER JOIN 过滤掉了部分数据 -3. **数据完整性问题**:member_id 为 0 的记录处理不当 - -### **修复原则** -1. **使用正确的关联字段**:resources_id 而不是 student_id -2. **使用LEFT JOIN**:保证所有学员记录都能显示 -3. **处理NULL值**:使用 COALESCE 处理可能的空值 -4. **增加业务字段**:提供更多有用的业务信息 - -### **最佳实践** -1. **数据库设计**:确保关联字段的一致性 -2. **查询优化**:根据实际数据结构选择合适的JOIN类型 -3. **异常处理**:考虑数据不完整的情况 -4. **字段完整性**:提供前端需要的所有业务字段 - ---- - -**修复完成时间**:2025-07-31 -**状态**:✅ 问题已修复,学员显示正常 -**影响范围**:课程安排页面的学员列表显示