<?php
require_once ('config.php');
$flagFile = APPLICATION_PATH . '/../data/log/autoLogistics.lock';

$link = fopen($flagFile, 'wb');
fclose($link);
define('RUNTIME', '[' . date('Y-m-d H:i:s') . '] ');
//echo RUNTIME . "Starting.\r\n\r\n";

$condition = array(
    'sm_code_Arr'                 => array('SF-RUPR','SF-RUPT'),
    'lo_status'=>'1',
    'ref_tracking_number'=>'',
    //'order_mode_type' => '0', // 备货模式
);
$total = Service_LogisticsOrder::getByCondition($condition,"count(*)");
$pageSize = 20;
$totalPage = ceil($total/$pageSize);
for($page=1;$page<=$totalPage;$page++){
    $orderList = Service_LogisticsOrder::getByCondition($condition,'*',$pageSize,$page,'lo_id desc');
    foreach($orderList as $k=>$v){
        // 数据过滤
        if (!in_array(trim($v['sm_code']),array('SF-RUPR','SF-RUPT'))
            || 1 !== (int) $v['lo_status']
            || '' !== trim($v['ref_tracking_number'])) {
          continue ;
        }
        /*print_r($v['logistics_code']);exit;*/
        $orderXml = Service_SflogisticsService::getOrderContent($v['logistics_code']);
        //print_r($orderXml);exit;
        $SflogisticsService = new Service_SflogisticsService();

	$file=APPLICATION_PATH.'/../data/SF/'.$v['logistics_code'].".xml";  
	if (!file_exists($file)) {
	  	touch($file,0755);
	  }  
	file_put_contents($file,$orderXml);
        $result = $SflogisticsService->validate($orderXml);
        print_r($result);
            if(isset($result['@attributes']['mailno'])&&$result['@attributes']['mailno']!=""){
            	if ($v['sm_code']=='SF-RUPR') {
            		$updateOrder = array(
	                    //'agent_mailno'=>$result['@attributes']['mailno'],
	                    //'ref_tracking_number'       =>$result['@attributes']['agent_mailno'],
                        'agent_mailno'=>$result['@attributes']['agent_mailno'],
                        'ref_tracking_number'       =>$result['@attributes']['mailno'], //
	                );
            	}else{
	                $updateOrder = array(
	                    'ref_tracking_number'=>$result['@attributes']['mailno'],
	                );
            	}
                $orderLog = array(
                    'logistics_code'=>$v['logistics_code'],
                    'lol_operator'=>'1',
                    'order_status_from'=>$v['lo_status'],
                    'order_status_to'=>$v['lo_status'],
                    'lol_create_time'=>date("Y-m-d H:i:s"),
                    'lol_comment'=>'SF自动取单号以及标签',
                );
                Service_LogisticsOrderLog::add($orderLog);
                Service_LogisticsOrder::update($updateOrder,$v['lo_id'],"lo_id");
               
                echo "订单".$v['logistics_code']."获取单号".$result['@attributes']['mailno']."成功\n<br>";
            }else{
                echo "订单".$v['logistics_code']."提交出错:";
                print_r($result);
                echo "<br>";
            }
        
    }
}
echo "[" . date('Y-m-d H:i:s') . "] End run\r\n";
@unlink($flagFile);