订单处理
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

55 lines
1.6 KiB

<?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." +30 minute")))));
}
}
new syncIncrementOrders();