feat(core-edu): admin/dashboard/leave-requests 模块 + gRPC + 状态机测试 + nextstep 文档
This commit is contained in:
@@ -263,3 +263,55 @@ CREATE TABLE IF NOT EXISTS classes (
|
||||
INDEX idx_classes_grade_id (grade_id),
|
||||
INDEX idx_classes_head_teacher (head_teacher_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- ============================================================================
|
||||
-- P3.13 新增表:考试草稿、考试违规、请假申请
|
||||
-- ============================================================================
|
||||
|
||||
-- 考试草稿表(学生考试过程中的自动保存)
|
||||
CREATE TABLE IF NOT EXISTS core_edu_exam_drafts (
|
||||
id CHAR(36) NOT NULL PRIMARY KEY,
|
||||
exam_id CHAR(36) NOT NULL,
|
||||
student_id CHAR(36) NOT NULL,
|
||||
answers JSON,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uniq_exam_student_draft (exam_id, student_id),
|
||||
INDEX idx_exam_drafts_student (student_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- 考试违规表(防作弊事件记录)
|
||||
CREATE TABLE IF NOT EXISTS core_edu_exam_violations (
|
||||
id CHAR(36) NOT NULL PRIMARY KEY,
|
||||
exam_id CHAR(36) NOT NULL,
|
||||
student_id CHAR(36) NOT NULL,
|
||||
violation_type VARCHAR(40) NOT NULL,
|
||||
detail TEXT,
|
||||
severity INT NOT NULL DEFAULT 1,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
INDEX idx_exam_violations_exam (exam_id),
|
||||
INDEX idx_exam_violations_student (student_id),
|
||||
INDEX idx_exam_violations_type (violation_type)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
-- 请假申请表
|
||||
CREATE TABLE IF NOT EXISTS core_edu_leave_requests (
|
||||
id CHAR(36) NOT NULL PRIMARY KEY,
|
||||
student_id CHAR(36) NOT NULL,
|
||||
class_id CHAR(36) NOT NULL,
|
||||
leave_type VARCHAR(20) NOT NULL,
|
||||
start_date DATE NOT NULL,
|
||||
end_date DATE NOT NULL,
|
||||
reason TEXT NOT NULL,
|
||||
status VARCHAR(20) NOT NULL DEFAULT 'pending',
|
||||
submitted_by CHAR(36) NOT NULL,
|
||||
reviewed_by CHAR(36),
|
||||
review_comment TEXT,
|
||||
school_id CHAR(36) NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
INDEX idx_leave_requests_student (student_id),
|
||||
INDEX idx_leave_requests_class (class_id),
|
||||
INDEX idx_leave_requests_status (status),
|
||||
INDEX idx_leave_requests_school (school_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
|
||||
Reference in New Issue
Block a user