flowchart TD
A[开始] --> B[查找正在运行的课程]
B --> C{找到正在运行的课程?}
C -->|否| D[返回错误: 没有找到正在运行的课程]
C -->|是| E[获取评价数据]
E --> F{是否有评价数据?}
F -->|否| G[返回提示: 当前课程没有评价数据]
F -->|是| H[查找第一个未操作的记录]
H --> I{是否有未操作的记录?}
I -->|否| J[返回提示: 所有评价项已完成]
I -->|是| K[比较参数1和参数2]
K --> L{参数是否匹配?}
L -->|否| M[返回错误: 操作参数不匹配]
L -->|是| N[计算操作时间和得分]
N --> O[更新CourseEvaLog表]
O --> P[重新计算课程总得分]
P --> Q[更新CourseRunLog表]
Q --> R[创建SSE通知数据]
R --> S[通过SSE广播评价更新]
S --> T[返回评价结果]
D --> U[结束]
G --> U
J --> U
M --> U
T --> U
查找正在运行的课程
获取评价数据
查找第一个未操作的记录
参数匹配检查
计算操作时间和得分
更新评价记录
重新计算课程总得分
更新课程总分
创建SSE通知数据
通过SSE广播评价更新
返回评价结果
{
"type": "evaluation_update",
"runLogID": 运行记录ID,
"seqNo": 序号,
"evaName": "评价名称",
"isOperated": 1,
"operScore": 操作得分,
"courseScore": 课程总分,
"timestamp": "时间戳"
}