<?php

namespace backend\modules\hotel\controllers;

use backend\modules\api\models\BaseSupplier;
use backend\modules\api\models\BaseUser;
use backend\modules\hotel\models\BaseConfirmOrganization;
use backend\modules\hotel\models\BaseSupplierPurchase;
//use backend\modules\hotel\models\BaseSupplierPurchase;
use backend\modules\hotel\models\CommonOrder;
use backend\modules\hotel\models\HotelRelation;
use backend\modules\hotel\models\OperaHotel;
use backend\modules\hotel\models\OperaHotelBaseRoom;
use backend\modules\hotel\models\OperaHotelRoom;
use backend\modules\hotel\models\OperaSort;
use backend\modules\hotel\models\OrderComment;
use backend\modules\hotel\models\OrderHtStatusLog;
use backend\modules\hotel\models\OrderMain;
use backend\modules\zzcs\models\BaseAreaView;
use Yii;
use yii\helpers\Json;
use yii\web\NotFoundHttpException;
use yii\widgets\ActiveForm;

class HotelRoomController extends \yii\web\Controller
{
    public $layout = "@backend/modules/motorcade/views/layouts/iframe_new";

    public $enableCsrfValidation = false;

    /**
     * 酒店上下架管理列表
     */
    public function actionUpDownList()
    {
        $model = new OperaHotel();
        $model->HOTEL_STATUS = 1;
        if (Yii::$app->request->isPost || Yii::$app->request->isGet) {
            $data['OperaHotel'] = is_null(Yii::$app->request->post('OperaHotel')) ? Yii::$app->request->get('OperaHotel') : Yii::$app->request->post('OperaHotel');
            $model->load($data);
        }
        $dataProvider = $model->upDownHoteList();

        return $this->render('upDownList', ['model' => $model, 'dataProvider' => $dataProvider]);
    }

    /**
     * 上架酒店
     */
    public function actionPutawayHotel()
    {
        $request = Yii::$app->request->get();
        $user = new BaseUser();
        $hotel = new OperaHotel(['scenario' => 'putawayHotel']);
        $base_room = new OperaHotelBaseRoom();
        $supplier = new BaseSupplier();
        $purchase = new BaseSupplierPurchase();
        // 查找未上架的酒店列表
        $hotel_list = OperaHotel::findAll(['cancel_flag' => 0, 'IS_SELL' => 0]);
        if (empty($hotel_list)) {
            Yii::$app->session->setFlash('warning', "无可上架酒店!");

            return $this->redirect('/hotel/hotel-room/up-down-list');
        }
        $supplier_list = $supplier->getSupplierList();
        $channel_list = $supplier->getChannelList();
        $confirm_from = BaseConfirmOrganization::findAll(['CANCEL_FLAG' => 0]);
        $pricipal_list = $hotel->getPrincipal();
        $isAjax = Yii::$app->request->isPjax;
        if ($isAjax && isset($_REQUEST['hotel_id'])) {
            $hotel_id = $_REQUEST['hotel_id'];
        } elseif ($isAjax && isset($_REQUEST['supplier_id'])) {
            $supplier_id = $_REQUEST['supplier_id'];
        }
        $hotel_one_id = empty($hotel_id) ? $hotel->getFirstHotel()[0]['HOTEL_ID'] : $hotel_id;
        $hotel_base_room = $base_room->getBaseRoomAll($hotel_one_id);
        //        获取供应商id
        $supplier_one_id = empty($supplier_id) ? $supplier->getFirstSupplier()[0]['ID'] : $supplier_id;
        //        获取采购人
        $purchase_list = $purchase->getPurchaseName($supplier_one_id);
        $data['user'] = $user;
        $data['purchase'] = $purchase;
        $data['purchase_list'] = $purchase_list;
        $data['hotel_base_room'] = $hotel_base_room;
        $data['hotel_list'] = $hotel_list;
        $data['hotel'] = $hotel;
        $data['base_room'] = $base_room;
        $data['supplier_list'] = $supplier_list;
        $data['supplier'] = $supplier;
        $data['pricipal_list'] = $pricipal_list;
        $data['confirm_from'] = $confirm_from;
        $data['channel_list'] = $channel_list;

        /********************上架酒店开始************************/
        $flag = Yii::$app->request->isPost;
        if ($flag) {
            $request = Yii::$app->request->post();
            $hotel_info = $hotel->findHotel($request['OperaHotel']['HOTEL_NAME']);

            $hotel_info->setScenario('putawayHotel');
            if (isset($request['ROOM_TYPE_SALE'])) {
                $request['OperaHotel']['ROOM_TYPE_SALE'] = empty($request['ROOM_TYPE_SALE']) ? '' : implode(',', $request['ROOM_TYPE_SALE']);
                unset($request['OperaHotel']['HOTEL_NAME']);
            }

            $request['OperaHotel']['DRIECT_CONNNECT_CHANNEL'] = empty($request['channel_id']) ? '' : implode(',', $request['channel_id']);
            if ($hotel_info->load($request)) {
                if (!$hotel_info->save()) {
                    Yii::$app->session->setFlash('error', "上架失败!");
                } else {
                    if (!empty($request['channel_id']) && in_array(675, $request['channel_id'])) {
                        $send_data = array('hotel_id' => $hotel_info['HOTEL_ID']);
                        $http_res = Yii::$app->runAction('hotel/ali/add-hotel', $send_data);
                        $http_res = json_decode($http_res, true);
                    }

                    // 如果进行了酒店推送,判断推送是否成功,本地建立直连关系
                    if (!empty($http_res) && $http_res['code'] != 0) {
                        Yii::$app->session->setFlash('error', "上架成功, 推送失败!");
                    } elseif (!empty($http_res) && $http_res['code'] == 0) {
                        Yii::$app->session->setFlash('success', "上架成功, 推送成功!");
                    }

                    if (empty($request['channel_id'])) {
                        Yii::$app->session->setFlash('success', "上架成功!");
                    }

                    return $this->redirect('/hotel/hotel-room/up-down-list');
                }
            } else {
                Yii::$app->session->setFlash('error', "上架失败!");
            }

        }

        /********************上架酒店结束************************/
        return $this->render('putawayHotel', ['data' => $data]);
    }

