<?php

/**
 * 同步增量订单
 */
include_once dirname(dirname(__FILE__)).'/base/dealBase.php';

class syncIncrementOrders extends dealBase {

    public function setPara() {
        $this->processnum = $GLOBALS['DAEMON_NUMLIMIT'][DAEMON_SYNC_INCREMENT_ORDERS];
//         $this->is_while = false;
    }

    public function deal() {
        $obj = new mOrder();
        $rdobj = $obj->initRedis();
        $jsondata = $rdobj->rpop(_RQ_SYNC_INCREMENT_ORDERS);
        if ($jsondata === false) exit();

        $data = json_decode($jsondata, true);

        if (time() < strtotime($data['end_date'])) {
            sleep(10);
            $rdobj->lpush(_RQ_SYNC_INCREMENT_ORDERS, $jsondata);
            return true;
        }

        $start_date = $data['start_date'];
        $end_date = $data['end_date'];
        $name = $data['name'];

        $sobj = new mShop();
        $shopinfo = $sobj->getShopByName($name);
        if (empty($shopinfo)) return false;

        $pobj = new mPdd();
        for ($page=1;;$page++) {
            $trades = $pobj->getPddIncrOrderList($name, $start_date, $end_date, ORDER_STATUS_FULL, REFUND_STATUS_FULL, $page, 100);
            if (!$trades) break;
            if (empty($trades['order_sn_list'])) break;

            $obj->addOrders($trades['order_sn_list'], $shopinfo['id'], $shopinfo['uid']);

            if ($trades['has_next'] != true) break;

        }

        $rdobj->lpush(_RQ_SYNC_INCREMENT_ORDERS, json_encode(array('name'=>$name, 'start_date'=>$end_date, 'end_date'=>date("Y-m-d H:i:s", strtotime($end_date." +5 minute")))));

    }

}

new syncIncrementOrders();