course.js 3.81 KB
/*
 * @Date: 2025-04-15 09:32:07
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2025-10-21 16:37:51
 * @FilePath: /mlaj/src/api/course.js
 * @Description: 课程模块相关接口
 */
import { fn, fetch } from './fn'

const Api = {
  GET_COURSE_LIST: '/srv/?a=schedule&t=list',
  GET_COURSE_DETAIL: '/srv/?a=schedule&t=detail',
  GET_SCHEDULE_COURSE: '/srv/?a=schedule&t=course',
  GET_SCHEDULE_COMBINATION_LIST: '/srv/?a=schedule&t=combination_list',
  GET_GROUP_COMMENT_LIST: '/srv/?a=group_comment_list',
  GROUP_COMMENT_ADD: '/srv/?a=group_comment_add',
  GROUP_COMMENT_EDIT: '/srv/?a=group_comment_edit',
  GROUP_COMMENT_DEL: '/srv/?a=group_comment_del',
  GROUP_COMMENT_LIKE: '/srv/?a=group_comment_like',
  GROUP_COMMENT_DISLIKE: '/srv/?a=group_comment_dislike',
  GET_COURSE_BANNER: '/srv/?a=get_article_list&sn=BEHALOBANNER',
}

/**
 * @description: 获取课程列表
 * @param: page 页码
 * @param: limit 每页数量 默认10
 * @param: sn 类型 RMKC=热门课程 JXKC=精选课程
 * @return: data: [{ id, title, price, original_price, feature, highlights, count, cover}]
 */
export const  getCourseListAPI = (params) => fn(fetch.get(Api.GET_COURSE_LIST, params))

/**
 * @description: 获取课程详情
 * @param: i 课程 ID
 * @return: data: [{ id, title, price, original_price, feature, highlights, learning_goal, schedule}]
 * @return: schedule: [{ id, schedule_time, seq, title, duration}] 课程章节
 */
export const getCourseDetailAPI = (params) => fn(fetch.get(Api.GET_COURSE_DETAIL, params))

/**
 * @description: 获取特定学习课程的详情
 * @param: i 课程 ID
 * @return: data: [{ id, schedule_time, seq, title, duration, course_id, file}]
 */
export const getScheduleCourseAPI = (params) => fn(fetch.get(Api.GET_SCHEDULE_COURSE, params))

/**
 * @description: 获取课程组合列表
 * @param: id 课程 ID
 * @return: data: [{ id, title, price, original_price, feature, highlights, count, cover}]
 */
export const getScheduleCombinationListAPI = (params) => fn(fetch.get(Api.GET_SCHEDULE_COMBINATION_LIST, params))

/**
 * @description: 获取课程评论列表
 * @param: i 课程 ID
 * @param: schedule_id 章节ID,非必须,在课程章节内查询时需要
 * @param: limit 每页数量 默认10
 * @param: page 页码
 * @return: data: { comment_score 课程评论分数, comment_count 评论数量, comment_list [{ id 评论id, created_by 评论人ID, name 评论人姓名, note 评论内容, score 分数, create_time 评论时间}] 评论列表}
 */
export const getGroupCommentListAPI = (params) => fn(fetch.get(Api.GET_GROUP_COMMENT_LIST, params))

/**
 * @description: 添加课程评论
 * @param: i 课程 ID
 * @param: schedule_id 章节ID,非必须,在课程章节添加时需要
 * @param: note 评论内容
 * @param: score 分数
 * @return: data: ''
 */
export const addGroupCommentAPI = (params) => fn(fetch.post(Api.GROUP_COMMENT_ADD, params))

/**
 * @description: 编辑课程评论
 * @param: i 课程 ID
 * @param: note 评论内容
 * @param: score 分数
 * @return: data: ''
 */
export const editGroupCommentAPI = (params) => fn(fetch.post(Api.GROUP_COMMENT_EDIT, params))

/**
 * @description: 删除课程评论
 * @param: i 课程ID
 * @return: data: ''
 */
export const delGroupCommentAPI = (params) => fn(fetch.post(Api.GROUP_COMMENT_DEL, params))

/**
 * @description: 点赞章节评论
 * @param: i 评论ID
 * @return: data: ''
 */
export const addGroupCommentLikeAPI = (params) => fn(fetch.post(Api.GROUP_COMMENT_LIKE, params))

/**
 * @description: 取消点赞章节评论
 * @param: i 评论ID
 * @return: data: ''
 */
export const delGroupCommentLikeAPI = (params) => fn(fetch.post(Api.GROUP_COMMENT_DISLIKE, params))


/**
 * @description: 获取课程banner
 * @param {*} params
 * @returns
 */
export const getCourseBannerAPI = (params) => fn(fetch.get(Api.GET_COURSE_BANNER, params))