getToken(); //발송 대기전, 발송시간이 현재 보다 작은 건 취합 $sql = "select * from tender_sms_master where ds_send_status = 'A0' and dt_send < now()"; $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']; //경매 정보 불러옴 $r = mysql_query("SELECT a.* , b.nm_model , c.nm_grade , d.nm_brand , e.nm_model_sub , 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_grade c on (a.cd_grade = c.cd_grade) left outer join car_brand d on (a.cd_brand = d.cd_brand) left outer join car_model_sub e on (a.cd_model_sub = e.cd_model_sub) 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"); $sale_col = mysql_fetch_array($r); //검색된 경매 정보가 없으면 tender_sms_master 발송취소로 업데이트 if(empty($sale_col['cd_sale'])) { cancel_tender_sms($cd_tender_sms); continue; } $is_cancel = false; switch($ds_status) { //낙찰중인건 case 'Z0': //진행중으로 변경이 됐거나 ZE 견적실수로 변경 됐을 경우 락 필요치 않음 으로 업데이트 if((((empty($sale_col['ds_status_contract']) || $sale_col['ds_status_contract'] == 'Z0') && $sale_col['ds_status_contract_step1'] == 'Y') || ($sale_col['ds_status_sale'] == 'ZE' && empty($sale_col['ds_status_contract'])))) { $is_cancel = true; } $tender_update_column = " ds_complete_depth = '".$depth."'"; break; //진행중인건 case 'Z1': //해약 // s.ds_status in ('Z0') and s.ds_status_contract in ('C0') //거래연기 // and s.ds_status in ('Z0') and s.ds_status_contract in ('B0') //판매완료 // and s.ds_status in ('ZS') if($sale_col['ds_status_sale'] == 'Z0' && $sale_col['ds_status_contract'] == 'C0') { $is_cancel = true; }else if($sale_col['ds_status_sale'] == 'Z0' && $sale_col['ds_status_contract'] == 'B0') { $is_cancel = true; }else if($sale_col['ds_status_sale'] == 'ZS') { $is_cancel = true; } $tender_update_column = " ds_underway_depth = '".$depth."'"; break; default: continue; break; } //취소해야 하는 매울이면 취소 처리 if($is_cancel == true) { no_lock_tender_sms($cd_tender_sms); cancel_tender_sms($cd_tender_sms); continue; } //변경이 안됐다면 //SMS 발송 $SMS_DATA = array(); $SMS_DATA['message'] = $nm_content; //발신 메시지 내용 (공백 포함2345 1000자로 제한) 가변 영역이 있을 경우 해당 가변 영역의 내용도 실제 보낼 내용으로 치환 되어야 한다. $SMS_DATA['recipient'] = $nm_hp; // 수신자 $SMS_DATA['senderKey'] = '4856a5e128f9289082c884d066f1df198cbb1165'; // 카카오 발신 프로필 키 $SMS_DATA['tmpltCode'] = 'tender_sms'; // 메시지 템플릿 코드 $SMS_DATA['resMethod'] = 'PUSH'; // 메시지 템플릿 코드 // $SMS_DATA['debug'] = "Y"; // 디버그 // print_r($SMS_DATA); // exit; $send_reuslt = $biztalk->sendSms($SMS_DATA); unset($SMS_DATA); //낙찰, 진행중 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' "; 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($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]).' 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($DATA); unset($DATA); } ?>