From c8fa0c663af43667da623b2b2632e301b6f215d5 Mon Sep 17 00:00:00 2001 From: zeyan <258785420@qq.com> Date: Sat, 2 Aug 2025 15:16:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../student/CourseBookingController.php | 10 ++++++ .../service/api/student/StudentService.php | 3 ++ uniapp/api/apiRoute.js | 16 ++++++--- .../clue/class_arrangement_detail.vue | 2 +- uniapp/pages-student/course-booking/index.vue | 35 ++++++++++++------- 5 files changed, 47 insertions(+), 19 deletions(-) diff --git a/niucloud/app/api/controller/student/CourseBookingController.php b/niucloud/app/api/controller/student/CourseBookingController.php index bad30af5..9b72323d 100644 --- a/niucloud/app/api/controller/student/CourseBookingController.php +++ b/niucloud/app/api/controller/student/CourseBookingController.php @@ -33,6 +33,11 @@ class CourseBookingController extends BaseController ]); $data['student_id'] = $student_id; + // 验证student_id参数 + if (empty($student_id) || !is_numeric($student_id) || $student_id <= 0) { + return fail('学员ID参数无效'); + } + $this->validate($data, [ 'student_id' => 'require|integer|gt:0', 'date' => 'date', @@ -101,6 +106,11 @@ class CourseBookingController extends BaseController ]); $data['student_id'] = $student_id; + // 验证student_id参数 + if (empty($student_id) || !is_numeric($student_id) || $student_id <= 0) { + return fail('学员ID参数无效'); + } + $this->validate($data, [ 'student_id' => 'require|integer|gt:0', 'start_date' => 'date', diff --git a/niucloud/app/service/api/student/StudentService.php b/niucloud/app/service/api/student/StudentService.php index c43f72ab..e1e4f316 100644 --- a/niucloud/app/service/api/student/StudentService.php +++ b/niucloud/app/service/api/student/StudentService.php @@ -47,6 +47,9 @@ class StudentService extends BaseService $student['gender_text'] = $student['gender'] == 1 ? '男' : '女'; $student['headimg'] = $student['headimg'] ? get_image_url($student['headimg']) : ''; + // 添加student_id字段,确保前端能正确获取学员ID + $student['student_id'] = $student['id']; + // 获取学员课时统计信息 $courseStats = $this->getStudentCourseStats($student['id']); $student['course_stats'] = $courseStats; diff --git a/uniapp/api/apiRoute.js b/uniapp/api/apiRoute.js index 2bde8c3e..ce9cc247 100644 --- a/uniapp/api/apiRoute.js +++ b/uniapp/api/apiRoute.js @@ -843,11 +843,17 @@ export default { // 获取我的预约列表 async getMyBookingList(data = {}) { try { - const params = { - status: data.status, - start_date: data.start_date, - end_date: data.end_date - }; + // 过滤掉undefined值,避免传递"undefined"字符串 + const params = {}; + if (data.status !== undefined && data.status !== null && data.status !== '') { + params.status = data.status; + } + if (data.start_date !== undefined && data.start_date !== null && data.start_date !== '') { + params.start_date = data.start_date; + } + if (data.end_date !== undefined && data.end_date !== null && data.end_date !== '') { + params.end_date = data.end_date; + } const response = await http.get('/course-booking/my-list/' + data.student_id, params); diff --git a/uniapp/pages-market/clue/class_arrangement_detail.vue b/uniapp/pages-market/clue/class_arrangement_detail.vue index c070ade5..b5db8124 100644 --- a/uniapp/pages-market/clue/class_arrangement_detail.vue +++ b/uniapp/pages-market/clue/class_arrangement_detail.vue @@ -291,7 +291,7 @@ courseInfo = customer.course_info || []; } } - + console.log('客户资源详情:', res); this.presetStudent = { id: res.data.id, name: res.data.name, diff --git a/uniapp/pages-student/course-booking/index.vue b/uniapp/pages-student/course-booking/index.vue index 3b4f14f0..5db4e326 100644 --- a/uniapp/pages-student/course-booking/index.vue +++ b/uniapp/pages-student/course-booking/index.vue @@ -255,18 +255,17 @@ }, async loadStudentInfo() { - try { - // 模拟获取学员信息 - const mockStudentInfo = { - id: this.studentId, - name: '小明', - remaining_courses: 24, - total_courses: 48 - } - this.studentInfo = mockStudentInfo - } catch (error) { - console.error('获取学员信息失败:', error) - } + try { + // 调用真实API获取学员信息 + const response = await apiRoute.getStudentSummary(this.studentId) + if (response.code === 1) { + this.studentInfo = response.data + } else { + console.error('获取学员信息失败:', response) + } + } catch (error) { + console.error('获取学员信息失败:', error) + } }, generateDateList() { @@ -365,7 +364,17 @@ async loadMyBookings() { try { - console.log('加载我的预约') + console.log('加载我的预约, studentId:', this.studentId) + + // 验证studentId + if (!this.studentId || this.studentId <= 0) { + console.error('无效的studentId:', this.studentId) + uni.showToast({ + title: '学员ID无效', + icon: 'none' + }) + return + } // 调用真实API const response = await apiRoute.getMyBookingList({