feat(shared-proto): ai/core_edu/iam proto v2 扩展

ai.proto: 新增 GenerateReport RPC + GenerateReportRequest/GeneratedReport message

core_edu.proto: 新增 ExtendExam/ForceSubmitExam/ReorderExamQuestions 3 RPC + message

iam.proto: 新增 CreateUser/UpdateUser/DeleteUser 3 RPC + 4 message
This commit is contained in:
SpecialX
2026-07-14 22:57:18 +08:00
parent 7545956202
commit 843b370b3d
3 changed files with 120 additions and 16 deletions

View File

@@ -23,6 +23,8 @@ service AiService {
rpc GetLessonPlanStatus(GetLessonPlanStatusRequest) returns (LessonPlanStatus);
// 教师确认备课结果入库(调 content.CreateQuestions
rpc ConfirmLessonPlan(ConfirmLessonPlanRequest) returns (ConfirmResult);
// 生成学情报告(班级总结 / 学生详情 / 考试分析)
rpc GenerateReport(GenerateReportRequest) returns (GeneratedReport);
}
// === 聊天 ===
@@ -146,3 +148,21 @@ message ConfirmResult {
repeated string persisted_question_ids = 2;
optional string error = 3;
}
// === 学情报告 ===
message GenerateReportRequest {
string class_id = 1;
string report_type = 2; // class_summary / student_detail / exam_analysis
optional string student_id = 3;
string user_id = 4;
string data_scope = 5; // JSON 序列化的 DataScope
}
message GeneratedReport {
string id = 1;
string content = 2; // 报告正文Markdown
string summary = 3; // 摘要
repeated string recommendations = 4; // 教学建议
bool degraded = 5;
string degraded_reason = 6;
}

View File

@@ -6,8 +6,8 @@ package next_edu_cloud.core_edu.v1;
// Covers exam management, homework assignment, grade recording,
// attendance tracking, and class queries.
//
// Total: 9 Service / 40 RPC (P3.13 expanded state per downstream 9-module analysis).
// - ExamService: 10 RPC (8 original + SaveExamDraft + RecordExamViolation)
// Total: 9 Service / 43 RPC (P3.13 expanded + P3.14 exam realtime events).
// - ExamService: 13 RPC (8 original + SaveExamDraft + RecordExamViolation + ExtendExam + ForceSubmitExam + ReorderExamQuestions)
// - HomeworkService: 5 RPC
// - GradeService: 7 RPC (6 original + GetReportCard)
// - ClassService: 4 RPC
@@ -36,6 +36,9 @@ service ExamService {
rpc GradeExam(GradeExamRequest) returns (GradeExamResponse);
rpc SaveExamDraft(SaveExamDraftRequest) returns (SaveExamDraftResponse);
rpc RecordExamViolation(RecordExamViolationRequest) returns (RecordExamViolationResponse);
rpc ExtendExam(ExtendExamRequest) returns (ExtendExamResponse);
rpc ForceSubmitExam(ForceSubmitExamRequest) returns (ForceSubmitExamResponse);
rpc ReorderExamQuestions(ReorderExamQuestionsRequest) returns (ReorderExamQuestionsResponse);
}
service HomeworkService {
@@ -493,6 +496,46 @@ message RecordExamViolationResponse {
string violation_id = 1;
}
// ----------------------------------------------------------------------------
// Exam realtime events (P3.14: 考试实时事件,供 push-gateway → student-portal WebSocket 推送)
// ----------------------------------------------------------------------------
message ExtendExamRequest {
string exam_id = 1;
int32 extension_seconds = 2; // 延长秒数
string extended_by = 3; // 操作教师 ID
}
message ExtendExamResponse {
bool success = 1;
int32 new_duration = 2; // 延长后的总时长(秒)
}
message ForceSubmitExamRequest {
string exam_id = 1;
repeated string student_ids = 2; // 强制收卷的学生 ID 列表(空=全部未提交学生)
string forced_by = 3; // 操作教师 ID
}
message ForceSubmitExamResponse {
int32 affected_count = 1; // 强制收卷的学生数
}
message QuestionOrderInput {
string question_id = 1;
int32 order = 2;
}
message ReorderExamQuestionsRequest {
string exam_id = 1;
repeated QuestionOrderInput orders = 2; // 新的题目顺序
string reordered_by = 3;
}
message ReorderExamQuestionsResponse {
bool success = 1;
}
// ----------------------------------------------------------------------------
// Grade domain extensions (P3.13)
// ----------------------------------------------------------------------------

View File

@@ -15,9 +15,24 @@ service IamService {
// 用户信息类
rpc GetUserInfo(GetUserInfoRequest) returns (UserInfo);
rpc BatchGetUsers(BatchGetUsersRequest) returns (BatchGetUsersResponse);
// GetEffectiveDataScope 解析用户可见数据范围DataScope 6 级).
// data-ana gRPC 调用此 RPC 解析查询过滤范围coord-cross-review §2 #3 裁决 P4 补全).
rpc GetEffectiveDataScope(GetEffectiveDataScopeRequest) returns (EffectiveDataScope);
// 权限与视口类
rpc GetEffectivePermissions(GetEffectivePermissionsRequest) returns (EffectivePermissionsResponse);
rpc GetEffectiveAccess(GetEffectiveAccessRequest) returns (EffectiveAccessResponse);
rpc GetViewports(GetViewportsRequest) returns (ViewportsResponse);
// 密钥与关系类
rpc GetPublicKey(GetPublicKeyRequest) returns (PublicKeyResponse);
rpc GetChildrenByParent(GetChildrenByParentRequest) returns (ChildrenResponse);
// 管理员用户管理类admin-portal §2.3 P1 阻塞项补齐)
rpc CreateUser(CreateUserRequest) returns (UserInfo);
rpc UpdateUser(UpdateUserRequest) returns (UserInfo);
rpc DeleteUser(DeleteUserRequest) returns (DeleteUserResponse);
}
// ========== 认证类 ==========
@@ -159,3 +174,29 @@ message EffectiveDataScope {
repeated string scope_ids = 3; // class_id 列表CLASS 级)/ grade_id 列表GRADE 级)
string school_id = 4; // SCHOOL 级时的学校 ID
}
// ========== 管理员用户管理类 ==========
message CreateUserRequest {
string email = 1;
string password = 2;
string name = 3;
string role_id = 4; // 可选:指定角色 ID不传则使用默认 teacher 角色)
string data_scope = 5; // 可选self / subject / class / grade / school / all
}
message UpdateUserRequest {
string user_id = 1;
string name = 2; // 可选
string email = 3; // 可选
string status = 4; // 可选active / inactive / locked
string data_scope = 5; // 可选self / subject / class / grade / school / all
}
message DeleteUserRequest {
string user_id = 1;
}
message DeleteUserResponse {
bool success = 1;
}