更新后台管理系统,实现团课管理基础显示
This commit is contained in:
@@ -0,0 +1,245 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// ==================== 团课课程 ====================
|
||||
|
||||
export interface GroupCourse {
|
||||
id?: number
|
||||
courseName: string
|
||||
coachId?: number
|
||||
courseType?: number
|
||||
startTime: string
|
||||
endTime: string
|
||||
maxMembers?: number
|
||||
currentMembers?: number
|
||||
status?: string
|
||||
actualStartTime?: string
|
||||
actualEndTime?: string
|
||||
location?: string
|
||||
coverImage?: string
|
||||
description?: string
|
||||
storedValueAmount?: number
|
||||
qrCodePath?: string
|
||||
createBy?: string
|
||||
updateBy?: string
|
||||
createdAt?: string
|
||||
updatedAt?: string
|
||||
}
|
||||
|
||||
export interface GroupCoursePageRequest {
|
||||
page: number
|
||||
size: number
|
||||
keyword?: string
|
||||
status?: string
|
||||
courseType?: number
|
||||
coachId?: number
|
||||
startTime?: string
|
||||
endTime?: string
|
||||
sortBy?: string
|
||||
sortOrder?: 'asc' | 'desc'
|
||||
}
|
||||
|
||||
export interface PageResponse<T> {
|
||||
content: T[]
|
||||
totalElements: number
|
||||
totalPages: number
|
||||
size: number
|
||||
number: number
|
||||
first: boolean
|
||||
last: boolean
|
||||
}
|
||||
|
||||
export const groupCourseApi = {
|
||||
getAll: () =>
|
||||
request.get<GroupCourse[]>('/groupCourse/list'),
|
||||
|
||||
getPage: (params: GroupCoursePageRequest) =>
|
||||
request.post<PageResponse<GroupCourse>>('/groupCourse/page', params),
|
||||
|
||||
getById: (id: number) =>
|
||||
request.get<GroupCourse>(`/groupCourse/${id}`),
|
||||
|
||||
getDetailById: (id: number) =>
|
||||
request.get<GroupCourse>(`/groupCourse/${id}/detail`),
|
||||
|
||||
create: (data: GroupCourse) =>
|
||||
request.post<GroupCourse>('/groupCourse', data),
|
||||
|
||||
update: (id: number, data: GroupCourse) =>
|
||||
request.put<GroupCourse>(`/groupCourse/${id}`, data),
|
||||
|
||||
delete: (id: number) =>
|
||||
request.delete<void>(`/groupCourse/${id}`),
|
||||
|
||||
cancel: (id: number) =>
|
||||
request.post<void>(`/groupCourse/${id}/cancel`),
|
||||
|
||||
search: (params: any) =>
|
||||
request.post<GroupCourse[]>('/groupCourse/search', params),
|
||||
}
|
||||
|
||||
// ==================== 团课类型 ====================
|
||||
|
||||
export interface GroupCourseType {
|
||||
id?: number
|
||||
typeName: string
|
||||
baseDifficulty?: number
|
||||
description?: string
|
||||
category?: string
|
||||
createBy?: string
|
||||
updateBy?: string
|
||||
createdAt?: string
|
||||
updatedAt?: string
|
||||
}
|
||||
|
||||
export const groupCourseTypeApi = {
|
||||
getAll: () =>
|
||||
request.get<GroupCourseType[]>('/groupCourse/types'),
|
||||
|
||||
search: (params: any) =>
|
||||
request.get<GroupCourseType[]>('/groupCourse/types/search', { params }),
|
||||
|
||||
getCategories: () =>
|
||||
request.get<string[]>('/groupCourse/types/categories'),
|
||||
|
||||
getByCategory: (category: string) =>
|
||||
request.get<GroupCourseType[]>(`/groupCourse/types/category/${category}`),
|
||||
|
||||
getById: (id: number) =>
|
||||
request.get<GroupCourseType>(`/groupCourse/types/${id}`),
|
||||
|
||||
create: (data: GroupCourseType) =>
|
||||
request.post<GroupCourseType>('/groupCourse/types', data),
|
||||
|
||||
update: (id: number, data: GroupCourseType) =>
|
||||
request.put<GroupCourseType>(`/groupCourse/types/${id}`, data),
|
||||
|
||||
delete: (id: number) =>
|
||||
request.delete<void>(`/groupCourse/types/${id}`),
|
||||
}
|
||||
|
||||
// ==================== 团课标签 ====================
|
||||
|
||||
export interface CourseLabel {
|
||||
id?: number
|
||||
labelName: string
|
||||
color?: string
|
||||
description?: string
|
||||
createBy?: string
|
||||
updateBy?: string
|
||||
createdAt?: string
|
||||
updatedAt?: string
|
||||
}
|
||||
|
||||
export const courseLabelApi = {
|
||||
getAll: () =>
|
||||
request.get<CourseLabel[]>('/groupCourse/labels'),
|
||||
|
||||
search: (params: any) =>
|
||||
request.get<CourseLabel[]>('/groupCourse/labels/search', { params }),
|
||||
|
||||
getById: (id: number) =>
|
||||
request.get<CourseLabel>(`/groupCourse/labels/${id}`),
|
||||
|
||||
getByTypeId: (typeId: number) =>
|
||||
request.get<CourseLabel[]>(`/groupCourse/types/${typeId}/labels`),
|
||||
|
||||
create: (data: CourseLabel) =>
|
||||
request.post<CourseLabel>('/groupCourse/labels', data),
|
||||
|
||||
update: (id: number, data: CourseLabel) =>
|
||||
request.put<CourseLabel>(`/groupCourse/labels/${id}`, data),
|
||||
|
||||
delete: (id: number) =>
|
||||
request.delete<void>(`/groupCourse/labels/${id}`),
|
||||
|
||||
addLabelsToType: (typeId: number, labelIds: number[]) =>
|
||||
request.post<void>(`/groupCourse/types/${typeId}/labels`, labelIds),
|
||||
|
||||
removeLabelFromType: (typeId: number, labelId: number) =>
|
||||
request.delete<void>(`/groupCourse/types/${typeId}/labels/${labelId}`),
|
||||
|
||||
clearLabelsFromType: (typeId: number) =>
|
||||
request.delete<void>(`/groupCourse/types/${typeId}/labels`),
|
||||
}
|
||||
|
||||
// ==================== 团课推荐 ====================
|
||||
|
||||
export interface GroupCourseRecommend {
|
||||
id?: number
|
||||
courseId: number
|
||||
recommendTitle?: string
|
||||
recommendContent?: string
|
||||
recommendReason?: string
|
||||
priority?: number
|
||||
isActive?: boolean
|
||||
createBy?: string
|
||||
updateBy?: string
|
||||
createdAt?: string
|
||||
updatedAt?: string
|
||||
}
|
||||
|
||||
export const groupCourseRecommendApi = {
|
||||
getAll: () =>
|
||||
request.get<GroupCourseRecommend[]>('/groupCourse/recommend/list'),
|
||||
|
||||
getActive: () =>
|
||||
request.get<GroupCourseRecommend[]>('/groupCourse/recommend/active'),
|
||||
|
||||
getById: (id: number) =>
|
||||
request.get<GroupCourseRecommend>(`/groupCourse/recommend/${id}`),
|
||||
|
||||
getByCourseId: (courseId: number) =>
|
||||
request.get<GroupCourseRecommend[]>(`/groupCourse/recommend/course/${courseId}`),
|
||||
|
||||
create: (data: GroupCourseRecommend) =>
|
||||
request.post<GroupCourseRecommend>('/groupCourse/recommend', data),
|
||||
|
||||
update: (id: number, data: GroupCourseRecommend) =>
|
||||
request.put<GroupCourseRecommend>(`/groupCourse/recommend/${id}`, data),
|
||||
|
||||
delete: (id: number) =>
|
||||
request.delete<void>(`/groupCourse/recommend/${id}`),
|
||||
|
||||
enable: (id: number) =>
|
||||
request.post<void>(`/groupCourse/recommend/${id}/enable`),
|
||||
|
||||
disable: (id: number) =>
|
||||
request.post<void>(`/groupCourse/recommend/${id}/disable`),
|
||||
}
|
||||
|
||||
// ==================== 团课预约 ====================
|
||||
|
||||
export interface GroupCourseBooking {
|
||||
id?: number
|
||||
courseId: number
|
||||
memberId: number
|
||||
memberCardId: number
|
||||
bookingTime?: string
|
||||
status?: string
|
||||
cancelTime?: string
|
||||
courseName?: string
|
||||
courseStartTime?: string
|
||||
courseEndTime?: string
|
||||
location?: string
|
||||
createBy?: string
|
||||
updateBy?: string
|
||||
createdAt?: string
|
||||
updatedAt?: string
|
||||
}
|
||||
|
||||
export const groupCourseBookingApi = {
|
||||
book: (data: GroupCourseBooking) =>
|
||||
request.post<GroupCourseBooking>('/groupCourse/book', data),
|
||||
|
||||
cancel: (bookingId: number) =>
|
||||
request.post<void>(`/groupCourse/booking/${bookingId}/cancel`),
|
||||
|
||||
getByMemberId: (memberId: number) =>
|
||||
request.get<GroupCourseBooking[]>(`/groupCourse/bookings/member/${memberId}`),
|
||||
|
||||
getByCourseId: (courseId: number) =>
|
||||
request.get<GroupCourseBooking[]>(`/groupCourse/bookings/course/${courseId}`),
|
||||
|
||||
getById: (bookingId: number) =>
|
||||
request.get<GroupCourseBooking>(`/groupCourse/bookings/${bookingId}`),
|
||||
}
|
||||
Reference in New Issue
Block a user