v0.8.3测试
This commit is contained in:
@@ -109,11 +109,23 @@ class HomeworkService:
|
||||
# 创建扣分记录
|
||||
student = await StudentModel.get_by_id(submission["student_id"])
|
||||
if student:
|
||||
# 检查分数是否会超出范围(防止溢出)
|
||||
current_points = student.get("total_points", 0)
|
||||
new_points = current_points + points_change
|
||||
if new_points < 0:
|
||||
return {"success": False, "message": f"分数不能为负(当前{current_points},扣{abs(points_change)})"}
|
||||
|
||||
# 获取操作人姓名
|
||||
from models.user import UserModel
|
||||
user = await UserModel.get_by_user_id(operator_id)
|
||||
recorder_name = user.get("real_name", "班主任") if user else "班主任"
|
||||
|
||||
await ConductModel.create_record(
|
||||
student_id=submission["student_id"],
|
||||
points_change=points_change,
|
||||
reason=f"作业未提交/迟交: {submission['title']}",
|
||||
recorder_id=operator_id,
|
||||
recorder_name=recorder_name,
|
||||
related_type="homework",
|
||||
related_id=submission["assignment_id"]
|
||||
)
|
||||
|
||||
@@ -106,7 +106,7 @@ async function exportConductRecords() {
|
||||
showToast('正在导出...', 'info');
|
||||
|
||||
try {
|
||||
const params = { page: 1, page_size: 10000 };
|
||||
const params = { page: 1, page_size: 1000 };
|
||||
if (startDate) params.start_date = startDate;
|
||||
if (endDate) params.end_date = endDate;
|
||||
|
||||
|
||||
@@ -88,6 +88,10 @@ include __DIR__ . '/../includes/header.php';
|
||||
<div class="stat-label">当前操行分</div>
|
||||
<div class="stat-value" id="totalPoints">--</div>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<div class="stat-label">班级排名</div>
|
||||
<div class="stat-value" id="studentRank">--</div>
|
||||
</div>
|
||||
<div class="stat-card">
|
||||
<div class="stat-label">作业完成率</div>
|
||||
<div class="stat-value" id="homeworkRate">--%</div>
|
||||
@@ -291,6 +295,18 @@ include __DIR__ . '/../includes/header.php';
|
||||
document.getElementById('recentRecords').innerHTML = html;
|
||||
}
|
||||
|
||||
// 获取班级排名
|
||||
const rankingRes = await apiGet('/api/student/ranking', { limit: 100 });
|
||||
if (rankingRes && rankingRes.success) {
|
||||
const ranking = rankingRes.data.ranking || [];
|
||||
const rank = ranking.find(s => s.student_id === parseInt(STUDENT_ID));
|
||||
if (rank) {
|
||||
document.getElementById('studentRank').textContent = `第${rank.rank}名 / ${ranking.length}人`;
|
||||
} else {
|
||||
document.getElementById('studentRank').textContent = '--';
|
||||
}
|
||||
}
|
||||
|
||||
// 获取作业统计
|
||||
const homeworkRes = await apiGet(`/api/student/homework/${STUDENT_ID}`);
|
||||
if (homeworkRes && homeworkRes.success) {
|
||||
|
||||
Reference in New Issue
Block a user