ÿØÿà JFIF ` ` ÿþ
Server : Apache System : Linux ruga7-004.fmcity.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : tkt_travelbus ( 1137) PHP Version : 7.0.0p1 Disable Function : mysql_pconnect Directory : /tkt_travelbus/www/api/ |
Upload File : |
<?php header("Content-Type: application/json"); $g4_path = ".."; include "../common.php"; // Zipline Common include "common.php"; // API Common include "../adm/admin.lib.php"; // Admin Function /*******************************************************************/ // 예약목록 가저오기 // // FLOW : TK >> Zipline // // CALL : crontab // /*******************************************************************/ // 개발 모드 설정 ★ 실제 운영 시 주의 ★ $allow_addr = array( '119.67.250.2033', // 집 '14.6.87.1933' // TK사무실 ); if(in_array($_SERVER['REMOTE_ADDR'], $allow_addr) == true){ define('DEV_MODE', '1'); echo "###############################\n"; echo "########## 개발 모드 ##########\n"; echo "###############################\n"; } else { define('DEV_MODE', '0'); } // 시작일시설정 $cron_stime = "2022-07-01 22:00:00"; echo ("===== TKPLACE - ZIPLINE : API START =====\n"); Log::save(sprintf("%s(%d) %s", __FILE__, __LINE__, "API START"), '', 'tk/'.date('Ym')); // 주문조회 쿼리 $path = "/orders/list"; $searchStartDate = date('Y-m-d', strtotime("-1 days")); $call_data = array( 'limit' => 1000, ); $result = call($path, $call_data); $data = array(); //if(DEV_MODE){ p($result); } echo "\nDATA TOTAL : " . count($result['data']['dataOrder']) . "\n\n"; if(DEV_MODE){ echo "##################### STEP 1 : 데이터 예약건별로 처리\n"; } foreach($result['data']['dataOrder'] as $k => $v){ if(DEV_MODE){ echo "##################### STEP 2 : 예약{$k}\n"; } // 시작시간 if($v['res_date_time'] <= $cron_stime) continue; // TK 예약번호 $order_code = $v['rsv_no']; if(DEV_MODE){ echo "\n★★ ORDER ID : " . $order_code . " ===> "; } // 상태 체크 if($v['status'] == 'H'){ if(DEV_MODE){ p("취소된 예약."); } Log::save(sprintf("%s(%d) %s", __FILE__, __LINE__, "취소된 예약." . $order_code), '', 'tk/'.date('Ym')); continue; } // API 전송상태 (S 일 경우 이미 전송된 건이므로 처리하지 않음.) if($v['api_status'] == 'S'){ if(DEV_MODE){ p("이미 전송된 예약."); } Log::save(sprintf("%s(%d) %s", __FILE__, __LINE__, "이미 전송된 예약." . $order_code), '', 'tk/'.date('Ym')); //by taeyoung //20220816 //시간 변경 된 경우 처리. $res_sdate = str_replace("-", "", $v['start_date']); $eventName = $v['event_name']; $res_time = $eventName . ":00"; $res_event = $v['discount_cmt']; //할인옵션 $res_inwon = $v['total_inwon']; $res_name = $v['cust_nm']; $res_phone = str_replace("-", "", trim($v['cust_hp'])); $res_amount = $v['total_price']; $res_inflow = $v['res_route']; // 예약 유입경로 //1. 이미 예약된 데이터 불러오기 $row_mod = sql_fetch("select * from {$write_table} where tk_res_no = '{$order_code}'"); if($row_mod){ //2. 데이터 비교하기 // res_sdate, res_edate 예약 날짜, res_time 예약시간 if( ($res_sdate != $row_mod['res_sdate']) || ($res_time != $row_mod['res_time'])){ //3. 다른 데이터 있으면 로그 쌓기 $sqlmod = "INSERT INTO res_modify_log SET "; $sqlmod .= "site_id = '{$site_id}'"; $sqlmod .= ", tk_res_no = '{$order_code}'"; $sqlmod .= ", res_sdate = '{$res_sdate}'"; $sqlmod .= ", res_time = '{$res_time}'"; $sqlmod .= ", res_event = '{$res_event}'"; $sqlmod .= ", res_inwon = '{$res_inwon}'"; $sqlmod .= ", res_name = '{$res_name}'"; $sqlmod .= ", res_phone = '{$res_phone}'"; $sqlmod .= ", res_amount = '{$res_amount}'"; $sqlmod .= ", res_inflow = '{$res_inflow}'"; $sqlmod .= ", isConfirm = 'Y'"; sql_query($sqlmod); //4. 업데이트 sql_query("UPDATE {$write_table} SET res_sdate = '{$res_sdate}', res_edate = '{$res_sdate}', res_time = '{$res_time}' WHERE tk_res_no = '{$order_code}' "); } } continue; } // 사용일 $startDate = $v['start_date']; if(!$startDate){ if(DEV_MODE){ p("사용일 정보가 없습니다."); } Log::save(sprintf("%s(%d) %s", __FILE__, __LINE__, "사용일 정보가 없습니다." . $order_code), '', 'tk/'.date('Ym')); continue; } // 행사 정보 (짚라인 이용시간) $eventName = $v['event_name']; if(!$eventName){ if(DEV_MODE){ p("이용시간 정보가 없습니다."); } Log::save(sprintf("%s(%d) %s", __FILE__, __LINE__, "이용시간 정보가 없습니다." . $order_code), '', 'tk/'.date('Ym')); continue; } // Duplicate Check $row_res = sql_fetch("select * from {$write_table} where tk_res_no = '{$order_code}'"); if($row_res){ $res_id = $row_res['res_id']; if(DEV_MODE){ echo "이미 등록되어 있는 예약" . $order_code . " / " . $res_no; } Log::save(sprintf("%s(%d) %s %s", __FILE__, __LINE__, "이미 등록되어 있는 예약 : " . $order_code, $res_no), '', 'tk/'.date('Ym')); continue; } if(DEV_MODE){ echo "\n\n★★ 예약 추가 시작\n"; } // 예약 추가 // resrev_form_update.php 282 Lines 참고 $res_content = ""; $res_sdate = str_replace("-", "", $v['start_date']); $res_password = md5('tktravel'); $res_event = $v['discount_cmt']; //할인옵션 $res_time = $eventName . ":00"; $res_inwon = $v['total_inwon']; $res_name = $v['cust_nm']; $res_phone = str_replace("-", "", trim($v['cust_hp'])); $res_payment = "7000"; // 결제방법 - 제휴 $res_amount = $v['total_price']; $res_inflow = $v['res_route']; // 예약 유입경로 $insert = array( "res_subject" => '(TK)', // 회사명 및 단체명 "res_content" => $res_content, // 예약내용 "res_sdate" => $res_sdate, // 예약일 "res_edate" => $res_sdate, // 예약일 "mb_id" => 'tktravel', "res_password" => $res_password, // 비밀번호 (임의 값) "res_partner" => 'TK_API', "res_email" => 'cs@tktravelkorea.com', "res_event" => $res_event, // 할인정보 "res_write_dt" => $g4['time_ymdhis'], // 등록시간 "res_edit_dt" => $g4['time_ymdhis'], // 등록시간 "res_ip" => $_SERVER['REMOTE_ADDR'], // 등록IP "res_payset" => 'Y', // paySta (M:미결제, Y:결제완료) "res_time" => $res_time, // 예약시간 "res_inwon" => $res_inwon, // 탑승인원 "res_name" => $res_name, // 이름 "res_phone" => $res_phone, // 전화번호 "res_payment" => $res_payment, // 선입금 - 결제방법 "res_amount" => $res_amount, // 결제금액 "res_admin" => '', // 접수자 "res_consult_dt" => '', // 통화일 "res_consult_result" => '', // 결과 "res_payment_dt" => $res_payment_dt, // 선입금 - 날짜 "res_provisional" => '', "res_inflow" => $res_inflow, // 예약 유입경로 "res_getticket" => '', // 발권유무 (미사용) "res_payment_name" => '', // 선입금 - 입금자 "res_balance" => '0', // 잔금 - 금액 "res_balance_dt" => '', // 잔금 - 날짜 "res_balance_name" => '', // 잔금 - 입금자 "res_payment_type" => '', // 잔금 - 결제방법 "res_pri" => $res_amount, // 선입금 - 금액 "res_dis" => '0', // 할인율 "tk_res_no" => $order_code // TK 예약번호 ); $sql = getInsertQuery($write_table, $insert); if(DEV_MODE){ p($sql); } // DB 처리 if(DEV_MODE == 0){ Log::save(sprintf("%s(%d) DB Insert : %s", __FILE__, __LINE__, $sql), '', 'tk/'.date('Ym')); sql_query($sql); $res_id = mysql_insert_id(); // 부모 아이디에 UPDATE sql_query("update $write_table set res_parent = '$res_id' where res_id = '$res_id' "); if(DEV_MODE){ p("DB Process..."); } Log::save(sprintf("%s(%d) Create Order Process : %s", __FILE__, __LINE__, $res_id), '', 'tk/'.date('Ym')); // 예약상태 변경 (API 전송상태 > 전송성공) $path = "/orders/update/".$order_code; $call_data = array( 'api_status' => "U", ); $result = call($path, $call_data, "POST"); Log::save(sprintf("%s(%d) Update api_status : %s", __FILE__, __LINE__, $call_data['api_status']), '', 'tk/'.date('Ym')); // TK API 연동 행사인원정보 DB 기록 220508 insert_reserve_count($site_id, $res_sdate, $res_time, 'API_INSERT', $res_id); // 알림톡 발송 echo "{$res_id} ■ "; } } echo "\nEND"; ####################################################################### ?>