v1.2版本更新发布
This commit is contained in:
@@ -52,17 +52,25 @@ class ConductService:
|
||||
if points_change > settings.MONITOR_MAX_ADD or points_change < settings.MONITOR_MAX_SUBTRACT:
|
||||
return {"success": False, "message": f"班长单次只能加减{settings.MONITOR_MAX_ADD}分以内"}
|
||||
elif role == "劳动委员":
|
||||
# 劳动委员固定 ±1分
|
||||
if points_change not in [settings.LABOR_POINTS_ADD, settings.LABOR_POINTS_SUBTRACT]:
|
||||
return {"success": False, "message": "劳动委员只能进行±1分操作"}
|
||||
# 劳动委员可加减分,±LABOR_REP_MAX_POINTS以内
|
||||
if abs(points_change) > settings.LABOR_REP_MAX_POINTS:
|
||||
return {"success": False, "message": f"劳动委员单次只能加减{settings.LABOR_REP_MAX_POINTS}分以内"}
|
||||
elif role == "志愿委员":
|
||||
# 志愿委员只能加分,不限制正分上限
|
||||
# 志愿委员只能加分,上限VOLUNTEER_REP_MAX_POINTS
|
||||
if points_change < 0:
|
||||
return {"success": False, "message": "志愿委员只能加分"}
|
||||
elif role in ["学习委员", "考勤委员"]:
|
||||
# 学习委员和考勤委员只能扣分
|
||||
if points_change > settings.VOLUNTEER_REP_MAX_POINTS:
|
||||
return {"success": False, "message": f"志愿委员单次最多加{settings.VOLUNTEER_REP_MAX_POINTS}分"}
|
||||
elif role == "学习委员":
|
||||
# 学习委员可加减分,±STUDY_COMMISSIONER_MAX_POINTS以内
|
||||
if abs(points_change) > settings.STUDY_COMMISSIONER_MAX_POINTS:
|
||||
return {"success": False, "message": f"学习委员单次只能加减{settings.STUDY_COMMISSIONER_MAX_POINTS}分以内"}
|
||||
elif role == "考勤委员":
|
||||
# 考勤委员只能扣分,上限ATTENDANCE_REP_MAX_POINTS
|
||||
if points_change > 0:
|
||||
return {"success": False, "message": "该角色只能进行扣分操作"}
|
||||
return {"success": False, "message": "考勤委员只能进行扣分操作"}
|
||||
if abs(points_change) > settings.ATTENDANCE_REP_MAX_POINTS:
|
||||
return {"success": False, "message": f"考勤委员单次最多扣{settings.ATTENDANCE_REP_MAX_POINTS}分"}
|
||||
else:
|
||||
return {"success": False, "message": "无权进行此操作"}
|
||||
|
||||
@@ -121,6 +129,9 @@ class ConductService:
|
||||
if not record:
|
||||
return {"success": False, "message": "记录不存在"}
|
||||
|
||||
# 归档后班主任仍可撤销/修改记录(任务需求#8)
|
||||
# 归档操作本身不可逆,但归档数据可由班主任修改
|
||||
|
||||
# 撤销记录
|
||||
result = await ConductModel.revoke_record(record_id, revoker_id)
|
||||
|
||||
@@ -128,7 +139,16 @@ class ConductService:
|
||||
# 反向恢复学生总分
|
||||
await StudentModel.update_total_points(record["student_id"], -record["points_change"])
|
||||
logger.info(f"用户[{revoker_id}] 撤销了记录[{record_id}]")
|
||||
return {"success": True, "message": "撤销成功"}
|
||||
return {
|
||||
"success": True,
|
||||
"message": "撤销成功",
|
||||
"record": {
|
||||
"student_id": record["student_id"],
|
||||
"recorder_name": record.get("recorder_name", "未知"),
|
||||
"points_change": record["points_change"],
|
||||
"reason": record.get("reason", "")
|
||||
}
|
||||
}
|
||||
else:
|
||||
return {"success": False, "message": "撤销失败"}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user