    /**
     * 修改上架酒店
     */
    public function actionUpdatePutHotel($hotel_id)
    {
        /**修改酒店**/
        $hotel = new OperaHotel();
        $one_hotel_info = $hotel->getOneHotelInfo($hotel_id);
        $one_hotel_info->setScenario('putawayHotel');
        $base_room = new OperaHotelBaseRoom();
        $supplier = new BaseSupplier();
        $purchase = new BaseSupplierPurchase();
        $hotel_list = OperaHotel::findAll(['cancel_flag' => 0]);
        $channel_list = $supplier->getChannelList();
        $supplier_list = $supplier->getSupplierList();
        $confirm_from = BaseConfirmOrganization::findAll(['CANCEL_FLAG' => 0]);
        $one_hotel_info->HOTEL_NAME = $one_hotel_info->HOTEL_ID;
        $supplier_id = $one_hotel_info->SUPPLIER_ID;
        $pricipal_list = $hotel->getPrincipal();
        // 获取该酒店直连的渠道id
        $channel_arr = explode(',', $one_hotel_info->DRIECT_CONNNECT_CHANNEL);
        $connect_channel = $supplier->getConnectChannel($channel_arr);


        $isAjax = Yii::$app->request->isPjax;

        if ($isAjax && isset($_REQUEST['hotel_id'])) {
            $hotel_id = $_REQUEST['hotel_id'];
        } elseif ($isAjax && isset($_REQUEST['supplier_id'])) {
            $supplier_id = $_REQUEST['supplier_id'];
        }

        $hotel_one_id = $hotel_id;
        $hotel_base_room = $base_room->getBaseRoomAll($hotel_one_id);
        $supplier_one_id = $supplier_id;
        $purchase_list = $purchase->getPurchaseName($supplier_one_id);

        $data['channel_list'] = $channel_list;
        $data['purchase_list'] = $purchase_list;
        $data['hotel_base_room'] = $hotel_base_room;
        $data['hotel_list'] = $hotel_list;
        $data['hotel'] = $one_hotel_info;
        $data['supplier_list'] = $supplier_list;
        $data['pricipal_list'] = $pricipal_list;
        $data['confirm_from'] = $confirm_from;
        $data['connect_channel'] = $connect_channel;
        $data['op'] = 'modify';

        /********************修改上架酒店开始************************/
        $flag = Yii::$app->request->isPost;
        if ($flag) {
            $request = Yii::$app->request->post();
            $hotel_info = $hotel->findHotel($request['OperaHotel']['HOTEL_NAME']);

            if (isset($request['ROOM_TYPE_SALE'])) // 拼接可售基础房型字段
            {
                $request['OperaHotel']['ROOM_TYPE_SALE'] = empty($request['ROOM_TYPE_SALE']) ? '' : implode(',', $request['ROOM_TYPE_SALE']);
                $request['OperaHotel']['HOTEL_NAME'] = $hotel_info->HOTEL_NAME;
            }

            $request['OperaHotel']['DRIECT_CONNNECT_CHANNEL'] = empty($request['channel_id']) ? '' : implode(',', $request['channel_id']);

            if ($hotel_info->load($request) && $hotel_info->validate()) {
                $hotel_info->IS_SELL = 1;
                if (!$hotel_info->save()) {
                    Yii::$app->session->setFlash('error', "修改失败!");

                    return $this->render('putawayHotel', ['data' => $data]);
                }

                if (!empty($request['channel_id']) && in_array(Yii::$app->params['ali']['relation_supplier_id'], $request['channel_id'])) {
                    $send_data = array('hotel_id' => $hotel_info['HOTEL_ID']);
                    $http_res = Yii::$app->runAction('hotel/ali/add-hotel', $send_data);
                    $http_res = json_decode($http_res, true);
                }

                $msg = '';
                $key = '';
                // 如果进行了酒店推送,判断推送是否成功,本地建立直连关系
                if (!empty($http_res) && $http_res['code'] != 0) {
                    $key = 'error';
                    $msg = '修改上架成功, 推送失败!失败原因:' . $http_res['msg'];
                } elseif (!empty($http_res) && $http_res['code'] == 0) {
                    $key = 'success';
                    $msg = '修改上架成功, 推送成功!';
                }

                // 直连渠道为空,则只进行酒店上架,并未推送添加酒店
                if (empty($request['channel_id'])) {
                    $key = 'success';
                    $msg = '修改上架成功!';
                }

                Yii::$app->session->setFlash($key, $msg);

                return $this->redirect('/hotel/hotel-room/up-down-list');
            }
        }

        /********************修改上架酒店结束************************/

        return $this->render('putawayHotel', ['data' => $data]);
    }

