!#/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";
?>