teacher.js 4.64 KB
/*
 * @Date: 2025-06-23 11:46:21
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2025-11-10 10:56:17
 * @FilePath: /mlaj/src/api/teacher.js
 * @Description: 文件描述
 */
import { fn, fetch } from './fn'

const Api = {
  TEACHER_GRADE_CLASS_LIST: '/srv/?a=user&t=teacher_grade_class_group_list',
  TEACHER_FIND_SETTINGS: '/srv/?a=task&t=teacher_find_settings',
  TEACHER_ADD_TASK: '/srv/?a=task&t=teacher_add',
  STUDENT_LIST: '/srv/?a=user&t=student_list',
  STUDENT_DETAIL: '/srv/?a=user&t=student_detail',
  STUDENT_STAT: '/srv/?a=user&t=student_stat',
  STUDENT_CHECKIN_LIST: '/srv/?a=checkin&t=student_checkin_list',
  STUDENT_UPLOAD_LIST: '/srv/?a=checkin&t=student_upload_list',
  STUDENT_CHECKIN_FEEDBACK_LIST: '/srv/?a=feedback&t=list',
  ADD_CHECKIN_FEEDBACK: '/srv/?a=feedback&t=add',
  DEL_CHECKIN_FEEDBACK: '/srv/?a=feedback&t=del',
}

/**
 * 获取老师的年级、班级、课程列表信息
 * @param {*} group_id 课程ID,用来缩小大分组的筛选范围
 * @param {*} team_id 大分组ID,用来缩小大分组的筛选范围
 * @returns {Object} data { grade_list [{id, grade_name}], class_list [{id, class_name}], group_list [{id, title}], team_list [{id, team_name}], subteam_list [{id, subteam_name}] }
 */
export const getTeacherGradeClassListAPI = (params) => fn(fetch.get(Api.TEACHER_GRADE_CLASS_LIST, params))

/**
 * 获取老师查询作业参数
 * @returns {Object} data { group_list [{id, title, schedule_list[{id, title}], team_list[{id, team_name, subteam_list[{id, subteam_name}]}]}], task_type, task_frequency }
 */
export const getTeacherFindSettingsAPI = (params) => fn(fetch.get(Api.TEACHER_FIND_SETTINGS, params))


/**
 * 老师设置作业
 * @param {*} title 作业名称
 * @param {*} begin_date 开始日期
 * @param {*} end_date 结束日期
 * @param {*} target_number 目标总数
 * @param {*} class_id 班级ID
 * @param {*} group_id 年级ID
 * @param {*} lesson_id 课程ID
 * @param {*} task_type 任务类型
 * @param {*} cycle 作业周期, 0=本周期 30=每月 7=每周 1=每日
 * @param {*} frequency 每周期提交数量
 * @param {*} attachment_type 提交类型, text=文本 image=图片 video=视频 audio=音频
 * @param {*} target_number 目标总数
 * @param {*} schedule[{id, begin_date, end_date}] 批量设置课程章节的作业
 * @returns {Object} data { id }
 */
export const setTeacherTaskAPI = (params) => fn(fetch.post(Api.TEACHER_ADD_TASK, params))

/**
 * 获取学员列表
 * @param {*} grade_id 年级ID
 * @param {*} class_id 班级ID
 * @param {*} keyword 搜索
 * @param {*} limit
 * @param {*} page
 * @returns {Object} data { count, user_list[{id, name, avatar, mobile, class_list[{id, class_name}], last_checkin_time, last_checkin_time_desc}] }
 */
export const getStudentListAPI = (params) => fn(fetch.get(Api.STUDENT_LIST, params))

/**
 * 获取学员详情
 * @param {*} i 学员ID
 * @returns {Object} data { id, name, avatar, mobile, grade_list[{id, grade_name, class_list[{id, class_name}]}], lesson_list[{id, title}] }
 */
export const getStudentDetailAPI = (params) => fn(fetch.get(Api.STUDENT_DETAIL, params))

/**
 * 获取学员打卡统计
 * @param {*} user_id 学员ID
 * @param {*} group_id 课程ID
 * @param {*} limit 条数
 * @param {*} page 页码
 * @returns {Object} data { date, time, serial_number, status }
 */
export const getStudentCheckinListAPI = (params) => fn(fetch.get(Api.STUDENT_CHECKIN_LIST, params))

/**
 * 获取学员作业记录
 * @param {*} user_id 学员ID
 * @param {*} group_id 课程ID
 * @param {*} limit 条数
 * @param {*} page 页码
 * @returns {Object} data
 */
export const getStudentUploadListAPI = (params) => fn(fetch.get(Api.STUDENT_UPLOAD_LIST, params))

/**
 * 获取老师点评列表
 * @param {*} user_id 学员ID
 * @param {*} group_id 课程ID
 * @param {*} limit 条数
 * @param {*} page 页码
 * @returns {Object} data
 */
export const getCheckinFeedbackListAPI = (params) => fn(fetch.get(Api.STUDENT_CHECKIN_FEEDBACK_LIST, params))

/**
 * 老师点评
 * @param {*} checkin_id 打卡ID
 * @param {*} note 点评内容
 * @param {*} rate 点评分数
 * @returns {Object} data { id }
 */
export const addCheckinFeedbackAPI = (params) => fn(fetch.post(Api.ADD_CHECKIN_FEEDBACK, params))

/**
 * 老师删除点评
 * @param {*} id 点评ID
 * @returns {Object} data { id }
 */
export const delCheckinFeedbackAPI = (params) => fn(fetch.post(Api.DEL_CHECKIN_FEEDBACK, params))

/**
 * 学员学习数据
 * @param {*} i 学员ID
 * @param {*} group_id 课程ID
 * @returns {Object} data { need_checkin_count, real_checkin_count, need_upload_count, real_upload_count }
 */
export const getStudentStatAPI = (params) => fn(fetch.post(Api.STUDENT_STAT, params))