    /**
     *  开售酒店
     * @param $hotels:根据酒店id拼接的字符串
     */
    public function actionOpenHotel($hotels)
    {
        $uid = Yii::$app->user->id;
        $res = OperaHotel::updateAll(['HOTEL_STATUS' => 1, 'UPDATE_TIME' => date('Y-m-d H:i:s'), 'UPDATE_USER_ID' => $uid], 'HOTEL_ID in (' . $hotels . ')');

        if ($res) {
            Yii::$app->session->setFlash('success', '开售成功!');
        } else {
            Yii::$app->session->setFlash('error', '开售失败!');
        }

        return $this->redirect(['up-down-list']);
    }

    /**
     * 停售酒店
     */
    public function actionCloseHotel($hotels)
    {
        $uid = Yii::$app->user->id;
        $res = OperaHotel::updateAll(['HOTEL_STATUS' => 0, 'UPDATE_TIME' => date('Y-m-d H:i:s'), 'UPDATE_USER_ID' => $uid], 'HOTEL_ID in (' . $hotels . ')');

        if ($res) {
            Yii::$app->session->setFlash('success', '停售成功!');
        } else {
            Yii::$app->session->setFlash('error', '停售失败!');
        }

        return $this->redirect(['up-down-list']);
    }

    public function actionSetBedType()
    {
        $request = Yii::$app->request->post();
        $base_room = OperaHotelBaseRoom::findOne(['MAIN_ID' => $request['baseRoomId']]);
        $base_room->BED_TYPE = implode(',', $request['OperaHotelBaseRoom']['BED_TYPE']);
        $base_room->CURRENCY_CODE = implode(',', $request['OperaHotelBaseRoom']['CURRENCY_CODE']);
        if ($base_room->update())
            Yii::$app->session->setFlash('success', '设置成功!');
        else
            Yii::$app->session->setFlash('error', '设置失败!');

        return $this->redirect(['/hotel/hotel-room/update-put-hotel', 'hotel_id' => $base_room['HOTEL_ID']]);
    }

    public function actionGetBaseRoom()
    {
        $request = Yii::$app->request->get();
        $base_room = new OperaHotelBaseRoom(['scenario' => 'set_bed_type']);
        $bed_info = $base_room->getBedType($request['main_id']);

        return 1;
    }

