0, 'msg' => '操作失败', 'data' => [] ]; try { // 准备插入数据 $insertData = [ 'name' => $data['name'], 'gender' => $data['gender'], 'age' => $data['age'], 'birthday' => $data['birthday'], 'user_id' => $data['user_id'], 'campus_id' => $data['campus_id'], 'class_id' => $data['class_id'], 'note' => $data['note'], 'status' => $data['status'], 'emergency_contact' => $data['emergency_contact'], 'contact_phone' => $data['contact_phone'], 'member_label' => $data['member_label'], 'consultant_id' => $data['consultant_id'], 'coach_id' => $data['coach_id'], 'trial_class_count' => $data['trial_class_count'], 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'), 'deleted_at' => 0 ]; // 插入数据库 $id = Db::table('school_student')->insertGetId($insertData); if ($id) { $res['code'] = 1; $res['msg'] = '添加成功'; $res['data'] = ['id' => $id]; } else { $res['msg'] = '添加失败'; } } catch (\Exception $e) { $res['msg'] = '添加失败:' . $e->getMessage(); } return $res; } /** * 获取学员列表 * @param array $data * @return array */ public function getList(array $data) { $res = [ 'code' => 0, 'msg' => '操作失败', 'data' => [] ]; try { $where = []; $where[] = ['deleted_at', '=', 0]; if (!empty($data['user_id'])) { $where[] = ['user_id', '=', $data['user_id']]; } if (!empty($data['parent_resource_id'])) { $where[] = ['user_id', '=', $data['parent_resource_id']]; } if (!empty($data['campus_id'])) { $where[] = ['campus_id', '=', $data['campus_id']]; } if (!empty($data['status'])) { $where[] = ['status', '=', $data['status']]; } $list = Db::table('school_student') ->where($where) ->order('created_at', 'desc') ->select() ->toArray(); // 为每个学员添加到访情况信息 foreach ($list as &$student) { // 查询该学员的课程安排记录,按日期排序获取一访和二访信息 $visitRecords = Db::table('school_person_course_schedule') ->where([ ['person_id', '=', $student['id']], ['person_type', '=', 'student'] ]) ->order('course_date', 'asc') ->select() ->toArray(); // 初始化到访信息 $student['first_visit_time'] = ''; $student['second_visit_time'] = ''; $student['first_visit_status'] = '未到访'; $student['second_visit_status'] = '未到访'; // 设置一访和二访信息 if (!empty($visitRecords)) { if (isset($visitRecords[0])) { $student['first_visit_time'] = $visitRecords[0]['course_date']; $student['first_visit_status'] = '已到访'; } if (isset($visitRecords[1])) { $student['second_visit_time'] = $visitRecords[1]['course_date']; $student['second_visit_status'] = '已到访'; } } // 保留原始访问记录数据供前端使用 $student['visit_records'] = $visitRecords; } $res['code'] = 1; $res['data'] = $list; } catch (\Exception $e) { $res['msg'] = '获取失败:' . $e->getMessage(); } return $res; } }