Files
railwaysystem/docs/current/04-API-INVENTORY.md
T

42 KiB
Raw Blame History

04 - 系统全量 API 接口总账与数据库调用链 (API Inventory & Database Lineage)

最高原则:拒绝根据 URL 猜测表名与调用状态!

  1. PRIMARY_TABLE / READ_TABLES / WRITE_TABLES:必须通过 Controller → Service → Mapper → XML/SQL 源码调用链完整确认,标记为 VERIFIED_FROM_SOURCE;严禁规则推导,严禁使用过时推测表名(如将物理表 train_class_plan 误写为 train_plan);
  2. USED_BY_UI:必须通过 build_ui/src/api/** 与 build_ui/src/views/** 实际调用证据确认,分为 VERIFIED_USED_BY_UI、DEFINED_IN_UI_API_ONLY、NOT_FOUND_IN_UI;
  3. IMPLEMENTATION_STATUS:Controller 存在证明端点已定义,标注为 ENDPOINT_DEFINED (BACKEND_IMPLEMENTED),受外部硬件阻断的标注为 ENDPOINT_DEFINED (BLOCKED_EXTERNAL)。

1. 核心培训业务 API 账本 (CUSTOM_TRAIN_BUSINESS_API — 107 个端点源码穿透验证)

接口路径 (API) 请求方式 (METHOD) 领域模块 控制器方法 (CTRL_METHOD) 服务层方法 (SERVICE_METHOD) 映射层方法 (MAPPER_METHOD) 映射XML语句 (XML_STMT) 主实体表 (PRIMARY_TABLE) 读操作表 (READ_TABLES) 写操作表 (WRITE_TABLES) 调用链状态 (LINEAGE_STATUS) UI调用状态 (USED_BY_UI) 实现状态 (STATUS)
/train/teacher/list GET Train list ITrainTeacherService.selectTrainTeacherList TrainTeacherMapper.selectTrainTeacherList selectTrainTeacherList train_teacher train_teacher NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/teacher/{tId} GET Train getInfo ITrainTeacherService.selectTrainTeacherByTId TrainTeacherMapper.selectTrainTeacherByTId selectTrainTeacherByTId train_teacher train_teacher NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/teacher POST Train add ITrainTeacherService.insertTrainTeacher TrainTeacherMapper.insertTrainTeacher insertTrainTeacher train_teacher NONE train_teacher VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/teacher PUT Train edit ITrainTeacherService.updateTrainTeacher TrainTeacherMapper.updateTrainTeacher updateTrainTeacher train_teacher train_teacher train_teacher VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/teacher/{tIds} DELETE Train remove ITrainTeacherService.deleteTrainTeacherByTIds TrainTeacherMapper.deleteTrainTeacherByTIds deleteTrainTeacherByTIds train_teacher train_teacher train_teacher VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/teacher/export POST Train export ITrainTeacherService.selectTrainTeacherList TrainTeacherMapper.selectTrainTeacherList selectTrainTeacherList train_teacher train_teacher NONE VERIFIED_FROM_SOURCE DEFINED_IN_UI_API_ONLY ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/me/teacher/plans GET Train getMyPlans ITrainingIdentityService.assertTeacherIdentity TrainLessonMapper.selectPlansByTeacherId selectPlansByTeacherId train_class_plan train_class_plan, train_plan_course, train_lesson NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/me/teacher GET Train getTeacherProfile ITrainingIdentityService.assertTeacherIdentity TrainTeacherMapper.selectTrainTeacherByTId selectTrainTeacherByTId train_teacher train_teacher NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/me/teacher/students GET Train getMyClassStudents TrainLessonMapper.countTeacherInPlan TrainEnrollmentMapper.selectEnrollmentItemList selectEnrollmentItemList train_enrollment train_enrollment, train_lesson, train_student NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/me/teacher/lessons/{lessonId}/attendance GET Train getLessonAttendance TrainLessonMapper.selectTrainLessonById TrainStudentCheckinMapper.selectCheckinsByLessonId selectCheckinsByLessonId train_student_checkin train_lesson, train_student_checkin NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/student/list GET Train list ITrainStudentService.selectTrainStudentList TrainStudentMapper.selectTrainStudentList selectTrainStudentList train_student train_student NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/student/{sId} GET Train getInfo ITrainStudentService.selectTrainStudentBySId TrainStudentMapper.selectTrainStudentBySId selectTrainStudentBySId train_student train_student NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/student POST Train add ITrainStudentService.insertTrainStudent TrainStudentMapper.insertTrainStudent insertTrainStudent train_student NONE train_student VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/student PUT Train edit ITrainStudentService.updateTrainStudent TrainStudentMapper.updateTrainStudent updateTrainStudent train_student train_student train_student VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/student/{sIds} DELETE Train remove ITrainStudentService.deleteTrainStudentBySIds TrainStudentMapper.deleteTrainStudentBySIds deleteTrainStudentBySIds train_student train_student train_student VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/student/export POST Train export ITrainStudentService.selectTrainStudentList TrainStudentMapper.selectTrainStudentList selectTrainStudentList train_student train_student NONE VERIFIED_FROM_SOURCE DEFINED_IN_UI_API_ONLY ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/student/importTemplate GET Train importTemplate ITrainStudentService.importTemplate NONE NONE train_student NONE NONE VERIFIED_FROM_SOURCE DEFINED_IN_UI_API_ONLY ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/student/importData POST Train importData ITrainStudentService.importStudent TrainStudentMapper.insertTrainStudent insertTrainStudent train_student train_student train_student VERIFIED_FROM_SOURCE DEFINED_IN_UI_API_ONLY ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/me/student/enrollments GET Train getMyEnrollments ITrainingIdentityService.assertStudentIdentity TrainEnrollmentMapper.selectEnrollmentsByStudentId selectEnrollmentsByStudentId train_enrollment train_enrollment, train_class_plan NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/me/student/timetable GET Train getMyTimetable ITrainingIdentityService.assertStudentIdentity TrainLessonMapper.selectScheduleLessonsByStudentId selectScheduleLessonsByStudentId train_lesson train_lesson, train_plan_course, train_course, train_classroom_info, train_training_site NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/me/student/report GET Train getMyReport ITrainingIdentityService.assertStudentIdentity TrainClassReportMapper.selectLatestReportByStudentId selectLatestReportByStudentId train_class_report train_class_report, train_enrollment, train_class_plan NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/me/student/attendance GET Train getMyAttendance ITrainingIdentityService.assertStudentIdentity TrainStudentCheckinMapper.selectCheckinsByStudentId selectCheckinsByStudentId train_student_checkin train_student_checkin, train_lesson, train_enrollment NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/me/student/duration GET Train getMyDuration ITrainingIdentityService.assertStudentIdentity TrainStudyDurationMapper.selectDurationsByStudentId selectDurationsByStudentId train_study_duration train_study_duration, train_course NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/me/student/portrait GET Train getMyPortrait ITrainingIdentityService.assertStudentIdentity TrainStudentPortraitMapper.selectPortraitByStudentId selectPortraitByStudentId train_student_portrait train_student_portrait, train_enrollment, train_class_plan, train_student NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/course/list GET Train list ITrainCourseService.selectTrainCourseList TrainCourseMapper.selectTrainCourseList selectTrainCourseList train_course train_course NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/course/{cId} GET Train getInfo ITrainCourseService.selectTrainCourseByCId TrainCourseMapper.selectTrainCourseByCId selectTrainCourseByCId train_course train_course NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/course POST Train add ITrainCourseService.insertTrainCourse TrainCourseMapper.insertTrainCourse insertTrainCourse train_course NONE train_course VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/course PUT Train edit ITrainCourseService.updateTrainCourse TrainCourseMapper.updateTrainCourse updateTrainCourse train_course train_course train_course VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/course/{cIds} DELETE Train remove ITrainCourseService.deleteTrainCourseByCIds TrainCourseMapper.deleteTrainCourseByCIds deleteTrainCourseByCIds train_course train_course train_course VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/classroom/list GET Train list ITrainClassroomInfoService.selectTrainClassroomInfoList TrainClassroomInfoMapper.selectTrainClassroomInfoList selectTrainClassroomInfoList train_classroom_info train_classroom_info NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/classroom/{classRoomId} GET Train getInfo ITrainClassroomInfoService.selectTrainClassroomInfoByClassRoomId TrainClassroomInfoMapper.selectTrainClassroomInfoByClassRoomId selectTrainClassroomInfoByClassRoomId train_classroom_info train_classroom_info NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/classroom POST Train add ITrainClassroomInfoService.insertTrainClassroomInfo TrainClassroomInfoMapper.insertTrainClassroomInfo insertTrainClassroomInfo train_classroom_info NONE train_classroom_info VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/classroom PUT Train edit ITrainClassroomInfoService.updateTrainClassroomInfo TrainClassroomInfoMapper.updateTrainClassroomInfo updateTrainClassroomInfo train_classroom_info train_classroom_info train_classroom_info VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/classroom/{classRoomIds} DELETE Train remove ITrainClassroomInfoService.deleteTrainClassroomInfoByClassRoomIds TrainClassroomInfoMapper.deleteTrainClassroomInfoByClassRoomIds deleteTrainClassroomInfoByClassRoomIds train_classroom_info train_classroom_info train_classroom_info VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/training-site/list GET Train list ITrainTrainingSiteService.selectTrainTrainingSiteList TrainTrainingSiteMapper.selectTrainTrainingSiteList selectTrainTrainingSiteList train_training_site train_training_site NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/training-site/{siteId} GET Train getInfo ITrainTrainingSiteService.selectTrainTrainingSiteBySiteId TrainTrainingSiteMapper.selectTrainTrainingSiteBySiteId selectTrainTrainingSiteBySiteId train_training_site train_training_site NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/training-site POST Train add ITrainTrainingSiteService.insertTrainTrainingSite TrainTrainingSiteMapper.insertTrainTrainingSite insertTrainTrainingSite train_training_site NONE train_training_site VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/training-site PUT Train edit ITrainTrainingSiteService.updateTrainTrainingSite TrainTrainingSiteMapper.updateTrainTrainingSite updateTrainTrainingSite train_training_site train_training_site train_training_site VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/training-site/{siteIds} DELETE Train remove ITrainTrainingSiteService.deleteTrainTrainingSiteBySiteIds TrainTrainingSiteMapper.deleteTrainTrainingSiteBySiteIds deleteTrainTrainingSiteBySiteIds train_training_site train_training_site train_training_site VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans GET Train list PlanAppService.selectPlanItemList TrainClassPlanMapper.selectTrainClassPlanList selectTrainClassPlanList train_class_plan train_class_plan, train_plan_course, train_enrollment NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planId} GET Train getInfo ITrainClassPlanService.selectTrainClassPlanByPlanId TrainClassPlanMapper.selectTrainClassPlanByPlanId selectTrainClassPlanByPlanId train_class_plan train_class_plan NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans POST Train add PlanAppService.createPlan TrainClassPlanMapper.insertTrainClassPlan insertTrainClassPlan train_class_plan NONE train_class_plan VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planId} PUT Train edit PlanAppService.updatePlan TrainClassPlanMapper.updateTrainClassPlan updateTrainClassPlan train_class_plan train_class_plan train_class_plan VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planIds} DELETE Train remove ITrainClassPlanService.deleteTrainClassPlanByPlanIds TrainClassPlanMapper.deleteTrainClassPlanByPlanIds deleteTrainClassPlanByPlanIds train_class_plan train_class_plan train_class_plan VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planId}/publish POST Train publish PlanAppService.publishPlan TrainClassPlanMapper.updateTrainClassPlan updateTrainClassPlan train_class_plan train_class_plan train_class_plan VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planId}/start POST Train start PlanAppService.startPlan TrainClassPlanMapper.updateTrainClassPlan updateTrainClassPlan train_class_plan train_class_plan train_class_plan VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planId}/complete POST Train complete PlanAppService.completePlan TrainClassPlanMapper.updateTrainClassPlan updateTrainClassPlan train_class_plan train_class_plan, train_enrollment train_class_plan, train_enrollment VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planId}/courses GET Train list PlanAppService.listCourses TrainPlanCourseMapper.selectCourseItemsByPlanId selectCourseItemsByPlanId train_plan_course train_plan_course, train_course NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planId}/courses POST Train bind PlanAppService.bindCourses TrainPlanCourseMapper.insertTrainPlanCourse insertTrainPlanCourse train_plan_course train_plan_course train_plan_course VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planId}/courses/{planCourseId} DELETE Train unbind PlanAppService.unbindCourse TrainPlanCourseMapper.deleteTrainPlanCourseByPlanCourseId deleteTrainPlanCourseByPlanCourseId train_plan_course train_plan_course train_plan_course VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planId}/enrollments GET Train list EnrollmentAppService.listEnrollments TrainEnrollmentMapper.selectEnrollmentItemList selectEnrollmentItemList train_enrollment train_enrollment, train_student NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planId}/enrollments POST Train enroll EnrollmentAppService.enrollStudent TrainEnrollmentMapper.insertTrainEnrollment insertTrainEnrollment train_enrollment train_enrollment train_enrollment VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planId}/enrollments/batch POST Train batchEnroll EnrollmentAppService.batchEnrollStudents TrainEnrollmentMapper.insertTrainEnrollment insertTrainEnrollment train_enrollment train_enrollment train_enrollment VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/enrollments/{enrollmentId} GET Train getInfo EnrollmentAppService.getEnrollmentDetail TrainEnrollmentMapper.selectEnrollmentItemById selectEnrollmentItemById train_enrollment train_enrollment, train_student, train_class_plan NONE VERIFIED_FROM_SOURCE DEFINED_IN_UI_API_ONLY ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/enrollments/{enrollmentId}/status PUT Train updateStatus EnrollmentAppService.updateStatus TrainEnrollmentMapper.updateTrainEnrollment updateTrainEnrollment train_enrollment train_enrollment train_enrollment VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/enrollments/{enrollmentId} DELETE Train remove EnrollmentAppService.removeEnrollment TrainEnrollmentMapper.deleteTrainEnrollmentByEnrollmentId deleteTrainEnrollmentByEnrollmentId train_enrollment train_enrollment train_enrollment VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planId}/lessons GET Train list SchedulingAppService.listLessons TrainLessonMapper.selectLessonItemsByPlanId selectLessonItemsByPlanId train_lesson train_lesson, train_plan_course, train_course, train_teacher, train_classroom_info, train_training_site NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planId}/lessons POST Train schedule SchedulingAppService.scheduleLesson TrainLessonMapper.insertTrainLesson insertTrainLesson train_lesson train_lesson train_lesson VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/lessons/{lessonId} GET Train getInfo SchedulingAppService.getLessonDetail TrainLessonMapper.selectLessonItemById selectLessonItemById train_lesson train_lesson, train_plan_course, train_course, train_teacher, train_classroom_info, train_training_site NONE VERIFIED_FROM_SOURCE DEFINED_IN_UI_API_ONLY ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/lessons/{lessonId} PUT Train update SchedulingAppService.updateLesson TrainLessonMapper.updateTrainLesson updateTrainLesson train_lesson train_lesson train_lesson VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/lessons/{lessonId} DELETE Train cancel SchedulingAppService.cancelLesson TrainLessonMapper.deleteTrainLessonByLessonId deleteTrainLessonByLessonId train_lesson train_lesson train_lesson VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/lessons/check-conflict POST Train checkConflict SchedulingAppService.checkConflict TrainLessonMapper.countTeacherConflicts countTeacherConflicts train_lesson train_lesson NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/lessons/scheduling-options GET Train getOptions SchedulingAppService.getSchedulingOptions TrainClassroomInfoMapper.selectTrainClassroomInfoList selectTrainClassroomInfoList train_classroom_info train_classroom_info, train_training_site, train_teacher NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/plans/{planId}/timetable GET Train getTimetable SchedulingAppService.getTimetable TrainLessonMapper.selectScheduleLessonsByPlanId selectScheduleLessonsByPlanId train_lesson train_lesson, train_plan_course, train_course, train_teacher, train_classroom_info, train_training_site NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/enrollments/{enrollmentId}/report POST Train report ITrainClassReportService.reportEnrollment TrainClassReportMapper.insertTrainClassReport insertTrainClassReport train_class_report train_enrollment, train_class_plan train_class_report VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/report/list GET Train list ITrainClassReportService.selectTrainClassReportList TrainClassReportMapper.selectTrainClassReportList selectTrainClassReportList train_class_report train_class_report, train_enrollment, train_student, train_class_plan NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/checkin/list GET Train list ITrainStudentCheckinService.selectTrainStudentCheckinList TrainStudentCheckinMapper.selectTrainStudentCheckinList selectTrainStudentCheckinList train_student_checkin train_student_checkin, train_student, train_lesson NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/attendance/lessons/{lessonId}/checkins GET Train getLessonRoster AttendanceAppService.getLessonRoster TrainStudentCheckinMapper.selectCheckinsByLessonId selectCheckinsByLessonId train_student_checkin train_student_checkin, train_enrollment, train_student NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/attendance/sign-in POST Train signIn AttendanceAppService.signIn TrainStudentCheckinMapper.insertTrainStudentCheckin insertTrainStudentCheckin train_student_checkin train_student_checkin train_student_checkin VERIFIED_FROM_SOURCE DEFINED_IN_UI_API_ONLY ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/attendance/sign-out POST Train signOut AttendanceAppService.signOut TrainStudentCheckinMapper.updateTrainStudentCheckin updateTrainStudentCheckin train_student_checkin train_student_checkin train_student_checkin VERIFIED_FROM_SOURCE DEFINED_IN_UI_API_ONLY ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/attendance/proxy-checkin POST Train signIn AttendanceAppService.signIn TrainStudentCheckinMapper.insertTrainStudentCheckin insertTrainStudentCheckin train_student_checkin train_student_checkin train_student_checkin VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/attendance/mark-absent POST Train markAbsence AttendanceAppService.markAbsence TrainStudentCheckinMapper.insertTrainStudentCheckin insertTrainStudentCheckin train_student_checkin train_student_checkin train_student_checkin VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/attendance/adjust PUT Train adjust AttendanceAppService.adjust TrainStudentCheckinMapper.updateTrainStudentCheckin updateTrainStudentCheckin train_student_checkin train_student_checkin train_student_checkin VERIFIED_FROM_SOURCE DEFINED_IN_UI_API_ONLY ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/dormitory/list GET Train list ITrainDormitoryInfoService.selectTrainDormitoryInfoList TrainDormitoryInfoMapper.selectTrainDormitoryInfoList selectTrainDormitoryInfoList train_dormitory_info train_dormitory_info NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/dormitory/{dormId} GET Train getInfo ITrainDormitoryInfoService.selectTrainDormitoryInfoByDormId TrainDormitoryInfoMapper.selectTrainDormitoryInfoByDormId selectTrainDormitoryInfoByDormId train_dormitory_info train_dormitory_info NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/dormitory POST Train add ITrainDormitoryInfoService.insertTrainDormitoryInfo TrainDormitoryInfoMapper.insertTrainDormitoryInfo insertTrainDormitoryInfo train_dormitory_info NONE train_dormitory_info VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/dormitory PUT Train edit ITrainDormitoryInfoService.updateTrainDormitoryInfo TrainDormitoryInfoMapper.updateTrainDormitoryInfo updateTrainDormitoryInfo train_dormitory_info train_dormitory_info train_dormitory_info VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/dormitory/{dormIds} DELETE Train remove ITrainDormitoryInfoService.deleteTrainDormitoryInfoByDormIds TrainDormitoryInfoMapper.deleteTrainDormitoryInfoByDormIds deleteTrainDormitoryInfoByDormIds train_dormitory_info train_dormitory_info train_dormitory_info VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/accommodation/list GET Train list ITrainAccommodationService.selectTrainAccommodationList TrainAccommodationMapper.selectTrainAccommodationList selectTrainAccommodationList train_accommodation train_accommodation, train_dormitory_info, train_student NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/accommodation/{accommodationId} GET Train getInfo ITrainAccommodationService.selectTrainAccommodationByAccommodationId TrainAccommodationMapper.selectTrainAccommodationByAccommodationId selectTrainAccommodationByAccommodationId train_accommodation train_accommodation, train_dormitory_info, train_student NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/accommodation/enrollment/{enrollmentId} GET Train getByEnrollment ITrainAccommodationService.selectTrainAccommodationByEnrollmentId TrainAccommodationMapper.selectTrainAccommodationByEnrollmentId selectTrainAccommodationByEnrollmentId train_accommodation train_accommodation, train_dormitory_info, train_student NONE VERIFIED_FROM_SOURCE DEFINED_IN_UI_API_ONLY ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/accommodation/enrollment/{enrollmentId}/history GET Train getHistory ITrainAccommodationService.selectAccommodationHistory TrainAccommodationMapper.selectAccommodationHistory selectAccommodationHistory train_accommodation train_accommodation, train_dormitory_info, train_student NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/accommodation POST Train add ITrainAccommodationService.insertTrainAccommodation TrainAccommodationMapper.insertTrainAccommodation insertTrainAccommodation train_accommodation train_accommodation, train_dormitory_info train_accommodation, train_dormitory_info VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/accommodation/{accommodationId}/checkin POST Train checkin ITrainAccommodationService.checkinAccommodation TrainAccommodationMapper.updateTrainAccommodation updateTrainAccommodation train_accommodation train_accommodation, train_dormitory_info train_accommodation, train_dormitory_info VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/accommodation/{accommodationId}/checkout POST Train checkout ITrainAccommodationService.checkoutAccommodation TrainAccommodationMapper.updateTrainAccommodation updateTrainAccommodation train_accommodation train_accommodation, train_dormitory_info train_accommodation, train_dormitory_info VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/accommodation/{accommodationId}/transfer POST Train transfer ITrainAccommodationService.transferAccommodation TrainAccommodationMapper.updateTrainAccommodation updateTrainAccommodation train_accommodation train_accommodation, train_dormitory_info train_accommodation, train_dormitory_info VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/accommodation/{accommodationIds} DELETE Train remove ITrainAccommodationService.deleteTrainAccommodationByAccommodationIds TrainAccommodationMapper.deleteTrainAccommodationByAccommodationIds deleteTrainAccommodationByAccommodationIds train_accommodation train_accommodation train_accommodation, train_dormitory_info VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/score/list GET Train list ITrainScoreInfoService.selectTrainScoreInfoList TrainScoreInfoMapper.selectTrainScoreInfoList selectTrainScoreInfoList train_score_info train_score_info, train_student, train_course NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/score/{scoreId} GET Train getInfo ITrainScoreInfoService.selectTrainScoreInfoByScoreId TrainScoreInfoMapper.selectTrainScoreInfoByScoreId selectTrainScoreInfoByScoreId train_score_info train_score_info, train_student, train_course NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/score POST Train add ITrainScoreInfoService.insertTrainScoreInfo TrainScoreInfoMapper.insertTrainScoreInfo insertTrainScoreInfo train_score_info NONE train_score_info VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/score PUT Train edit ITrainScoreInfoService.updateTrainScoreInfo TrainScoreInfoMapper.updateTrainScoreInfo updateTrainScoreInfo train_score_info train_score_info train_score_info VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/score/{scoreIds} DELETE Train remove ITrainScoreInfoService.deleteTrainScoreInfoByScoreIds TrainScoreInfoMapper.deleteTrainScoreInfoByScoreIds deleteTrainScoreInfoByScoreIds train_score_info train_score_info train_score_info VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/analysis/dashboard/overview GET Train getDashboardOverview ITrainAnalysisService.getDashboardOverview TrainAnalysisMapper.selectDashboardOverview selectDashboardOverview train_class_plan train_class_plan, train_enrollment, train_lesson, train_student_checkin, train_accommodation NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/analysis/dashboard/charts GET Train getDashboardCharts ITrainAnalysisService.getDashboardCharts TrainAnalysisMapper.selectDashboardCharts selectDashboardCharts train_class_plan train_class_plan, train_enrollment, train_lesson, train_student_checkin, train_accommodation NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/analysis/attendance/summary GET Train getAttendanceSummary ITrainAnalysisService.getAttendanceSummary TrainAnalysisMapper.selectAttendanceSummary selectAttendanceSummary train_student_checkin train_student_checkin, train_lesson, train_class_plan NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/analysis/attendance/charts GET Train getAttendanceCharts ITrainAnalysisService.getAttendanceCharts TrainAnalysisMapper.selectAttendanceCharts selectAttendanceCharts train_student_checkin train_student_checkin, train_lesson, train_class_plan NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/analysis/portrait/student-360/{studentId} GET Train getStudent360 ITrainAnalysisService.getStudent360 TrainAnalysisMapper.selectStudent360 selectStudent360 train_student train_student, train_enrollment, train_student_checkin, train_score_info, train_study_duration NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/access/mapping/list GET Train getDormMapping IExternalResourceMappingService.getActiveRoomMapping TrainExternalResourceMappingMapper.selectTrainExternalResourceMappingList selectTrainExternalResourceMappingList train_external_resource_mapping train_external_resource_mapping, train_dormitory_info NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/access/auth/list GET Train listAuth ITrainDormAuthService.selectTrainDormAuthList TrainDormAuthMapper.selectTrainDormAuthList selectTrainDormAuthList train_dorm_auth train_dorm_auth, train_accommodation, train_student NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/access/operation/list GET Train getOperationHistory IExternalOperationService.listOperationsByDoorAuthId TrainExternalOperationMapper.selectTrainExternalOperationList selectTrainExternalOperationList train_external_operation train_external_operation NONE VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/access/capability GET Train getCapabilities N/A (配置与只读状态) NONE NONE N/A (配置与常量) NONE NONE VERIFIED_FROM_SOURCE DEFINED_IN_UI_API_ONLY ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/access/issue POST Train issueCredential AccessAuthorizationOrchestrator.issueAuthorization TrainDormAuthMapper.updateTrainDormAuth updateTrainDormAuth train_dorm_auth train_dorm_auth, train_accommodation train_dorm_auth, train_external_operation VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BLOCKED_EXTERNAL)
/train/access/revoke POST Train revokeAuth AccessAuthorizationOrchestrator.revokeAuthorization TrainDormAuthMapper.updateTrainDormAuth updateTrainDormAuth train_dorm_auth train_dorm_auth, train_accommodation train_dorm_auth, train_external_operation VERIFIED_FROM_SOURCE VERIFIED_USED_BY_UI ENDPOINT_DEFINED (BLOCKED_EXTERNAL)
/train/binding/teachers/bindable-users GET Train getTeacherBindableUsers TrainAccountBindingAdminService.selectBindableUsers SysUserMapper.selectUserList selectUserList sys_user sys_user, train_teacher, train_student NONE VERIFIED_FROM_SOURCE NOT_FOUND_IN_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/binding/teachers/{teacherId}/bind POST Train bindTeacherUser TrainAccountBindingAdminService.bindTeacherAccount TrainTeacherMapper.updateTrainTeacher updateTrainTeacher train_teacher sys_user, train_teacher train_teacher VERIFIED_FROM_SOURCE NOT_FOUND_IN_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/binding/students/bindable-users GET Train getStudentBindableUsers TrainAccountBindingAdminService.selectBindableUsers SysUserMapper.selectUserList selectUserList sys_user sys_user, train_teacher, train_student NONE VERIFIED_FROM_SOURCE NOT_FOUND_IN_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)
/train/binding/students/{studentId}/bind POST Train bindStudentUser TrainAccountBindingAdminService.bindStudentAccount TrainStudentMapper.updateTrainStudent updateTrainStudent train_student sys_user, train_student train_student VERIFIED_FROM_SOURCE NOT_FOUND_IN_UI ENDPOINT_DEFINED (BACKEND_IMPLEMENTED)

2. 统计汇总与一致性强制检查 (Task F & Task G)

2.1 端点数量与结构化审计指标

  • 内部业务端点总数 (INTERNAL_API_COUNT):107 个
  • 唯一端点标识 (UNIQUE_METHOD_PATH_COUNT):107 项(以 METHOD + PATH 为联合主键,0 冲突,0 重复记录)

2.2 数据库调用链追踪分布 (LINEAGE_STATUS)

  • 源码逐项验证通过 (API_DB_LINEAGE_VERIFIED_COUNT):107 个 (100% 经 Controller → Service → Mapper → XML 链路追踪验证)
  • 规则启发式推导 (API_DB_LINEAGE_HEURISTIC_COUNT):0 个 (彻底清零规则推导,全部端点均具备源码定位凭据)
  • 未经证实猜测量 (API_DB_LINEAGE_UNVERIFIED_COUNT):0 个
  • 已知表名纠偏完成:
    • 彻底纠偏历史文档中的 train_plan 误称,物理主表统一修正为实际数据库表名 train_class_plan;
    • 彻底核验 train_student_portrait 为真实物理业务表(定义于 004_rebuild_business_tables.sql,由 010_verify.sql 强断言)。

2.3 前端调用状态分布 (USED_BY_UI 基于 build_ui/ 扫描)

  • VERIFIED_USED_BY_UI:92 项(在 build_ui/src/views/ 页面中实际被用户交互触发)
  • DEFINED_IN_UI_API_ONLY:11 项(在 build_ui/src/api/ 中已封装接口,但页面视图暂未直接引用)
  • NOT_FOUND_IN_UI:4 项(纯管理端底层端点,前端未声明:教师/学员账号手工绑定与候选人过滤接口)

2.4 四类 API 边界范围确立 (API Scope Definition — 概念分离)

  1. CUSTOM_TRAIN_BUSINESS_API (RailwaySystem 自研培训业务端点):107 个
    • 涵盖开班、排课、学员、考勤、报到、住宿、成绩与画像全生命周期;
  2. RUOYI_PLATFORM_API (RuoYi 底座系统平台端点):95 个
    • 涵盖 /login、/captchaImage、/system/user/*、/system/role/*、/system/menu/*、/system/dict/*、/monitor/* 等通用平台能力;
  3. CLIENT_PROVIDED_API (甲方沈阳房建公寓段向项目交付的外部接口契约):27 个
  4. DMS_VENDOR_API (由第三方 DMS 物联网厂商托管运营的接口):27 个
    • 实际运行于厂商 IoT 云管平台,与甲方交付契约完全对齐;
  5. MOCK_ONLY_INTERFACE (纯本地模拟桩接口):1 个
    • 电子班牌硬件数据推送。

2.5 数据库与 API 调用链强制一致性检查 (Task G)

  • LINEAGE_TABLE_NOT_IN_DATABASE_CATALOG:0 项(所有 API 引用的表均存在于 03 数据库总账中)
  • DATABASE_TABLE_NOT_REFERENCED_BY_ANY_API:5 项
    • 说明:train_course_resource、train_electronic_board、train_resource、train_score_item、train_student_score 5 张表暂未暴露于当前 107 个内部 HTTP API 中(如电子班牌由独立控制器处理,成绩 V2 细粒度表等待 C03 成绩闭环对接);
  • UNKNOWN_TABLE_REFERENCES:0 项(无任何未识别或猜测表名引用)
  • API_DB_LINEAGE_FREEZE:YES