You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.2 KiB
4.2 KiB
服务记录分发功能说明
功能概述
服务记录分发功能是一个定时任务系统,用于自动将已完成的服务记录分发给教务人员和教练,确保相关人员能够及时了解服务情况。
功能特性
1. 自动分发
- 定时检查最近24小时内完成的服务记录
- 自动识别教务人员和教练
- 根据人员角色发送相应的通知
2. 分发规则
- 教务人员:接收所有已完成的服务记录通知
- 教练:只接收自己负责的服务记录通知
3. 通知方式
- 支持短信通知
- 支持微信通知
- 支持小程序通知
文件结构
app/
├── job/schedule/
│ └── ServiceLogsDistribution.php # 定时任务类
├── service/admin/service_logs/
│ └── ServiceLogsDistributionService.php # 分发管理服务
├── adminapi/controller/service_logs/
│ └── ServiceLogsDistribution.php # 分发管理控制器
├── dict/notice/
│ └── service_logs_notice.php # 通知模板配置
└── upgrade/v151/
├── upgrade.php # 升级脚本
└── upgrade.sql # 数据库升级SQL
数据库变更
服务记录表 (service_logs)
新增字段:
is_distributed_to_academic(tinyint): 是否已分发给教务is_distributed_to_coach(tinyint): 是否已分发给教练distribution_time(int): 分发时间
人员表 (personnel)
新增字段:
position(varchar): 职位信息
API接口
1. 手动执行分发任务
POST /adminapi/service_logs/distribution/execute
2. 获取分发统计信息
GET /adminapi/service_logs/distribution/stats
3. 获取待分发的服务记录列表
GET /adminapi/service_logs/distribution/pending
参数:
- distribution_status: 分发状态筛选
- date_range: 日期范围筛选
4. 重置分发状态
POST /adminapi/service_logs/distribution/reset
参数:
- ids: 服务记录ID数组
- type: 重置类型 (academic|coach|both)
5. 获取教务和教练人员列表
GET /adminapi/service_logs/distribution/staff
使用方法
1. 安装升级
执行数据库升级脚本:
-- 执行 app/upgrade/v151/upgrade.sql 中的SQL语句
2. 配置定时任务
在系统定时任务中添加:
// 任务类
app\job\schedule\ServiceLogsDistribution
// 执行频率:每小时执行一次
0 * * * *
3. 配置通知模板
在后台管理系统中配置通知模板:
- 服务记录教务通知 (service_log_academic_notice)
- 服务记录教练通知 (service_log_coach_notice)
4. 设置人员职位
确保人员表中的职位字段正确设置:
- 教务人员:职位包含"教务"
- 教练:职位包含"教练"
通知模板变量
教务通知模板变量
{staff_name}: 教务人员姓名{service_name}: 服务名称{score}: 评分{created_at}: 创建时间
教练通知模板变量
{staff_name}: 教练姓名{service_name}: 服务名称{score}: 学员评分{feedback}: 学员反馈{created_at}: 创建时间
日志记录
系统会自动记录以下日志:
- 分发任务开始和完成时间
- 分发成功的记录数量
- 发送通知的成功和失败情况
- 异常错误信息
注意事项
- 数据库升级:首次使用前必须执行数据库升级脚本
- 人员配置:确保人员表中的职位信息正确设置
- 通知配置:需要在后台配置相应的通知模板
- 定时任务:建议设置为每小时执行一次
- 权限控制:API接口需要相应的权限才能访问
故障排除
常见问题
-
没有找到教务/教练人员
- 检查人员表中的职位字段是否正确设置
- 确认人员状态是否为正常状态
-
通知发送失败
- 检查通知模板配置
- 确认短信/微信配置是否正确
-
分发状态不更新
- 检查数据库字段是否存在
- 确认数据库权限是否正确
调试方法
- 查看系统日志文件
- 使用手动执行接口测试
- 检查数据库中的分发状态字段
- 验证通知模板配置