更新:课程详情的初步代码
This commit is contained in:
@@ -1,12 +1,19 @@
|
||||
// api/modules/course.ts
|
||||
import { createRequestClient } from '../request'
|
||||
import { SERVICE_MAP } from '../config'
|
||||
import type { IApiResponse } from '../types'
|
||||
import type {
|
||||
ICourseMedicalTreeResponse,
|
||||
IUserLateCourseListResponse,
|
||||
IMarketCourseListResponse
|
||||
IMarketCourseListResponse,
|
||||
ICourseDetailResponse,
|
||||
IChapterListResponse,
|
||||
IChapterDetailResponse,
|
||||
IProductListResponse,
|
||||
IVipInfo
|
||||
} from '@/types/course'
|
||||
import type { ISearchRequest, ISearchResponse } from '@/types/search'
|
||||
import type { ICommentListResponse, IAddCommentResponse, IComment } from '@/types/comment'
|
||||
|
||||
const client = createRequestClient({ baseURL: SERVICE_MAP.MAIN })
|
||||
|
||||
@@ -64,5 +71,175 @@ export const courseApi = {
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取课程详情
|
||||
* @param id 课程ID
|
||||
*/
|
||||
getCourseDetail(id: number) {
|
||||
return client.request<ICourseDetailResponse>({
|
||||
url: 'sociology/course/getCourseDetail',
|
||||
method: 'POST',
|
||||
data: { id }
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取目录章节列表
|
||||
* @param id 目录ID
|
||||
*/
|
||||
getCatalogueChapterList(id: number) {
|
||||
return client.request<IChapterListResponse>({
|
||||
url: 'sociology/course/getCourseCatalogueChapterList',
|
||||
method: 'POST',
|
||||
data: { id }
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取章节详情
|
||||
* @param id 章节ID
|
||||
*/
|
||||
getChapterDetail(id: number) {
|
||||
return client.request<IChapterDetailResponse>({
|
||||
url: 'sociology/course/getCourseCatalogueChapterDetail',
|
||||
method: 'POST',
|
||||
data: { id, load: false }
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 开始学习免费课程
|
||||
* @param catalogueId 目录ID
|
||||
*/
|
||||
startStudyForMF(catalogueId: number) {
|
||||
return client.request<IApiResponse>({
|
||||
url: 'sociology/course/startStudyForMF',
|
||||
method: 'POST',
|
||||
data: { catalogueId }
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取课程商品列表
|
||||
* @param id 目录ID
|
||||
*/
|
||||
getProductListForCourse(id: number) {
|
||||
return client.request<IProductListResponse>({
|
||||
url: 'sociology/product/getProductListForCourse',
|
||||
method: 'POST',
|
||||
data: { id }
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 检查目录是否支持复读
|
||||
* @param courseCatalogueId 目录ID
|
||||
*/
|
||||
checkRenewPayment(courseCatalogueId: number) {
|
||||
return client.request<IApiResponse<{ canRelearn: boolean }>>({
|
||||
url: 'common/courseRelearn/courseCatalogueCanRelearn',
|
||||
method: 'POST',
|
||||
data: { courseCatalogueId }
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取复读商品列表
|
||||
* @param catalogueId 目录ID
|
||||
*/
|
||||
getRenewProductList(catalogueId: number) {
|
||||
return client.request<IProductListResponse>({
|
||||
url: 'common/courseRelearn/relearnShopProductList',
|
||||
method: 'POST',
|
||||
data: { catalogueId }
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取课程留言列表
|
||||
* @param courseId 课程ID
|
||||
* @param page 页码
|
||||
* @param limit 每页数量
|
||||
* @param userId 用户ID
|
||||
*/
|
||||
getCourseComments(courseId: number, page: number, limit: number, userId: number) {
|
||||
return client.request<ICommentListResponse>({
|
||||
url: 'common/courseGuestbook/getCourseGuestbookList',
|
||||
method: 'POST',
|
||||
data: { courseId, page, limit, userId, chapterId: '' }
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 添加课程留言
|
||||
* @param data 留言数据
|
||||
*/
|
||||
addCourseComment(data: {
|
||||
type: number
|
||||
courseId: number
|
||||
chapterId: string
|
||||
pid: number
|
||||
userId: number
|
||||
forUserId: number
|
||||
content: string
|
||||
images: string
|
||||
}) {
|
||||
return client.request<IAddCommentResponse>({
|
||||
url: 'common/courseGuestbook/addCourseGuestbook',
|
||||
method: 'POST',
|
||||
data
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 点赞留言
|
||||
* @param userId 用户ID
|
||||
* @param guestbookId 留言ID
|
||||
*/
|
||||
likeComment(userId: number, guestbookId: number) {
|
||||
return client.request<IApiResponse>({
|
||||
url: 'common/courseGuestbook/addCourseGuestbookSupport',
|
||||
method: 'POST',
|
||||
data: { userId, guestbookId }
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 取消点赞
|
||||
* @param userId 用户ID
|
||||
* @param guestbookId 留言ID
|
||||
*/
|
||||
unlikeComment(userId: number, guestbookId: number) {
|
||||
return client.request<IApiResponse>({
|
||||
url: 'common/courseGuestbook/cancelCourseGuestbookSupport',
|
||||
method: 'POST',
|
||||
data: { userId, guestbookId }
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 检查用户VIP权益
|
||||
* @param courseId 课程ID
|
||||
*/
|
||||
checkCourseVip(courseId: number) {
|
||||
return client.request<IApiResponse<{ userVip: IVipInfo | null }>>({
|
||||
url: 'common/userVip/ownCourseCatalogueByVip',
|
||||
method: 'POST',
|
||||
data: { courseId }
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 获取课程需要的VIP类型
|
||||
* @param courseId 课程ID
|
||||
*/
|
||||
getCourseVipModule(courseId: number) {
|
||||
return client.request<IApiResponse<{ list: string[] }>>({
|
||||
url: 'common/userVip/getCourseVipModule',
|
||||
method: 'POST',
|
||||
data: { courseId }
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user