!#/usr/bin/php -q getToken(); $aligo = new Aligo(); $aligo->getHourToken(); //처리 가능항 매물 상태 정의 $allow_ds_status = array("Z0", "Z1"); //발송 대기전, 발송시간이 현재 보다 작은 건 취합 $sql = "select * from tender_sms_master where ds_send_status = 'A0' and dt_send < now()"; // echo $sql; // exit; $res = mysql_query($sql); while($col = mysql_fetch_array($res)) { $cd_tender_sms = $col['cd_tender_sms']; $cd_sale = $col['cd_sale']; $cd_tender = $col['cd_tender']; $depth = $col['depth']; $nm_hp = $col['nm_hp']; $dt_send = $col['dt_send']; $nm_content = $col['nm_content']; $ds_status = $col['ds_status']; if(!in_array($ds_status, $allow_ds_status)) { continue; } $sale_sql = "SELECT a.* , b.nm_model , d.nm_brand , getCode('car_master','ds_type',a.ds_type) as nm_type , getCode('car_master','ds_open',a.ds_open) as nm_open , getCode('car_master','ds_sales',a.ds_sales) as nm_sales , getCode('car_master','ds_transmission',a.ds_transmission) as nm_transmission , getCode('member_master','ds_area',s.ds_area) as nm_area , getCode('sale_master','ds_status',s.ds_status) as nm_status , s.cd_sale , f.cd_tender cd_tender , s.ds_status as ds_status_sale , f.nm_hp tender_nm_hp , s.ds_status_contract , s.ds_status_contract_step1 FROM sale_master s inner join car_master a on (s.cd_car = a.cd_car) left outer join car_model b on (a.cd_model = b.cd_model) left outer join car_brand d on (a.cd_brand = d.cd_brand) inner join tender_master f on (s.cd_sale = f.cd_sale and f.ds_status = 'Z0' and f.ds_delind = 'N' and f.cd_tender = '$cd_tender') where s.cd_sale = '". $cd_sale . "' and s.ds_delind = 'N' LIMIT 1"; // echo $sale_sql; // exit; //경매 정보 불러옴 $sale_res = mysql_query($sale_sql); $sale_col = mysql_fetch_array($sale_res); // echo $cd_tender_sms; // $sale_col['cd_sale'] = ""; //검색된 경매 정보가 없으면 tender_sms_master 발송취소로 업데이트 if(empty($sale_col['cd_sale'])) { cancel_tender_sms($connect, $cd_tender_sms); continue; } $is_cancel = false; switch($ds_status) { //낙찰중인건 case 'Z0': //낙찰 상태가 변경이 되면 cancel로 이동 //기준은 관리자의 낙찰 리스트 출력 조건과 동일 if(!($sale_col['ds_status_sale'] == 'Z0' && empty($sale_col['ds_status_contract']) && $sale_col['ds_status_contract_step1'] != "Y")) { $is_cancel = true; } break; $tender_update_column = " ds_complete_depth = '".$depth."'"; break; //진행중인건 case 'Z1': //진행중 상태가 변경이 되면 cancel로 이동 //기준은 관리자의 진행중 리스트 출력 조건과 동일 // echo 'ds_status:'.$sale_col['ds_status_sale'].'
'; // echo 'ds_status_contract:'.$sale_col['ds_status_contract'].'
'; // echo 'ds_status_contract_step1:'.$sale_col['ds_status_contract_step1'].'
'; if(!($sale_col['ds_status_sale'] == 'Z0' && (empty($sale_col['ds_status_contract']) || $sale_col['ds_status_contract'] == 'Z0') && $sale_col['ds_status_contract_step1'] == "Y")) { $is_cancel = true; } $tender_update_column = " ds_underway_depth = '".$depth."'"; break; } //취소해야 하는 매울이면 취소 처리 if($is_cancel == true) { no_lock_tender_sms($connect, $cd_tender_sms); cancel_tender_sms($connect, $cd_tender_sms); continue; } //변경이 안됐다면 SMS 발송 $ALIGO_DATA = array(); $ALIGO_DATA['message'] = $nm_content; $ALIGO_DATA['recv_phone'] = $nm_hp; // print_r($ALIGO_DATA); // echo 'a'.$ds_status; // exit; switch($ds_status) { //낙찰 리스트에서 넘어옴 case 'Z0': $response = $aligo->send_admin_delay_complete_to_aap($ALIGO_DATA); break; //진행중 리스트에서 넘어옴 case 'Z1': $response = $aligo->send_admin_delay_underway_to_aap($ALIGO_DATA); // print_r($response); // exit; break; } unset($ALIGO_DATA); if($response['code'] != "0") { // echo $response['message']; } //낙찰, 진행중 SMS 단계 업데이트 $sql="update tender_master set $tender_update_column , dt_update = now() , nm_update = 'admin' WHERE cd_sale = $cd_sale and cd_tender = '$cd_tender' "; // echo $sql; // exit; mysql_query($sql,$connect); //Tender SMS 업데이트 (현재 단계 발송처리 ds_send_status = 'Z0') $tender_sms_sql = "update tender_sms_master set ds_send_status = 'Z0' where cd_tender_sms = '$cd_tender_sms' "; mysql_query($tender_sms_sql,$connect); //3차 발송일 경우 락 상태로 업데이트 //lock 은 lock 스케쥴러가 체크 if($depth == 3) { lock_status_tender_sms($connect, $cd_tender_sms); continue; } //발송 내용 치환 $car_info = $sale_col['nm_brand']." ".$sale_col['nm_model'].", ".$sale_col['nm_number']; $nm_content = str_replace("{CAR_INFO}", $car_info, $sms_msg[$ds_status]); $nm_content = str_replace("{PERIOD}", $sms_period[($depth+1)], $nm_content); // $send_date = date("Y-m-d H:i:s", strtotime($dt_send. ' + '.($sms_period[($depth+1)]).' day')); //2차 발송일 경우 (1차는 관리자에서 발송 시킴) //다음발송건 등록 $DATA = array(); $DATA['cd_sale'] = $cd_sale; $DATA['cd_tender'] = $cd_tender; $DATA['tender_nm_hp'] = $nm_hp; $DATA['depth'] = ($depth+1); $DATA['ds_send_status'] = 'A0'; $DATA['nm_content'] = $nm_content; $DATA['ds_status'] = $ds_status; $DATA['dt_send'] = $send_date; $DATA['cd_userid'] = 'admin'; $result = insert_tender_sms($connect, $DATA); unset($DATA); } echo "End"; ?>