|
|
@@ -130,11 +130,12 @@ class StudentKnowledgeMastery extends Model
|
|
|
|
|
|
foreach ($kpCodes as $kpCode) {
|
|
|
$record = $records->get($kpCode);
|
|
|
- // 优先使用 direct_mastery_level(直接学习掌握度)
|
|
|
+ // 取 direct_mastery_level 和 mastery_level 的最大值
|
|
|
+ // 避免"学了之后反而从达标变成未达标"的问题
|
|
|
if ($record) {
|
|
|
- $level = $record->direct_mastery_level !== null
|
|
|
- ? (float) $record->direct_mastery_level
|
|
|
- : (float) $record->mastery_level;
|
|
|
+ $direct = $record->direct_mastery_level;
|
|
|
+ $mastery = (float) $record->mastery_level;
|
|
|
+ $level = $direct !== null ? max((float) $direct, $mastery) : $mastery;
|
|
|
} else {
|
|
|
$level = 0.0;
|
|
|
}
|
|
|
@@ -186,12 +187,13 @@ class StudentKnowledgeMastery extends Model
|
|
|
|
|
|
$hasAnyKpWithQuestions = true;
|
|
|
|
|
|
- // 优先使用 direct_mastery_level(直接学习掌握度)
|
|
|
+ // 取 direct_mastery_level 和 mastery_level 的最大值
|
|
|
+ // 避免"学了之后反而从达标变成未达标"的问题
|
|
|
$record = $records->get($kpCode);
|
|
|
if ($record) {
|
|
|
- $level = $record->direct_mastery_level !== null
|
|
|
- ? (float) $record->direct_mastery_level
|
|
|
- : (float) $record->mastery_level;
|
|
|
+ $direct = $record->direct_mastery_level;
|
|
|
+ $mastery = (float) $record->mastery_level;
|
|
|
+ $level = $direct !== null ? max((float) $direct, $mastery) : $mastery;
|
|
|
} else {
|
|
|
$level = 0.0;
|
|
|
}
|
|
|
@@ -239,12 +241,13 @@ class StudentKnowledgeMastery extends Model
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- // 优先使用 direct_mastery_level(直接学习掌握度)
|
|
|
+ // 取 direct_mastery_level 和 mastery_level 的最大值
|
|
|
+ // 避免"学了之后反而从达标变成未达标"的问题
|
|
|
$record = $records->get($kpCode);
|
|
|
if ($record) {
|
|
|
- $level = $record->direct_mastery_level !== null
|
|
|
- ? (float) $record->direct_mastery_level
|
|
|
- : (float) $record->mastery_level;
|
|
|
+ $direct = $record->direct_mastery_level;
|
|
|
+ $mastery = (float) $record->mastery_level;
|
|
|
+ $level = $direct !== null ? max((float) $direct, $mastery) : $mastery;
|
|
|
} else {
|
|
|
$level = 0.0;
|
|
|
}
|