<?php
/**
 * Created by JetBrains PhpStorm.
 * User: user
 * Date: 14-6-5
 * Time: 下午6:36
 * To change this template use File | Settings | File Templates.
 */
require_once ('config.php');
$flagFile = APPLICATION_PATH . '/../data/log/autoEub.lock';
if (@file_exists($flagFile)) {
    echo 'Another process is running.'."\r\n";
    echo $flagFile."\r\n";
    exit();
}
$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('SZY-EUB','SZH-EUB','WG-EUB'),
    'order_status'=>'4',
    'EUB_ref_tracking_number'=>'',
    'order_mode_type' => '0', // 备货模式
);
$total = Service_Orders::getByCondition($condition,"count(*)");
$pageSize = 20;
$totalPage = ceil($total/$pageSize);
for($page=1;$page<=$totalPage;$page++){
    $orderList = Service_Orders::getByCondition($condition,'*',$pageSize,$page,'order_id desc');
    foreach($orderList as $k=>$v){
        // 数据过滤
        if (!in_array(trim($v['sm_code']),array('SZY-EUB','SZH-EUB','WG-EUB'))
            || 0 !== (int) $v['order_mode_type']
            || 4 !== (int) $v['order_status']
            || '' !== trim($v['ref_tracking_number'])) {
          continue ;
        }

        $orderXml = Service_EpacketWebService::getOrderContent($v['order_code']);
        $epaService = new Service_EpacketWebService();
        $result = $epaService->validate($orderXml);
        if($result['status']=="success"){
            $ret = $epaService->createEpacketOrder($orderXml);
            if(isset($ret['mailnum'])&&$ret['mailnum']!=""){
                $updateOrder = array(
                    'ref_tracking_number'=>$ret['mailnum']
                );
                $orderLog = array(
                    'order_id'=>$v['order_id'],
                    'order_code'=>$v['order_code'],
                    'ol_type'=>'1',
                    'order_status_from'=>$v['order_status'],
                    'order_status_to'=>$v['order_status'],
                    'ol_add_time'=>date("Y-m-d H:i:s"),
                    'user_id'=>0,
                    'ol_comments'=>'EUB自动取单号以及标签->autoEub.php'
                );
                Service_OrderLog::add($orderLog);
                Service_Orders::update($updateOrder,$v['order_id'],"order_id");
                $labelResult = $epaService->getOneLableByMailnum($ret['mailnum']);
                $epaService->getPdfByOrderCode($v['order_code']);
                /*$zipFileStream = file_get_contents($labelResult['url'],false,null);
                $zipFileName = APPLICATION_PATH.'/../data/pdf/EUB/'.$v['order_code'].".zip";
                file_put_contents($zipFileName,$zipFileStream);
                $zip = new ZipArchive;
                if ($zip->open($zipFileName) === TRUE)
                {
                    $zip->extractTo(APPLICATION_PATH.'/../data/pdf/EUB/');
                    $pdfFileName = $zip->getNameIndex(0);
                    $zip->close();
                }
                rename(APPLICATION_PATH.'/../data/pdf/EUB/'.$pdfFileName,APPLICATION_PATH.'/../data/pdf/EUB/'.$v['order_code'].".pdf");
                unlink($zipFileName);*/
                echo "订单".$v['order_code']."获取单号".$ret['mailnum']."成功\n";
            }else{
                $errorText= "订单".$v['order_code']."提交出错:".$ret['description']."\n";
                echo $errorText;
                $errorLog=array(
                 'order_code'=>$v['order_code'],
                 'sm_code'=>$v['sm_code'],
                 'content'=>$errorText,
             );
             Service_TrackingErrorLog::add($errorLog);
            }
        }else{
            $errorText= "订单".$v['order_code']."提交出错:".$result['description']."\n";
            $errorLog=array(
                 'order_code'=>$v['order_code'],
                 'sm_code'=>$v['sm_code'],
                 'content'=>$errorText,
             );
             Service_TrackingErrorLog::add($errorLog);
            echo $errorText;
            
        }
    }
}
echo "[" . date('Y-m-d H:i:s') . "] End run\r\n";
@unlink($flagFile);