    /**
     * User:Steven
     * Desc:房态管理-酒店列表
     * @return string
     */
    public function actionIndex()
    {
        $model = new OperaHotel();
        if (Yii::$app->request->isPost || Yii::$app->request->isGet) {
            $model->HOTEL_STATUS = 1;
            $data['OperaHotel'] = is_null(Yii::$app->request->post('OperaHotel')) ? Yii::$app->request->get('OperaHotel') : Yii::$app->request->post('OperaHotel');
            $model->load($data);
        }
        $dataProvider = $model->getHotel();

        return $this->render('index', ['model' => $model, 'dataProvider' => $dataProvider]);
    }

    /**
     * User:Steven
     * Desc:
     * @return string
     */
    public function actionRoomManager()
    {
        $model = new OperaHotel();
        $dataProvider = $model->getHotel();

        return $this->render('roomManager', ['dataProvider' => $dataProvider]);
    }


    /**
     * Notes:酒店预定页面
     * User: Steven
     * Date: 2018/1/18
     * Time: 13:15
     * @return string
     */
    public function actionBookOrderView()
    {
        $model = new OperaHotelRoom();
        $data['model'] = $model;
        $dataProvider = $model->getHotelProduct(Yii::$app->request->queryParams);

        return $this->render('bookView', ['data' => $data, 'dataProvider' => $dataProvider]);
    }

