193 行
9.5 KiB
PHP
可执行文件
193 行
9.5 KiB
PHP
可执行文件
<?php
|
|
|
|
namespace NotifyApi\Controller;
|
|
|
|
use Think\Controller;
|
|
|
|
//[1.4.13]
|
|
|
|
/**
|
|
* 达达订单回调
|
|
* Class DaDaController
|
|
* @package NotifyApi\Controller
|
|
*/
|
|
class DaDaController extends Controller
|
|
{
|
|
public function orderCallBack()
|
|
{
|
|
$data = $GLOBALS['HTTP_RAW_POST_DATA'];
|
|
$data = json_decode($data, true);
|
|
file_put_contents('./NotifyDaDa.txt', json_encode($data) . "\r\n", FILE_APPEND);
|
|
if ($data['order_status'] == 1) {
|
|
//下单回调
|
|
$DaOrderModel = D('RetailDaOrder');
|
|
$dMap = array(
|
|
'order_no' => $data['order_id'],
|
|
);
|
|
$daOrder = $DaOrderModel->getOrderFind($dMap,"*",'id desc');
|
|
if (!empty($daOrder)) {
|
|
$save = array(
|
|
$DaOrderModel::UPDATE_TIME => $data['update_time'],
|
|
$DaOrderModel::SIGNATURE => $data['signature'],
|
|
$DaOrderModel::CLIENT_ID => $data['client_id'],
|
|
$DaOrderModel::ORDER_STATUS => $data['order_status'],
|
|
);
|
|
$update = $DaOrderModel->updateOrder(array('id'=>$daOrder['id']), $save);
|
|
}
|
|
} else if ($data['order_status'] == 2) {
|
|
//接单回调
|
|
$DaOrderModel = D('RetailDaOrder');
|
|
$dMap = array(
|
|
'order_no' => $data['order_id'],
|
|
'client_id' => $data['client_id']
|
|
);
|
|
$daOrder = $DaOrderModel->getOrderFind($dMap,"*",'id desc');
|
|
if ($data['update_time'] > $daOrder['update_time']) {
|
|
$save = array(
|
|
$DaOrderModel::UPDATE_TIME => $data['update_time'],
|
|
$DaOrderModel::SIGNATURE => $data['signature'],
|
|
$DaOrderModel::ORDER_STATUS => $data['order_status'],
|
|
$DaOrderModel::DM_ID => $data['dm_id'],
|
|
$DaOrderModel::DM_NAME => $data['dm_name'],
|
|
$DaOrderModel::DM_MOBILE => $data['dm_mobile'],
|
|
$DaOrderModel::SIGNATURE => $data['signature'],
|
|
);
|
|
$DaOrderModel->updateOrder($dMap, $save);
|
|
}
|
|
} else if ($data['order_status'] == 3) {
|
|
//取货回调
|
|
$DaOrderModel = D('RetailDaOrder');
|
|
$dMap = array(
|
|
'order_no' => strval($data['order_id']),
|
|
'client_id' => strval($data['client_id']),
|
|
);
|
|
$daOrder = $DaOrderModel->getFind($dMap);
|
|
if ($data['update_time'] > $daOrder[$DaOrderModel::UPDATE_TIME]) {
|
|
$save = array(
|
|
$DaOrderModel::UPDATE_TIME => $data['update_time'],
|
|
$DaOrderModel::SIGNATURE => $data['signature'],
|
|
$DaOrderModel::ORDER_STATUS => $data['order_status'],
|
|
$DaOrderModel::DM_MOBILE => $data['dm_mobile'],
|
|
);
|
|
$update = $DaOrderModel->updateOrder($dMap, $save);
|
|
if ($update) {
|
|
$BillModel = D('RetailBillOrder');
|
|
$billOrder = $BillModel->getFind(array($BillModel::ORDER_NO => $data['order_id']));
|
|
if (!empty($billOrder)) {
|
|
$OnlineModel = D('RetailBillOnline');
|
|
$OnlineModel->updateOrder(array($OnlineModel::BILL_ID => $billOrder[$BillModel::ID]), array($OnlineModel::STATUS => 2));
|
|
}
|
|
}
|
|
}
|
|
} else if ($data['order_status'] == 4) {
|
|
//完成回调
|
|
$DaOrderModel = D('RetailDaOrder');
|
|
$dMap = array(
|
|
$DaOrderModel::ORDER_NO => strval($data['order_id']),
|
|
$DaOrderModel::CLIENT_ID => strval($data['client_id']),
|
|
);
|
|
$daOrder = $DaOrderModel->getFind($dMap);
|
|
if ($data['update_time'] > $daOrder[$DaOrderModel::UPDATE_TIME]) {
|
|
$save = array(
|
|
$DaOrderModel::UPDATE_TIME => $data['update_time'],
|
|
$DaOrderModel::SIGNATURE => $data['signature'],
|
|
$DaOrderModel::ORDER_STATUS => $data['order_status'],
|
|
);
|
|
$update = $DaOrderModel->updateOrder($dMap, $save);
|
|
if ($update) {
|
|
$BillModel = D('RetailBillOrder');
|
|
$billOrder = $BillModel->getFind(array($BillModel::ORDER_NO => $data['order_id']));
|
|
if (!empty($billOrder)) {
|
|
$OnlineModel = D('RetailBillOnline');
|
|
$OnlineModel->updateOrder(array($OnlineModel::BILL_ID => $billOrder[$BillModel::ID]), array($OnlineModel::STATUS => 3));
|
|
if($billOrder['order_type'] == 3){
|
|
//换货订单
|
|
$BillModel->updateOrder(array("id"=>$billOrder['id']),array("refund_status"=>2));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} else if ($data['order_status'] == 5) {
|
|
//配送员取消订单回调
|
|
$DaOrderModel = D('RetailDaOrder');
|
|
$dMap = array(
|
|
$DaOrderModel::ORDER_NO => strval($data['order_id']),
|
|
$DaOrderModel::CLIENT_ID => strval($data['client_id']),
|
|
);
|
|
$daOrder = $DaOrderModel->getFind($dMap);
|
|
if ($data['update_time'] > $daOrder[$DaOrderModel::UPDATE_TIME]) {
|
|
$save = array(
|
|
$DaOrderModel::UPDATE_TIME => $data['update_time'],
|
|
$DaOrderModel::SIGNATURE => $data['signature'],
|
|
$DaOrderModel::ORDER_STATUS => $data['order_status'],
|
|
$DaOrderModel::CANCEL_FROM => $data['cancel_from'],
|
|
);
|
|
if($data['cancel_reason']){
|
|
$save[$DaOrderModel::CANCEL_REASON ] = $data['cancel_reason'];
|
|
}
|
|
$update = $DaOrderModel->updateOrder($dMap, $save);
|
|
if ($update) {
|
|
$BillModel = D('RetailBillOrder');
|
|
$billOrder = $BillModel->getFind(array($BillModel::ORDER_NO => $data['order_id']));
|
|
if (!empty($billOrder)) {
|
|
$OnlineModel = D('RetailBillOnline');
|
|
$OnlineModel->updateOrder(array($OnlineModel::BILL_ID => $billOrder[$BillModel::ID]), array($OnlineModel::DELIVERY_TYPE => 1, $OnlineModel::CANCEL_DELIVERY_STATUS => 2));
|
|
}
|
|
}
|
|
}
|
|
} else if ($data['order_status'] == 7) {
|
|
//过期回调
|
|
$DaOrderModel = D('RetailDaOrder');
|
|
$dMap = array(
|
|
$DaOrderModel::ORDER_NO => strval($data['order_id']),
|
|
$DaOrderModel::CLIENT_ID => strval($data['client_id']),
|
|
);
|
|
$daOrder = $DaOrderModel->getFind($dMap);
|
|
if ($data['update_time'] > $daOrder[$DaOrderModel::UPDATE_TIME]) {
|
|
$save = array(
|
|
$DaOrderModel::UPDATE_TIME => $data['update_time'],
|
|
$DaOrderModel::SIGNATURE => $data['signature'],
|
|
$DaOrderModel::ORDER_STATUS => $data['order_status'],
|
|
$DaOrderModel::CANCEL_FROM => 0,
|
|
$DaOrderModel::CANCEL_REASON => '',
|
|
);
|
|
$update = $DaOrderModel->updateOrder($dMap, $save);
|
|
if ($update) {
|
|
$BillModel = D('RetailBillOrder');
|
|
$billOrder = $BillModel->getFind(array($BillModel::ORDER_NO => $data['order_id']));
|
|
if (!empty($billOrder)) {
|
|
$OnlineModel = D('RetailBillOnline');
|
|
$OnlineModel->updateOrder(array($OnlineModel::BILL_ID => $billOrder[$BillModel::ID]), array($OnlineModel::DELIVERY_TYPE => 1, $OnlineModel::CANCEL_DELIVERY_STATUS => 2));
|
|
}
|
|
}
|
|
}
|
|
} else if ($data['order_status'] == 9) {
|
|
//拒绝配送回调
|
|
//过期回调
|
|
$DaOrderModel = D('RetailDaOrder');
|
|
$dMap = array(
|
|
$DaOrderModel::ORDER_NO => strval($data['order_id']),
|
|
$DaOrderModel::CLIENT_ID => strval($data['client_id']),
|
|
);
|
|
$daOrder = $DaOrderModel->getFind($dMap);
|
|
if ($data['update_time'] > $daOrder[$DaOrderModel::UPDATE_TIME]) {
|
|
$save = array(
|
|
$DaOrderModel::UPDATE_TIME => $data['update_time'],
|
|
$DaOrderModel::SIGNATURE => $data['signature'],
|
|
$DaOrderModel::ORDER_STATUS => $data['order_status'],
|
|
$DaOrderModel::CANCEL_FROM => 0,
|
|
$DaOrderModel::CANCEL_REASON => '',
|
|
);
|
|
$update = $DaOrderModel->updateOrder($dMap, $save);
|
|
if ($update) {
|
|
$BillModel = D('RetailBillOrder');
|
|
$billOrder = $BillModel->getFind(array($BillModel::ORDER_NO => $data['order_id']));
|
|
if (!empty($billOrder)) {
|
|
$OnlineModel = D('RetailBillOnline');
|
|
$OnlineModel->updateOrder(array($OnlineModel::BILL_ID => $billOrder[$BillModel::ID]), array($OnlineModel::CANCEL_DELIVERY_STATUS => 2, $OnlineModel::STATUS => 1, $OnlineModel::DELIVERY_TYPE => 1));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |