kindergarten_java/reading-platform-frontend/src/api/package.ts
En 6e11c874d2 chore: 忽略 target 目录和 .class 文件
- 添加 target/ 到 .gitignore
- 从 git 暂存区移除已追踪的 target 目录

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 16:50:54 +08:00

138 lines
3.2 KiB
TypeScript

import { http } from './index';
// ==================== 套餐管理 ====================
export interface CoursePackage {
id: number;
name: string;
description?: string;
price: number;
discountPrice?: number;
discountType?: string;
gradeLevels: string[];
status: string;
courseCount: number;
tenantCount: number;
createdAt: string;
publishedAt?: string;
courses?: PackageCourse[];
}
export interface PackageCourse {
packageId: number;
courseId: number;
gradeLevel: string;
sortOrder: number;
course: {
id: number;
name: string;
coverImagePath?: string;
duration?: number;
gradeTags?: string;
};
}
export interface PackageListParams {
status?: string;
pageNum?: number;
pageSize?: number;
}
export interface CreatePackageData {
name: string;
description?: string;
price: number;
discountPrice?: number;
discountType?: string;
gradeLevels: string[];
}
// 获取套餐列表
export function getPackageList(params?: PackageListParams) {
return http.get('/v1/admin/packages', { params });
}
// 获取套餐详情
export function getPackageDetail(id: number) {
return http.get(`/v1/admin/packages/${id}`);
}
// 创建套餐
export function createPackage(data: CreatePackageData) {
return http.post('/v1/admin/packages', data);
}
// 更新套餐
export function updatePackage(id: number, data: Partial<CreatePackageData>) {
return http.put(`/v1/admin/packages/${id}`, data);
}
// 删除套餐
export function deletePackage(id: number) {
return http.delete(`/v1/admin/packages/${id}`);
}
// 设置套餐课程
export function setPackageCourses(
packageId: number,
courses: { courseId: number; gradeLevel: string; sortOrder?: number }[],
) {
return http.put(`/v1/admin/packages/${packageId}/courses`, { courses });
}
// 添加课程到套餐
export function addCourseToPackage(
packageId: number,
data: { courseId: number; gradeLevel: string; sortOrder?: number },
) {
return http.post(`/v1/admin/packages/${packageId}/courses`, data);
}
// 从套餐移除课程
export function removeCourseFromPackage(packageId: number, courseId: number) {
return http.delete(`/v1/admin/packages/${packageId}/courses/${courseId}`);
}
// 提交审核
export function submitPackage(id: number) {
return http.post(`/v1/admin/packages/${id}/submit`);
}
// 审核套餐
export function reviewPackage(id: number, data: { approved: boolean; comment?: string }) {
return http.post(`/v1/admin/packages/${id}/review`, data);
}
// 发布套餐
export function publishPackage(id: number) {
return http.post(`/v1/admin/packages/${id}/publish`);
}
// 下架套餐
export function offlinePackage(id: number) {
return http.post(`/v1/admin/packages/${id}/offline`);
}
// ==================== 学校端套餐 ====================
export interface TenantPackage {
id: number;
tenantId: number;
packageId: number;
startDate: string;
endDate: string;
status: string;
pricePaid: number;
package: CoursePackage;
}
// 获取学校已授权套餐
export function getTenantPackages() {
return http.get('/v1/school/packages');
}
// 续订套餐
export function renewPackage(packageId: number, data: { endDate: string; pricePaid?: number }) {
return http.post(`/v1/school/packages/${packageId}/renew`, data);
}