    /**
     * Notes:CS系统酒店订单预订
     * User: Steven
     * Date: 2018/1/24
     * Time: 12:02
     * @return array|string|\yii\web\Response
     * @throws \yii\db\Exception
     */
    public function actionBookOrder()
    {
        $room_id = Yii::$app->request->get('room_id');
        //查询下单的产品信息
        $room_info = OperaHotelRoom::find()
            ->select(['a.ID', 'a.HOTEL_ID', 'a.PARENT_ROOM_TYPE', 'a.ROOM_TYPE', 'a.ROOM_NAME', 'a.BREAKFAST_INCLUDE',
                'a.INNER_IDENTIFY', 'a.BED_TYPE', 'b.HOTEL_NAME', 'c.BED_TYPE', 'c.BASE_ROOM_NAME', 'b.SUPPLIER_ID', 'd.TRUE_NAME'])
            ->joinWith('operaHotel b')
            ->joinWith('operaHotelBaseRoom c')
            ->leftJoin('base_user d', 'b.PRINCIPAL=d.ID')
            ->where(['a.ID' => $room_id])
            ->from('opera_hotel_room a')->asArray()->one();
        $stock_info = [];
        $stock_arr[0] = ['stock_id' => 0, 'stock_count' => 0];
        if (Yii::$app->request->isPjax) {
            $common_order = new CommonOrder(['scenario' => 'Product']);
            $params = Yii::$app->request->queryParams;
            $common_order->load($params);
            $stock_info = $common_order->getHotelStock();
            $arr = [];
            foreach ($stock_info as $item) {
                $arr[] = $item['OVERSELL_FLAG'] == 1 ? $item['BUYOUT'] + $item['INQUIRY'] + $item['RETAIN'] : $item['REMAINING_COUNT'];
            }
            if (!empty($stock_info)) {
                $minStock = min($arr) > 30 ? 30 : min($arr);
                for ($i = 1; $i <= $minStock; $i++) {
                    $stock_arr[$i] = [
                        'stock_id' => $i,
                        'stock_count' => $i,
                    ];
                }
            }
        }
        if (Yii::$app->request->post()) {
            $params = Yii::$app->request->post();
            $common_order = new CommonOrder(['scenario' => 'BookHotelOrder']);
            $common_order->CreateUserID = Yii::$app->user->id;
            $common_order->RoomPrices = $params['RoomPrices'];
            $common_order->DistribID = $params['OrderMain']['OUTSIDE_SALE_ORG_ID'];
            $common_order->RoomID = $params['OrderMain']['RUN_ID'];
            $common_order->HotelID = $params['OrderMain']['PARENT_PROD_ID'];
            $common_order->OrderID = $params['OrderMain']['OUTSIDE_ORDER_NO'];
            $common_order->CheckIn = $params['OrderMain']['PROD_START_STATION_DATE'];
            $common_order->CheckOut = $params['OrderMain']['PROD_END_STATION_DATE'];
            $common_order->RoomNum = $params['OrderMain']['room_count'];
            $common_order->ContactTel = $params['OrderMain']['CUSTOMER_MOBILE'];
            $common_order->NeedInvoice = 0;
            $common_order->OrderGuests = [0 => ['Name' => $params['OrderMain']['CUSTOMER_NAME']]];
            $common_order->ContactTel = $params['OrderMain']['CUSTOMER_MOBILE'];
            $common_order->PayType = CommonOrder::PAY_TYPE_CREDIT;
            $common_order->PayTradeNo = [];
            $common_order->Currency = 'RMB';
            foreach ($params['OrderComment']['COMMENT_TXT'] as $key => $item) {
                if (!empty($params['OrderComment']['COMMENT_TXT'])) {
                    $comment[] = [
                        'comment_type' => $key,
                        'comment' => $item
                    ];
                }
            }
            $common_order->Comment = $comment;
            $common_order->CommentType = $params['OrderMain']['Comment'];
            $common_order->TotalPrice = $params['OrderMain']['ORDER_PRICE'];
            $common_order->OrderTitleID = 0; //非组合单 ,组合单号为0
            if ($common_order->validate()) {
                $res = $common_order->bookHotelOrder();
                if ($res['code'] == CommonOrder::RETURN_CODE_SUCCESS) {
                    if (isset($params['OrderMain']['SendStatus']) && $params['OrderMain']['SendStatus'] == 198) {
                        $status_log = new OrderHtStatusLog();  //记录罚单的status数据
                        $status_log->ORDER_ID = $res['data']['order_id'];
                        $status_log->ORDER_STATUS = OrderMain::ORDER_STATUS_WAITING_CONFIRM;
                        $status_log->BEFORE_STATUS = OrderMain::ORDER_STATUS_WAITING_SEND;
                        $status_log->CREATE_USER_ID = Yii::$app->user->id;
                        $status_log->UPDATE_USER_ID = Yii::$app->user->id;
                        if ($status_log->save()) {
                            OrderMain::updateAll(['ORDER_STATUS' => OrderMain::ORDER_STATUS_WAITING_CONFIRM, 'UPDATE_TIME' => date('Y-m-d H:i:s', time())],
                                ['and', ['CANCEL_FLAG' => 0], ['or', ['ORDER_ID' => $res['data']['order_id']], ['PARENT_ORDER_ID' => $res['data']['order_id']]]]);
                            OrderMain::setMemcache($res['data']['order_id'], OrderMain::ORDER_STATUS_WAITING_CONFIRM, $room_info['SUPPLIER_ID'], $room_info['ROOM_NAME']);
                            $common_order->setOrderLog($res['data']['order_id'], $room_info['PARENT_ROOM_TYPE'], $room_info['ROOM_TYPE'], "订单号为:" . $res['data']['order_id'] . '的状态由待发单变为待确认');
                        } else {
                            Yii::$app->session->setFlash('warning', "预订成功,订单号:" . $res['data']['order_id'] . '自动发单失败,请在订单列表手动发单');

                            return $this->redirect(['/hotel/ordermain/index']);
                        }
                    }
                    Yii::$app->session->setFlash('success', "预订成功,订单号:" . $res['data']['order_id']);

                    return $this->redirect(['/hotel/ordermain/index']);
                } else {
                    Yii::$app->session->setFlash('error', "预订失败,原因:" . $res['info']);
                }
            } else {
                $error = array_values($common_order->getFirstErrors());
                Yii::$app->session->setFlash('error', "预订失败,原因:" . $error);
            }
        }
        $data['stock_info'] = $stock_info;
        $data['stock_arr'] = $stock_arr;
        $data['room_info'] = $room_info;
        $data['order'] = new OrderMain(['scenario' => 'csBook']);
        $data['order_comment'] = new OrderComment();
        $data['channel'] = BaseSupplier::find()
            ->select(['DISTINCT(a.ID) ID', 'a.SUPPLIER_NAME'])
            ->joinWith('baseSupplierSale as b', false)
            ->from('base_supplier as a')
            ->where(['and',
                ['=', 'b.PARENT_TYPE', 25],
                ['=', 'a.SUPPLIER_TYPE', 301],
                ['=', 'a.cancel_flag', 0],
                ['=', 'a.IS_DISABLED', 0],
                ['=', 'b.cancel_flag', 0],
                ['or', ['=', 'main_corp_id', Yii::$app->user->identity->MAIN_CORP_ID], ['=', 'main_corp_id', 0],
                ],
            ])->asArray()->all();

        return $this->render('bookOrder', ['data' => $data, 'dataProvider' => []]);
    }

