import { db, EnrollmentStatus, PostType } from "@nicestack/common"; // 更新课程评价统计 export async function updateCourseReviewStats(courseId: string) { const reviews = await db.post.findMany({ where: { courseId, type: PostType.COURSE_REVIEW, deletedAt: null }, select: { rating: true } }); const numberOfReviews = reviews.length; const averageRating = numberOfReviews > 0 ? reviews.reduce((sum, review) => sum + review.rating, 0) / numberOfReviews : 0; return db.course.update({ where: { id: courseId }, data: { numberOfReviews, averageRating } }); } // 更新课程注册统计 export async function updateCourseEnrollmentStats(courseId: string) { const completedEnrollments = await db.enrollment.count({ where: { courseId, status: EnrollmentStatus.COMPLETED } }); const totalEnrollments = await db.enrollment.count({ where: { courseId } }); const completionRate = totalEnrollments > 0 ? (completedEnrollments / totalEnrollments) * 100 : 0; return db.course.update({ where: { id: courseId }, data: { numberOfStudents: totalEnrollments, completionRate } }); }