// src/api/course-class.ts import { request } from '@/utils/request'; // --- 类型定义 --- // 【变更】班级基本信息 (用于列表显示,如 /class/course/{courseId} 返回的项) interface ClassBasicInfo { classId: string | number; // 【变更】根据后端示例 className: string; // 【变更】根据后端示例 // 如果后端在基本信息列表中还返回了其他字段,这里可以添加 // stuNumber?: number; // 如果列表也包含,可以加上 } // 课程基本信息 (保持不变,已根据课程返回值更新过) interface CourseBasicInfo { courseId: string | number; courseName: string; teacherIds: string[] | null; teacherPid: number; teacherNames: string[]; courseImages: string[] | null; targetGrade: string | null; startTime: string | null; endTime: string | null; createTime: string | null; description: string | null; } // 【变更】学生列表项的类型 interface StudentListItem { stuName: string; officialNumber: string; state: number; // 假设0或1代表某种状态 } // 【变更】班级详细信息(包含学生参与列表,如 /class/{classId} 返回的项) interface ClassDetailsInfo { classId: string | number; className: string; stuNumber: number; classTime: string; teacherId: string | number; studentList: StudentListItem[]; // 【变更】使用定义的学生列表项类型 } // --- API 接口封装 --- /** * 教师 - 查询所有创建课程 * GET /course/all/teacher?teacherPid={teacherPid} * @param teacherPid 教师ID */ export const getAllCoursesForTeacherApi = (teacherPid: string | number): Promise => { return request({ url: '/course/all/teacher', method: 'GET', params: { teacherPid } }); }; /** * 教师 - 根据课程id查找班级信息 (返回列表) * GET /class/course/{courseId} * @param courseId 课程ID */ export const getClassesByCourseIdApi = (courseId: string | number): Promise => { // 【变更】返回 ClassBasicInfo[] return request({ url: `/class/course/${courseId}`, method: 'GET' }); }; /** * 教师-获取自己创建的班级列表信息 * GET /class/teacher/{teacherId} * @param teacherId 教师ID */ export const getClassesByTeacherIdApi = (teacherId: string | number): Promise => { // 【变更】返回 ClassBasicInfo[] return request({ url: `/class/teacher/${teacherId}`, method: 'GET' }); }; /** * 教师学生-获取班级详细信息(包含学生参与列表) * GET /class/{classId} * @param classId 班级ID */ export const getClassDetailsApi = (classId: string | number): Promise => { // 【变更】返回 ClassDetailsInfo return request({ url: `/class/${classId}`, method: 'GET' }); };