    /**
     * @Author wanglg
     * @Desc异步验证客户端请求
     * @return array
     */
    public function actionValidateForm()
    {
        Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
        $model = new OrderMain(['scenario' => 'csBook']);
        $model->load(Yii::$app->request->post());

        return ActiveForm::validate($model);
    }

    /**
     * @Author wanglg
     * @Desc ajax验证同一渠道下的订单号是否重复
     * @return string
     */
    public function actionValidateOutOrder()
    {
        $request = Yii::$app->request->post();
        if (empty($request['channel_id']) || empty($request['outside_order_id'])) {
            return json_encode(array('code' => 0, 'msg' => ''));
        }
        $res = OrderMain::findOne(['OUTSIDE_SALE_ORG_ID' => $request['channel_id'], 'OUTSIDE_ORDER_NO' => trim($request['outside_order_id']),
            'ORDER_PROD_TYPE' => [25, 26], 'CANCEL_FLAG' => 0, 'ORDER_VALID_STATUS' => 1]);
        $data = empty($res) ? array('code' => 0, 'msg' => '') : array('code' => 1, 'info' => '渠道订单号已存在,请核实无误后再作预订');

        return json_encode($data);
    }

    /**4
     * Notes:临时刷订单数据
     * User: Steven
     * Date: 2018/1/25
     * Time: 0:03
     * @return array
     * @throws \yii\db\Exception
     */
    public function actionTemUpdate()
    {
        $sql = "select ORDER_ID,PARENT_PROD_ID,PROD_ID from order_main 
                where PARENT_ORDER_ID=0 and ORDER_PROD_TYPE=25 and CREATE_TIME 
                BETWEEN '2017-12-15 00:00:00' and '2017-12-20 00:00:00' and ORDER_STATUS<>148";
        $connection = Yii::$app->db;
        $res = $connection->createCommand($sql)->queryAll();
        foreach ($res as $item) {
            $res1 = OperaHotelRoom::findOne(['HOTEL_ID' => $item['PARENT_PROD_ID'], 'ROOM_TYPE' => $item['PROD_ID']]);
            if ($res1) {
                $COUNT = OrderMain::updateAll(['RUN_ID' => $res1->ID, 'RUN_BUS_SEAT_TYPE' => 2],
                    ['and', ['CANCEL_FLAG' => 0], ['or', ['ORDER_ID' => $item['ORDER_ID']], ['PARENT_ORDER_ID' => $item['ORDER_ID']]]]);
            }
        }
    }

    /**
     * @Author wanglg
     * @Desc获取渠道商排序列表
     * @return string
     */
    public function actionOrderChannelList()
    {
        if (Yii::$app->request->isAjax) {
            $request = Yii::$app->request->post();
            // 修改
            $res = 0;
            if (!empty($request['seqId'])) {
                $model = OperaSort::findOne($request['seqId']);
                $model->seq = $request['seq'];
                $res = $model->update();

            } else {
                $model_sort = new OperaSort();
                $arr = array('hotel_id' => 0, 'base_room_id' => 0, 'room_id' => 0, 'channel_id' => $request['channel_id'], 'seq' => $request['seq']);
                if ($model_sort->load($arr, '') && $model_sort->validate()) {
                    $res = $model_sort->save();
                }
            }

            if ($res) {
                Yii::$app->session->setFlash('success', '修改排序成功');
            } else {
                Yii::$app->session->setFlash('error', '修改排序失败');
            }
        }
        // 获取渠道商列表
        $model = new BaseSupplier();
        $channel_list = $model->getOrderChannelList();
        return $this->render('channel_order', ['data' => $channel_list]);
    }

    public function actionUpdateChannelSeq()
    {
        $request = Yii::$app->request->post();
        // 修改
        if (!empty($request['seqId'])) {
            $model = OperaSort::findOne($request['seqId']);
            $model->seq = $request['seq'];
            $res = $model->update();
        } else {
            $model_sort = new OperaSort();
            $arr = array('hotel_id' => 0, 'base_room_id' => 0, 'room_id' => 0, 'channel_id' => $request['channel_id'], 'seq' => $request['seq']);
            if ($model_sort->load($arr, '') && $model_sort->validate()) {
                $res = $model_sort->save();
            }

        }
        $data = empty($res) ? array('type' => 'error', 'msg' => '修改排序失败') : array('type' => 'success', 'msg' => '修改排序成功');
        return json_encode($data);
    }

}