$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)); } } } } } }