diff --git a/application/controllers/Home_search.php b/application/controllers/Home_search.php index 64fc12c3..3372b6c0 100755 --- a/application/controllers/Home_search.php +++ b/application/controllers/Home_search.php @@ -52,4 +52,29 @@ class Home_search extends EA_Controller $this->load->view('pages/home_search'); } + public function search_by_phone() + { + // 从POST请求中获取电话号码 + $input = json_decode(file_get_contents('php://input'), true); + $phoneNumber = isset($input['phone_number']) ? $input['phone_number'] : ''; + + if (empty($phoneNumber)) { + // 返回错误信息 + echo json_encode(['success' => false, 'message' => 'Invalid phone number']); + return; + } + + // 查询数据库中的预约信息 + $this->load->model('appointments_model'); + $appointments = $this->Appointment_model->get_appointments_by_phone($phoneNumber); + + if (!empty($appointments)) { + // 返回预约信息 + echo json_encode(['success' => true, 'appointments' => $appointments]); + } else { + // 如果没有找到预约信息 + echo json_encode(['success' => false, 'message' => 'No appointments found']); + } + } + } diff --git a/application/controllers/Home_search_phone.php b/application/controllers/Home_search_phone.php new file mode 100755 index 00000000..d1c8f0cb --- /dev/null +++ b/application/controllers/Home_search_phone.php @@ -0,0 +1,40 @@ + false, 'message' => 'Invalid phone number']); + return; + } + + // 查询数据库中的预约信息 + $this->load->model('Appointment_model'); + $appointments = $this->Appointment_model->get_appointments_by_phone($phoneNumber); + + if (!empty($appointments)) { + // 返回预约信息 + echo json_encode(['success' => true, 'appointments' => $appointments]); + } else { + // 如果没有找到预约信息 + echo json_encode(['success' => false, 'message' => 'No appointments found']); + } + } + +} diff --git a/application/language/Chinese(Simplified)/translations_lang.php b/application/language/Chinese(Simplified)/translations_lang.php index 14dce497..d0478407 100755 --- a/application/language/Chinese(Simplified)/translations_lang.php +++ b/application/language/Chinese(Simplified)/translations_lang.php @@ -497,4 +497,5 @@ $lang['search_appointments_title'] = '预约查询'; $lang['enter_phone_number'] = '输入预约时提交的电话号码'; $lang['search_button'] = '查询'; $lang['no_appointments_message'] = '暂无预约信息'; +$lang['enter_valid_phone_number'] = '请输入有效电话号'; // End diff --git a/application/language/Chinese(Traditional)/translations_lang.php b/application/language/Chinese(Traditional)/translations_lang.php index cba694d5..e36f5d29 100755 --- a/application/language/Chinese(Traditional)/translations_lang.php +++ b/application/language/Chinese(Traditional)/translations_lang.php @@ -497,4 +497,5 @@ $lang['search_appointments_title'] = '預約查詢'; $lang['enter_phone_number'] = '輸入預約時提交的電話號碼'; $lang['search_button'] = '查詢'; $lang['no_appointments_message'] = '暫無預約記錄'; +$lang['enter_valid_phone_number'] = '請輸入有效電話號碼'; // End diff --git a/application/language/English/translations_lang.php b/application/language/English/translations_lang.php index c624d1c7..2c668968 100755 --- a/application/language/English/translations_lang.php +++ b/application/language/English/translations_lang.php @@ -497,4 +497,5 @@ $lang['search_appointments_title'] = 'Enquiry'; $lang['enter_phone_number'] = 'Enter Phone Number'; $lang['search_button'] = 'Search'; $lang['no_appointments_message'] = 'No Appointments Found'; +$lang['enter_valid_phone_number'] = 'Please enter a valid phone number'; // End diff --git a/application/models/Appointments_model.php b/application/models/Appointments_model.php index 7d84f5f0..ce769cef 100755 --- a/application/models/Appointments_model.php +++ b/application/models/Appointments_model.php @@ -636,4 +636,30 @@ class Appointments_model extends EA_Model ->get('ea_appointments') ->result(); } + + public function get_appointments_by_phone(string $phone_number, int $limit = null, int $offset = null, string $order_by = null): array + { + $appointments = $this->db + ->select('appointments.*') + ->from('appointments') + ->join('users AS providers', 'providers.id = appointments.id_users_provider', 'inner') + ->join('users AS customers', 'customers.id = appointments.id_users_customer', 'left') + ->where('is_unavailability', false) + ->group_start() + ->like('providers.phone_number', $phone_number) + ->or_like('customers.phone_number', $phone_number) + ->group_end() + ->where('appointments.start_datetime >=', date('Y-m-d H:i:s')) // 过滤掉当天00点之前的预约 + ->limit($limit) + ->offset($offset) + ->order_by($order_by) + ->get() + ->result_array(); + + foreach ($appointments as &$appointment) { + $this->api_encode($appointment); + } + + return $appointments; + } } diff --git a/application/views/layouts/home_contact_layout.php b/application/views/layouts/home_contact_layout.php index 21d702a6..121a424c 100755 --- a/application/views/layouts/home_contact_layout.php +++ b/application/views/layouts/home_contact_layout.php @@ -73,7 +73,8 @@ var map = new AMap.Map('map-container', { resizeEnable: true, center: [114.124435,22.369331], // 设置中心点坐标为荃湾地区 - zoom: 18 // 地图缩放级别 + zoom: 18, // 地图缩放级别 + lang: 'zh_tw' }); var marker = new AMap.Marker({ diff --git a/application/views/layouts/home_search_layout.php b/application/views/layouts/home_search_layout.php index 76149fb0..e7952741 100755 --- a/application/views/layouts/home_search_layout.php +++ b/application/views/layouts/home_search_layout.php @@ -154,10 +154,11 @@ return; } - fetch('/index.php/appointmentsearch/search_by_phone', { + fetch('/index.php/home_search/search_by_phone', { method: 'POST', headers: { - 'Content-Type': 'application/json' + 'Content-Type': 'application/json', + 'X-CSRF-TOKEN': '= csrf_hash() ?>' // 添加 CSRF 令牌 }, body: JSON.stringify({ phone_number: phoneNumber }) }) diff --git a/application/views/pages/customers_font.php b/application/views/pages/customers_font.php new file mode 100755 index 00000000..d3846849 --- /dev/null +++ b/application/views/pages/customers_font.php @@ -0,0 +1,236 @@ + + + + +