文件
mashangyoujiu/Application/NotifyApi/Controller/DaDaController.class.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));
}
}
}
}
}
}