video curcse
All checks were successful
Deploy to Server / deploy (push) Successful in 36s

This commit is contained in:
jeremygan2021
2026-02-27 14:22:02 +08:00
parent 27dcbef7d5
commit 4f632defde
6 changed files with 9 additions and 3 deletions

View File

@@ -211,11 +211,13 @@ class VCCourseSerializer(serializers.ModelSerializer):
return True
# 检查是否已购买/报名 (通过已支付的订单)
return Order.objects.filter(
has_order = Order.objects.filter(
wechat_user=user,
course=obj,
status__in=['paid', 'shipped', 'completed']
).exists()
return has_order
def get_is_purchased(self, obj):
return self._check_purchased(obj)

View File

@@ -31,7 +31,7 @@ export const getServices = () => api.get('/services/');
export const getServiceDetail = (id) => api.get(`/services/${id}/`);
export const createServiceOrder = (data) => api.post('/service-orders/', data);
export const getVCCourses = () => api.get('/courses/');
export const getVCCourseDetail = (id) => api.get(`/courses/${id}/`);
export const getVCCourseDetail = (id) => api.get(`/courses/${id}/`, { params: { _t: Date.now() } });
export const enrollCourse = (data) => api.post('/course-enrollments/', data);
export const sendSms = (data) => api.post('/auth/send-sms/', data);

View File

@@ -68,6 +68,7 @@ const VCCourseDetail = () => {
const fetchDetail = async () => {
try {
const response = await getVCCourseDetail(id);
console.log('Course detail:', response.data);
setCourse(response.data);
} catch (error) {
console.error("Failed to fetch course detail:", error);

View File

@@ -28,7 +28,7 @@ export const createServiceOrder = (data: any) => {
// VB Courses
export const getVBCourses = () => request({ url: '/courses/' })
export const getVBCourseDetail = (id: number) => request({ url: `/courses/${id}/` })
export const getVBCourseDetail = (id: number) => request({ url: `/courses/${id}/?_t=${Date.now()}` })
// Distributor
export const distributorRegister = (data: any) => {

View File

@@ -118,6 +118,7 @@
font-size: 32px;
margin-bottom: 30px;
font-weight: bold;
text-align: center;
}
.btn-unlock {

View File

@@ -20,7 +20,9 @@ export default function CourseDetail() {
const fetchDetail = async (id: string) => {
try {
// Add timestamp to prevent caching
const res: any = await getVBCourseDetail(Number(id))
console.log('Course detail:', res)
setDetail(res)
} catch (err) {
console.error(err)