|
- <?php
-
- namespace backend\modules\hotel\controllers;
-
- use backend\modules\hotel\models\Ali\TopLogger;
- use backend\modules\hotel\models\CtripOrder;
- use backend\modules\hotel\models\OperaHotel;
- use backend\modules\hotel\models\OrderChannelInfo;
- use backend\modules\hotel\models\OrderComment;
- use backend\modules\hotel\models\SetService;
- use common\components\zOfficeWechat;
- use common\components\zPhpExcel;
- use common\models\BaseSupplier;
- use common\models\User;
- use Yii;
- use backend\modules\hotel\models\OrderMain;
- use backend\modules\hotel\models\search\searchOrderMain;
- use yii\data\ArrayDataProvider;
- use yii\web\NotFoundHttpException;
- use yii\filters\VerbFilter;
- use yii\web\ServerErrorHttpException;
- use backend\modules\api\util\Util;
-
- /**
- * SupplierBackendController implements the CRUD actions for OrderMain model.
- */
- class SupplierBackendController extends BaseController
- {
- // public $_messageList = 'wangxj';
- public $_messageList = 'gaoj|panlj|wuwh|jim|zhuym|huangjq|huyz|';
- // public $enableCsrfValidation = false;
-
- /**
- * @inheritdoc
- */
- public function behaviors()
- {
- return [
- 'verbs' => [
- 'class' => VerbFilter::className(),
- 'actions' => [
- 'delete' => ['POST'],
- ],
- ],
- ];
- }
-
- /**
- * Lists all OrderMain models.
- * @return mixed
- */
- public function actionIndex()
- {
- $searchModel = new searchOrderMain();
- $searchModel->date_from = date('Y-m-d', strtotime('-3 days'));
- $searchModel->date_to = date('Y-m-d');
- $dataProvider = $searchModel->supplierSearch(Yii::$app->request->queryParams);
-
- //要根据状态获取各状态的数量,所以把$dataProvider的models全部取出后,再筛选状态,减少sql查询次数,以达到优化时间的目的
- //至少需要查询2次,一次获取数量,一次正常状态查询以实现分页功能
-
- $tmp_dataProvider = unserialize(serialize($dataProvider));
- $tmp_dataProvider->pagination = false;
- $models = $tmp_dataProvider->getModels();
- $status_arr = [];
- $providerData = [];
- if (!empty($models)) {
- foreach ($models as $model) {
- $status_arr[0] += 1;
- if (!isset($status_arr[$model->ORDER_STATUS])) {
- $status_arr[$model->ORDER_STATUS] = 0;
- }
- $status_arr[$model->ORDER_STATUS] += 1;
-
- //符合状态的订单存起来供页面显示
- if ($searchModel->ORDER_STATUS == '' || $searchModel->ORDER_STATUS == $model->ORDER_STATUS)
- $providerData[] = $model;
- }
- }
- $dataProvider = new ArrayDataProvider([
- 'allModels' => $providerData
- ]);
- //登录账号所属酒店
- $base_supplier = User::find()
- ->addSelect(['base_supplier.ID'])
- ->leftJoin('base_supplier', 'base_supplier.ID = base_user.TOP_ORG_ID')
- ->where(['base_user.ID' => Yii::$app->user->id])
- ->asArray()->one();
- return $this->render('index', [
- 'searchModel' => $searchModel,
- 'dataProvider' => $dataProvider,
- 'status_arr' => $status_arr,
- 'supplier_id' => $base_supplier['ID']
- ]);
- }
-
- /**
- * Author:Steven
- * Desc:查看订单详情页面
- * @param $id
- * @return string
- * @throws NotFoundHttpException
- * @throws ServerErrorHttpException
- */
- public function actionView($id)
- {
- $model = $this->findModel($id);
-
- //子订单
- $detail = OrderMain::find()
- ->addSelect([
- 'order_main.*',
- 'count(run_date) as room_count', //每一天的间数
- ])->where(['PARENT_ORDER_ID' => $model->ORDER_ID, 'CANCEL_FLAG' => 0])
- ->groupBy('RUN_DATE')->all();
- if (empty($detail)) {
- throw new ServerErrorHttpException('订单数据不完整。');
- }
-
- //订单备注,公共备注
- $notes = OrderComment::find()->joinWith('user')
- ->where(['order_comment.CANCEL_FLAG' => 0, 'ORDER_ID' => $model->ORDER_ID, 'COMMENT_TYPE' => OrderComment::TYPE_PUBLIC])
- ->all();
- return $this->render('view', [
- 'model' => $model,
- 'detail' => $detail,
- 'notes' => $notes
- ]);
- }
-
- /**
- * Notes:
- * User: Steven
- * Date: 2018/1/19
- * Time: 13:10
- * @param $order_id
- * @param $status
- * @param $msg //确认号
- * @return string
- * @throws NotFoundHttpException
- * @throws \yii\db\Exception
- */
- public function actionConfirm($order_id, $status, $msg)
- {
-
- // $postMsg = Yii::$app->request->post("copyMsg");
- $order = $this->findModel($order_id);
- $tmp_channel_status = $order->CHANNEL_ORDER_STATUS;
- $logger = new TopLogger();
- $logger->log([date("Y-m-d H:i:s"), '酒店确认,渠道订单号:' . $order_id . ',渠道订单状态:' . $tmp_channel_status . "\n" . PHP_EOL], 'ali/error');
-
- if ($order->ORDER_STATUS != $status) {
- return \GuzzleHttp\json_encode(['code' => 2, 'msg' => '订单状态已经发生变化,请刷新后再操作']);
- }
- $order->ORDER_STATUS = OrderMain::ORDER_STATUS_CONFIRMED;
- $order->ORDER_CONFIRM_CODE = $msg;
- $order->ORDER_LEVEL = OrderMain::ORDER_LEVEL_SURE;
- $order->UPDATE_USER_ID = Yii::$app->user->id;
- $order->UPDATE_TIME = date('Y-m-d H:i:s', time());
- if ($order->validate()) {
- //渠道状态已取消,不能确认
- if ($order->CHANNEL_ORDER_STATUS == OrderMain::ORDER_CHANNEL_STATUS_APPLY_CANCEL_CONFIRMED) {
- return \GuzzleHttp\json_encode(['code' => 1, 'msg' => '订单无法确认,请联系客服发取消单']);
- }
- if ($order->DOCKING_TYPE == OrderMain::ORDER_TYPE_CHANNEL) { //这里一定要在判断完渠道状态后再修改渠道的订单状态
- $order->CHANNEL_ORDER_STATUS = OrderMain::ORDER_CHANNEL_STATUS_ACCEPT;
- }
- if (!$order->confirm()) {
- return \GuzzleHttp\json_encode(['code' => 1, 'msg' => '确认失败']);
- } elseif ($order->DOCKING_TYPE == OrderMain::ORDER_TYPE_CHANNEL) {
- $order->resetMem();
- if ($order->OUTSIDE_SALE_ORG_ID == Yii::$app->params['ali']['supplier_id'] && $tmp_channel_status == OrderMain::ORDER_CHANNEL_STATUS_WAITING) { //阿里直连
- // 记录酒店发送是否发送确认日志
- $userIp = Yii::$app->request->userIP;
- $logger->log([date("Y-m-d H:i:s"), '酒店确认,发送阿里确认状态,渠道订单号:' . $order_id . ',渠道订单号:' . $order->OUTSIDE_ORDER_NO . "\n请求ip:" . $userIp . PHP_EOL], 'ali/error');
- //这里㤇判断是否已经接单,如果没有接单的话,需要推送状态,如果接单了,相当于确认状态已经推送携程了,不能重复推送
- Yii::$app->runAction('hotel/ali/confirm-order', ['tid' => $order->OUTSIDE_ORDER_NO, 'opt_type' => '2']);
- $logger->log([date("Y-m-d H:i:s"), '酒店确认,通过RunAction,订单号:' . $order_id . "\n" . PHP_EOL], 'ali/error');
- } elseif ($order->OUTSIDE_SALE_ORG_ID == Yii::$app->params['ctrip']['supplier_id']) { //携程直连
- //对接的订单,需要推送状态
- //这里不需要向阿里渠道那样,因为携程是需要确认号的,即使已经确认了,也要通过此接口,更新确认号,所以不需要判读
- $interFace = OrderChannelInfo::findOne(['CANCEL_FLAG' => 0, 'ORDER_ID' => $order->ORDER_ID]);
- if ($interFace != null) {
- $params = [
- 'OrderID' => $order->OUTSIDE_ORDER_NO,//订单ID
- 'InterfaceConfirmNo' => $order->ORDER_CONFIRM_CODE,//酒店确认号
- 'OrderStatus' => CtripOrder::ORDER_STATUS_COMFIRMED,//订单状态 3:确认;4:拒绝
- 'InterFaceSendID' => $interFace->InterFaceSendID,//订单接口发送号
- 'ResultCode' => CtripOrder::RETURN_CODE_SUCCESS,
- 'Message' => 'Success',
- 'channelId' => Yii::$app->params['ctrip']['relation_supplier_id'],//渠道ID 携程传1
- ];
- $set = new SetService();
- $setDes = $set->setOrderStatus($params);
- if ($setDes['flag'] == false) {
- zOfficeWechat::sendMsg([
- 'agentid' => zOfficeWechat::SEND_HOTEL,
- 'title' => '直连订单状态推送失败:',
- 'msg' => '酒店已经确认了直连订单:' . $order->ORDER_ID . "\n但是直连状态推送失败,请手动接单。",
- 'touser' => 'gaoj,wangxj,shifp,yuw']
- );
- }
- }
- } elseif ($order->OUTSIDE_SALE_ORG_ID == Yii::$app->params['wx_hotel']['supplier_id']) { //微信商城
- // 推送微信商城
- $res = Util::confirmHotelOrder($order->ORDER_ID);
- if ($res['code'] != 0) {
- zOfficeWechat::sendMsg([
- 'agentid' => zOfficeWechat::SEND_HOTEL,
- 'title' => '直连订单状态推送失败:',
- 'msg' => '接单失败【微信商城订单】:' . $order->ORDER_ID . ' ' . $res['info'],
- 'touser' => $this->_developerList]
- );
- }
- }
- }
- } else {
- return \GuzzleHttp\json_encode(['code' => 1, 'msg' => $order->getErrors()]);
- }
- $order->resetMem();
- $logger->log([date("Y-m-d H:i:s"), '酒店确认,清除缓存,订单号:' . $order_id . ',订单状态:' . $order->ORDER_STATUS . '订单渠道:' . $order->OUTSIDE_SALE_ORG_ID . "\n" . '渠道订单状态:' . $tmp_channel_status . PHP_EOL], 'ali/error');
- return \GuzzleHttp\json_encode(['code' => 0]);
- }
-
- /**
- * Author:Steven
- * Desc:拒单
- * @param $order_id
- * @param $status
- * @param $msg
- * @return string
- * @throws NotFoundHttpException
- */
- public function actionRefuse($order_id, $status, $msg)
- {
- $order = $this->findModel($order_id);
- //这里需要判断渠道订单状态:
- //当渠道接单状态为已接单或拒绝取消,然后发单给酒店,这个时候酒店不应该有拒单按钮的
- //防止酒店页面在未刷新的情况下,点击拒绝
- if ($order->ORDER_STATUS != $status && $order->CHANNEL_ORDER_STATUS != OrderMain::ORDER_CHANNEL_STATUS_ACCEPT && $order->CHANNEL_ORDER_STATUS != OrderMain::ORDER_CHANNEL_STATUS_APPLY_CANCEL_REJECT) {
- return \GuzzleHttp\json_encode(['code' => 2, 'msg' => '订单状态已经发生变化,请刷新后再操作']);
- }
- //当渠道状态为待接单,酒店拒单了,这个时候为了不直接影响服务数据,不直接推送拒绝给直连渠道,由客服自己决定(高瑾:2017-12-22)
- //当渠道接单状态为已接单或拒绝取消,然后发单给酒店,这个时候酒店不应该有拒单按钮的(高瑾:2017-12-22)
- $order->ORDER_STATUS = OrderMain::ORDER_STATUS_CANCEL;
- if ($order->DOCKING_TYPE == OrderMain::ORDER_TYPE_CHANNEL)
- $order->CHANNEL_ORDER_STATUS = OrderMain::ORDER_CHANNEL_STATUS_REJECT;
- $order->UPDATE_USER_ID = Yii::$app->user->id;
- $order->ORDER_LEVEL = OrderMain::ORDER_LEVEL_CANCEL;
- $order->UPDATE_TIME = date('Y-m-d H:i:s', time());
- if ($order->validate()) {
- if (!$order->refuse($msg)) {
- return \GuzzleHttp\json_encode(['code' => 1, 'msg' => '拒单失败']);
- }
-
- //重要:这里渠道拒单不推送渠道拒单状态,原因是有些订单,即使酒店拒单了,但是我们依然还是要收渠道的钱,所以拒绝渠道的订单均由我们人工操作(截止目前(2017-11-23)阿里、携程都实用这个逻辑:)
- // elseif ($order->DOCKING_TYPE == OrderMain::ORDER_TYPE_CHANNEL) {
- // //对接的订单,需要推送状态
- // $interFace = OrderChannelInfo::findOne(['CANCEL_FLAG' => 0, 'ORDER_ID' => $order->ORDER_ID]);
- // if ($interFace != null) {
- // $params = [
- // 'OrderID' => $order->ORDER_ID,//订单ID
- // 'InterfaceConfirmNo' => '',//酒店确认号
- // 'OrderStatus' => 4,//订单状态 3:确认;4:拒绝
- // 'InterFaceSendID' => $interFace->InterFaceSendID,//订单接口发送号
- // 'channelId' => Yii::$app->params['ctrip']['relation_supplier_id'],//渠道ID 携程传1
- // ];
- // $set = new SetService();
- // $setDes = $set->setOrderStatus($params);
- // if ($setDes['flag'] == false) {
- // zOfficeWechat::sendMsg([
- // 'agentid' => zOfficeWechat::SEND_HOTEL,
- // 'title' => '直连订单状态推送失败:',
- // 'msg' => '酒店已经拒绝了直连订单:' . $order->ORDER_ID . "\n但是直连状态推送失败,请手动拒单。",
- // 'touser' => 'gaoj,wangxj,shifp,yuw']
- // );
- // }
- //
- // }
- // }
- } else {
- return \GuzzleHttp\json_encode(['code' => 1, 'msg' => $order->getErrors()]);
- }
- //拒单成功,清除
- $order->resetMem();
- //发企业微信
- /* @var $user User */
- $user = Yii::$app->user->identity;
- $supplier = BaseSupplier::findOne(['ID' => $user->TOP_ORG_ID]);
- $customer_list = $this->_messageList;
- $arr = array(
- "agentid" => 1000002,
- "title" => '酒店拒单:',
- "msg" => $supplier->SUPPLIER_NAME . '拒绝订单:' . $order->ORDER_ID,
- "touser" => $customer_list);
-
- zOfficeWechat::sendMsg($arr);
- return \GuzzleHttp\json_encode(['code' => 0]);
- }
-
- /**
- * @param $order_id
- * @param $msg string 备注内容
- */
- public function actionAddNote($order_id, $msg)
- {
- $order = $this->findModel($order_id);
-
- //添加备注
- $note = new OrderComment();
- $note->ORDER_ID = $order_id;
- $note->COMMENT_TXT = $msg;
- $note->COMMENT_TYPE = OrderComment::TYPE_PUBLIC;
- //记录添加备注的操作日志
- $order->saveLog('note', false, '添加备注:' . $msg);
-
- if ($note->save()) {
- return \GuzzleHttp\json_encode(['code' => 0]);
- } else {
- return \GuzzleHttp\json_encode(['code' => 1, 'msg' => $note->getErrors()]);
- }
- }
-
- /**
- * Notes:已安排订单取消,酒店同意取消
- * User: Steven
- * Date: 2018/1/18
- * Time: 11:51
- * @param $order_id
- * @param $status
- * @return string
- * @throws NotFoundHttpException
- * @throws \yii\db\Exception
- */
- public function actionCancelSure($order_id, $status)
- {
- $order = $this->findModel($order_id);
- if ($order->ORDER_STATUS != $status) {
- return \GuzzleHttp\json_encode(['code' => 2, 'msg' => '订单状态已经发生变化,请刷新后再操作']);
- }
- $order->ORDER_DISABLE_TYPE = OrderMain::ORDER_DISABLE_TYPE_CONFIRMED;
- $order->ORDER_STATUS = OrderMain::ORDER_STATUS_CANCEL;
- $order->ORDER_LEVEL = OrderMain::ORDER_LEVEL_CANCEL;
- $order->UPDATE_TIME = date('Y-m-d H:i:s', time());
- $flag = $order->getOldAttribute('ORDER_STATUS');
- $logger = new TopLogger();
- $trans = Yii::$app->db->beginTransaction();
- try {
- $res = $order->save();
- if (!$res) {
- throw new \Exception();
- }
- $roolback = $order->rollbackStocks();
- $order->saveLog('cancel_confirm', $flag);
- $order->resetMem();
- //修改子订单的状态值
- $orders_res = OrderMain::updateAll([
- 'ORDER_STATUS' => OrderMain::ORDER_STATUS_CANCEL,
- 'ORDER_DISABLE_TYPE' => OrderMain::ORDER_DISABLE_TYPE_CONFIRMED,
- 'ORDER_LEVEL' => OrderMain::ORDER_LEVEL_CANCEL,
- 'UPDATE_TIME' => date('Y-m-d H:i:s', time())
- ],
- ['CANCEL_FLAG' => 0, 'PARENT_ORDER_ID' => $order->ORDER_ID]);
-
- if (!$orders_res) {
- throw new \Exception('修改子订单失败');
- }
-
- //发企业微信
- /* @var $user User */
- $user = Yii::$app->user->identity;
- $supplier = BaseSupplier::findOne(['ID' => $user->TOP_ORG_ID]);
- $customer_list = $this->_messageList;
- $arr = array(
- "agentid" => 1000002,
- "title" => '酒店同意退单:',
- "msg" => '酒店' . $supplier->SUPPLIER_NAME . "\n订单号:" . $order->ORDER_ID,
- "touser" => $customer_list);
-
- zOfficeWechat::sendMsg($arr);
- $trans->commit();
- return \GuzzleHttp\json_encode(['code' => 0]);
- } catch (\Exception $e) {
- $trans->rollBack();
- $error_arr = array(
- "agentid" => 1000002,
- "title" => '酒店同意退单失败:',
- "msg" => "订单号:" . $order->ORDER_ID,
- "touser" => $this->_messageList
- );
- zOfficeWechat::sendMsg($error_arr);
- return \GuzzleHttp\json_encode(['code' => 1, 'msg' => $order->getErrors()]);
- }
- }
-
- /**
- * Notes:已安排订单取消,酒店拒绝取消
- * User: Steven
- * Date: 2018/1/18
- * Time: 11:52
- * @param $order_id
- * @param $status
- * @return string
- * @throws NotFoundHttpException
- */
- public function actionCancelReject($order_id, $status)
- {
- $order = $this->findModel($order_id);
- if ($order->ORDER_STATUS != $status) {
- return \GuzzleHttp\json_encode(['code' => 2, 'msg' => '订单状态已经发生变化,请刷新后再操作']);
- }
- $order->ORDER_DISABLE_TYPE = OrderMain::ORDER_DISABLE_TYPE_CONFIRMED;
- $order->ORDER_STATUS = OrderMain::ORDER_STATUS_CONFIRMED;
- $order->UPDATE_TIME = date('Y-m-d H:i:s', time());
- if (!is_numeric($order->ORDER_CONFIRM_CODE)) {
- $order->ORDER_CONFIRM_CODE = '';
- }
- $flag = $order->getOldAttribute('ORDER_STATUS');
- if ($order->save()) {
- $order->saveLog('cancel_confirm', $flag);
- //清除memcache缓存
- $order->resetMem();
- //发企业微信
- /* @var $user User */
- $user = Yii::$app->user->identity;
- $supplier = BaseSupplier::findOne(['ID' => $user->TOP_ORG_ID]);
- $customer_list = $this->_messageList;
- $arr = array(
- "agentid" => 1000002,
- "title" => '酒店拒绝退单:',
- "msg" => '酒店' . $supplier->SUPPLIER_NAME . "\n订单号:" . $order->ORDER_ID,
- "touser" => $customer_list);
-
- zOfficeWechat::sendMsg($arr);
- return \GuzzleHttp\json_encode(['code' => 0]);
- } else
- return \GuzzleHttp\json_encode(['code' => 1, 'msg' => $order->getErrors()]);
- }
-
- public function actionDownload($id, $type = 1)
- {
- $order = OrderMain::findOne(['ORDER_ID' => $id, 'PARENT_ORDER_ID' => 0, 'CANCEL_FLAG' => 0]);
- $order_id = $order->ORDER_ID;
- $filename = "【" . $order_id . "】" . $order->CUSTOMER_NAME . $order->PROD_START_STATION_DATE . ".doc";
-
- ob_start(); //--网页显示
- echo '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word"
- xmlns="http://www.w3.org/TR/REC-html40">';
- $html = $order->wordHtml($type);
-
- echo $html;
- header('Content-type: application/word');
- header("Content-Disposition: attachment; filename=\"{$filename}\"");
- // @readfile($filename,0777);
- ob_flush();
- flush();
- exit();
- }
-
-
- /**
- * @Author wanglg
- * @Desc 获取订单内部备注信息,用于弹框显示
- * @return string
- */
- public function actionGetComment()
- {
- $request = Yii::$app->request->post();
- $comment = new OrderComment();
- $comment_list = $comment->getPublicComment($request['order_id']);
-
- $data['comment_list'] = $comment_list;
-
- return json_encode($data);
- }
-
- /**
- * 导出订单列表
- */
- public function actionExport()
- {
- $searchModel = new searchOrderMain();
- $search = Yii::$app->request->queryParams;
- $dataProvider = $searchModel->supplierSearch($search);
- $dataProvider->pagination = false;
- $query = $dataProvider->query;
- $query->andFilterWhere(['order_main.ORDER_STATUS' => $searchModel->ORDER_STATUS]);
- $data = $dataProvider->getModels();
-
- $objPHPExcel = new zPhpExcel(); //实例化PHPExcel类
- $objPHPExcel->file_name = '订单信息' . date('Y-m-d');
- $objSheet = $objPHPExcel->getActiveSheet();
- $objSheet->setTitle('订单列表');
- //设置表头
- $attributes = OrderMain::supplierExportAttributes();
- $order = new OrderMain();
- foreach ($attributes as $key => $item) {
- //A1为编号不需要设置
- $objSheet->setCellValue(chr(66 + $key) . '1', $order->getAttributeLabel($item));
- }
- //内存设置,位置不一定合理
- ini_set("memory_limit", "-1");
- foreach ($data as $key => $datum) {
- foreach ($attributes as $index => $item) {
- if ($index === 0)
- $objSheet->setCellValue('A' . ($key + 2), $key + 1);
- //订单状态、备注需要特殊处理
- if ($item === 'ORDER_STATUS') {
- $str = $datum->statusLabel->TYPE_NAME;
- } elseif ($item === 'CUSTOMER_MEMO') {
- $str = '';
- if (!empty($datum->publicMemo)) {
- foreach ($datum->publicMemo as $memo) {
- $str .= $memo->COMMENT_TXT . ';';
- }
- $str = substr($str, 0, -1);
- }
- } else {
- $str = $datum->$item;
- }
- $objSheet->setCellValue(chr(66 + $index) . ($key + 2), $str);
- }
- }
-
- //设置宽度
- $objPHPExcel->setColumnSize(range('C', 'M'), [20, 40, 25, 12, 12, 10, 10, 12, 12, 10, 40]);
- $objPHPExcel->output();
- }
-
- /**
- * 获取memcache中的订单列表,只要198和383状态的订单
- * 返回memcache中对应酒店的缓存订单,查询过 1 次之后,置status为1
- * @param $supplier_id integer
- */
- public function actionMemList($supplier_id)
- {
- $mem = Yii::$app->cacheCS;
- $newOrder = $mem->get('hotel_newOrder');
- if ($newOrder && count($newOrder) > 0) {
- if (isset($newOrder[$supplier_id])) {
- $tmp = $newOrder[$supplier_id];
- foreach ($newOrder[$supplier_id] as &$order) {
- $order['status'] = in_array($order['type'], array(198, 383)) ? 1 : 0;
- }
- $mem->set('hotel_newOrder', $newOrder);
- return \GuzzleHttp\json_encode($tmp);
- }
- }
- return \GuzzleHttp\json_encode(array());
- }
-
- /**
- * Finds the OrderMain model based on its primary key value.
- * If the model is not found, a 404 HTTP exception will be thrown.
- * @param integer $id
- * @return OrderMain the loaded model
- * @throws NotFoundHttpException if the model cannot be found
- */
- protected function findModel($id)
- {
- if (($model = OrderMain::findOne(['ORDER_ID' => $id, 'CANCEL_FLAG' => 0])) !== null) {
- return $model;
- } else {
- throw new NotFoundHttpException('无效的订单号,请刷新页面后重试');
- }
- }
- }
|