智慧教务系统
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

服务记录分发功能说明

功能概述

服务记录分发功能是一个定时任务系统,用于自动将已完成的服务记录分发给教务人员和教练,确保相关人员能够及时了解服务情况。

功能特性

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}: 创建时间

日志记录

系统会自动记录以下日志:

  • 分发任务开始和完成时间
  • 分发成功的记录数量
  • 发送通知的成功和失败情况
  • 异常错误信息

注意事项

  1. 数据库升级:首次使用前必须执行数据库升级脚本
  2. 人员配置:确保人员表中的职位信息正确设置
  3. 通知配置:需要在后台配置相应的通知模板
  4. 定时任务:建议设置为每小时执行一次
  5. 权限控制:API接口需要相应的权限才能访问

故障排除

常见问题

  1. 没有找到教务/教练人员

    • 检查人员表中的职位字段是否正确设置
    • 确认人员状态是否为正常状态
  2. 通知发送失败

    • 检查通知模板配置
    • 确认短信/微信配置是否正确
  3. 分发状态不更新

    • 检查数据库字段是否存在
    • 确认数据库权限是否正确

调试方法

  1. 查看系统日志文件
  2. 使用手动执行接口测试
  3. 检查数据库中的分发状态字段
  4. 验证通知模板配置