Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

589 linhas
25 KiB

  1. <?php
  2. namespace backend\modules\hotel\controllers;
  3. use backend\modules\api\models\BaseSupplier;
  4. use backend\modules\api\models\BaseUser;
  5. use backend\modules\hotel\models\BaseConfirmOrganization;
  6. use backend\modules\hotel\models\BaseSupplierPurchase;
  7. //use backend\modules\hotel\models\BaseSupplierPurchase;
  8. use backend\modules\hotel\models\CommonOrder;
  9. use backend\modules\hotel\models\HotelRelation;
  10. use backend\modules\hotel\models\OperaHotel;
  11. use backend\modules\hotel\models\OperaHotelBaseRoom;
  12. use backend\modules\hotel\models\OperaHotelRoom;
  13. use backend\modules\hotel\models\OperaSort;
  14. use backend\modules\hotel\models\OrderComment;
  15. use backend\modules\hotel\models\OrderHtStatusLog;
  16. use backend\modules\hotel\models\OrderMain;
  17. use backend\modules\zzcs\models\BaseAreaView;
  18. use Yii;
  19. use yii\helpers\Json;
  20. use yii\web\NotFoundHttpException;
  21. use yii\widgets\ActiveForm;
  22. class HotelRoomController extends \yii\web\Controller
  23. {
  24. public $layout = "@backend/modules/motorcade/views/layouts/iframe_new";
  25. public $enableCsrfValidation = false;
  26. /**
  27. * 酒店上下架管理列表
  28. */
  29. public function actionUpDownList()
  30. {
  31. $model = new OperaHotel();
  32. $model->HOTEL_STATUS = 1;
  33. if (Yii::$app->request->isPost || Yii::$app->request->isGet) {
  34. $data['OperaHotel'] = is_null(Yii::$app->request->post('OperaHotel')) ? Yii::$app->request->get('OperaHotel') : Yii::$app->request->post('OperaHotel');
  35. $model->load($data);
  36. }
  37. $dataProvider = $model->upDownHoteList();
  38. return $this->render('upDownList', ['model' => $model, 'dataProvider' => $dataProvider]);
  39. }
  40. /**
  41. * 上架酒店
  42. */
  43. public function actionPutawayHotel()
  44. {
  45. $request = Yii::$app->request->get();
  46. $user = new BaseUser();
  47. $hotel = new OperaHotel(['scenario' => 'putawayHotel']);
  48. $base_room = new OperaHotelBaseRoom();
  49. $supplier = new BaseSupplier();
  50. $purchase = new BaseSupplierPurchase();
  51. // 查找未上架的酒店列表
  52. $hotel_list = OperaHotel::findAll(['cancel_flag' => 0, 'IS_SELL' => 0]);
  53. if (empty($hotel_list)) {
  54. Yii::$app->session->setFlash('warning', "无可上架酒店!");
  55. return $this->redirect('/hotel/hotel-room/up-down-list');
  56. }
  57. $supplier_list = $supplier->getSupplierList();
  58. $channel_list = $supplier->getChannelList();
  59. $confirm_from = BaseConfirmOrganization::findAll(['CANCEL_FLAG' => 0]);
  60. $pricipal_list = $hotel->getPrincipal();
  61. $isAjax = Yii::$app->request->isPjax;
  62. if ($isAjax && isset($_REQUEST['hotel_id'])) {
  63. $hotel_id = $_REQUEST['hotel_id'];
  64. } elseif ($isAjax && isset($_REQUEST['supplier_id'])) {
  65. $supplier_id = $_REQUEST['supplier_id'];
  66. }
  67. $hotel_one_id = empty($hotel_id) ? $hotel->getFirstHotel()[0]['HOTEL_ID'] : $hotel_id;
  68. $hotel_base_room = $base_room->getBaseRoomAll($hotel_one_id);
  69. // 获取供应商id
  70. $supplier_one_id = empty($supplier_id) ? $supplier->getFirstSupplier()[0]['ID'] : $supplier_id;
  71. // 获取采购人
  72. $purchase_list = $purchase->getPurchaseName($supplier_one_id);
  73. $data['user'] = $user;
  74. $data['purchase'] = $purchase;
  75. $data['purchase_list'] = $purchase_list;
  76. $data['hotel_base_room'] = $hotel_base_room;
  77. $data['hotel_list'] = $hotel_list;
  78. $data['hotel'] = $hotel;
  79. $data['base_room'] = $base_room;
  80. $data['supplier_list'] = $supplier_list;
  81. $data['supplier'] = $supplier;
  82. $data['pricipal_list'] = $pricipal_list;
  83. $data['confirm_from'] = $confirm_from;
  84. $data['channel_list'] = $channel_list;
  85. /********************上架酒店开始************************/
  86. $flag = Yii::$app->request->isPost;
  87. if ($flag) {
  88. $request = Yii::$app->request->post();
  89. $hotel_info = $hotel->findHotel($request['OperaHotel']['HOTEL_NAME']);
  90. $hotel_info->setScenario('putawayHotel');
  91. if (isset($request['ROOM_TYPE_SALE'])) {
  92. $request['OperaHotel']['ROOM_TYPE_SALE'] = empty($request['ROOM_TYPE_SALE']) ? '' : implode(',', $request['ROOM_TYPE_SALE']);
  93. unset($request['OperaHotel']['HOTEL_NAME']);
  94. }
  95. $request['OperaHotel']['DRIECT_CONNNECT_CHANNEL'] = empty($request['channel_id']) ? '' : implode(',', $request['channel_id']);
  96. if ($hotel_info->load($request)) {
  97. if (!$hotel_info->save()) {
  98. Yii::$app->session->setFlash('error', "上架失败!");
  99. } else {
  100. if (!empty($request['channel_id']) && in_array(675, $request['channel_id'])) {
  101. $send_data = array('hotel_id' => $hotel_info['HOTEL_ID']);
  102. $http_res = Yii::$app->runAction('hotel/ali/add-hotel', $send_data);
  103. $http_res = json_decode($http_res, true);
  104. }
  105. // 如果进行了酒店推送,判断推送是否成功,本地建立直连关系
  106. if (!empty($http_res) && $http_res['code'] != 0) {
  107. Yii::$app->session->setFlash('error', "上架成功, 推送失败!");
  108. } elseif (!empty($http_res) && $http_res['code'] == 0) {
  109. Yii::$app->session->setFlash('success', "上架成功, 推送成功!");
  110. }
  111. if (empty($request['channel_id'])) {
  112. Yii::$app->session->setFlash('success', "上架成功!");
  113. }
  114. return $this->redirect('/hotel/hotel-room/up-down-list');
  115. }
  116. } else {
  117. Yii::$app->session->setFlash('error', "上架失败!");
  118. }
  119. }
  120. /********************上架酒店结束************************/
  121. return $this->render('putawayHotel', ['data' => $data]);
  122. }
  123. /**
  124. * 修改上架酒店
  125. */
  126. public function actionUpdatePutHotel($hotel_id)
  127. {
  128. /**修改酒店**/
  129. $hotel = new OperaHotel();
  130. $one_hotel_info = $hotel->getOneHotelInfo($hotel_id);
  131. $one_hotel_info->setScenario('putawayHotel');
  132. $base_room = new OperaHotelBaseRoom();
  133. $supplier = new BaseSupplier();
  134. $purchase = new BaseSupplierPurchase();
  135. $hotel_list = OperaHotel::findAll(['cancel_flag' => 0]);
  136. $channel_list = $supplier->getChannelList();
  137. $supplier_list = $supplier->getSupplierList();
  138. $confirm_from = BaseConfirmOrganization::findAll(['CANCEL_FLAG' => 0]);
  139. $one_hotel_info->HOTEL_NAME = $one_hotel_info->HOTEL_ID;
  140. $supplier_id = $one_hotel_info->SUPPLIER_ID;
  141. $pricipal_list = $hotel->getPrincipal();
  142. // 获取该酒店直连的渠道id
  143. $channel_arr = explode(',', $one_hotel_info->DRIECT_CONNNECT_CHANNEL);
  144. $connect_channel = $supplier->getConnectChannel($channel_arr);
  145. $isAjax = Yii::$app->request->isPjax;
  146. if ($isAjax && isset($_REQUEST['hotel_id'])) {
  147. $hotel_id = $_REQUEST['hotel_id'];
  148. } elseif ($isAjax && isset($_REQUEST['supplier_id'])) {
  149. $supplier_id = $_REQUEST['supplier_id'];
  150. }
  151. $hotel_one_id = $hotel_id;
  152. $hotel_base_room = $base_room->getBaseRoomAll($hotel_one_id);
  153. $supplier_one_id = $supplier_id;
  154. $purchase_list = $purchase->getPurchaseName($supplier_one_id);
  155. $data['channel_list'] = $channel_list;
  156. $data['purchase_list'] = $purchase_list;
  157. $data['hotel_base_room'] = $hotel_base_room;
  158. $data['hotel_list'] = $hotel_list;
  159. $data['hotel'] = $one_hotel_info;
  160. $data['supplier_list'] = $supplier_list;
  161. $data['pricipal_list'] = $pricipal_list;
  162. $data['confirm_from'] = $confirm_from;
  163. $data['connect_channel'] = $connect_channel;
  164. $data['op'] = 'modify';
  165. /********************修改上架酒店开始************************/
  166. $flag = Yii::$app->request->isPost;
  167. if ($flag) {
  168. $request = Yii::$app->request->post();
  169. $hotel_info = $hotel->findHotel($request['OperaHotel']['HOTEL_NAME']);
  170. if (isset($request['ROOM_TYPE_SALE'])) // 拼接可售基础房型字段
  171. {
  172. $request['OperaHotel']['ROOM_TYPE_SALE'] = empty($request['ROOM_TYPE_SALE']) ? '' : implode(',', $request['ROOM_TYPE_SALE']);
  173. $request['OperaHotel']['HOTEL_NAME'] = $hotel_info->HOTEL_NAME;
  174. }
  175. $request['OperaHotel']['DRIECT_CONNNECT_CHANNEL'] = empty($request['channel_id']) ? '' : implode(',', $request['channel_id']);
  176. if ($hotel_info->load($request) && $hotel_info->validate()) {
  177. $hotel_info->IS_SELL = 1;
  178. if (!$hotel_info->save()) {
  179. Yii::$app->session->setFlash('error', "修改失败!");
  180. return $this->render('putawayHotel', ['data' => $data]);
  181. }
  182. if (!empty($request['channel_id']) && in_array(Yii::$app->params['ali']['relation_supplier_id'], $request['channel_id'])) {
  183. $send_data = array('hotel_id' => $hotel_info['HOTEL_ID']);
  184. $http_res = Yii::$app->runAction('hotel/ali/add-hotel', $send_data);
  185. $http_res = json_decode($http_res, true);
  186. }
  187. $msg = '';
  188. $key = '';
  189. // 如果进行了酒店推送,判断推送是否成功,本地建立直连关系
  190. if (!empty($http_res) && $http_res['code'] != 0) {
  191. $key = 'error';
  192. $msg = '修改上架成功, 推送失败!失败原因:' . $http_res['msg'];
  193. } elseif (!empty($http_res) && $http_res['code'] == 0) {
  194. $key = 'success';
  195. $msg = '修改上架成功, 推送成功!';
  196. }
  197. // 直连渠道为空,则只进行酒店上架,并未推送添加酒店
  198. if (empty($request['channel_id'])) {
  199. $key = 'success';
  200. $msg = '修改上架成功!';
  201. }
  202. Yii::$app->session->setFlash($key, $msg);
  203. return $this->redirect('/hotel/hotel-room/up-down-list');
  204. }
  205. }
  206. /********************修改上架酒店结束************************/
  207. return $this->render('putawayHotel', ['data' => $data]);
  208. }
  209. /**
  210. * 开售酒店
  211. * @param $hotels:根据酒店id拼接的字符串
  212. */
  213. public function actionOpenHotel($hotels)
  214. {
  215. $uid = Yii::$app->user->id;
  216. $res = OperaHotel::updateAll(['HOTEL_STATUS' => 1, 'UPDATE_TIME' => date('Y-m-d H:i:s'), 'UPDATE_USER_ID' => $uid], 'HOTEL_ID in (' . $hotels . ')');
  217. if ($res) {
  218. Yii::$app->session->setFlash('success', '开售成功!');
  219. } else {
  220. Yii::$app->session->setFlash('error', '开售失败!');
  221. }
  222. return $this->redirect(['up-down-list']);
  223. }
  224. /**
  225. * 停售酒店
  226. */
  227. public function actionCloseHotel($hotels)
  228. {
  229. $uid = Yii::$app->user->id;
  230. $res = OperaHotel::updateAll(['HOTEL_STATUS' => 0, 'UPDATE_TIME' => date('Y-m-d H:i:s'), 'UPDATE_USER_ID' => $uid], 'HOTEL_ID in (' . $hotels . ')');
  231. if ($res) {
  232. Yii::$app->session->setFlash('success', '停售成功!');
  233. } else {
  234. Yii::$app->session->setFlash('error', '停售失败!');
  235. }
  236. return $this->redirect(['up-down-list']);
  237. }
  238. public function actionSetBedType()
  239. {
  240. $request = Yii::$app->request->post();
  241. $base_room = OperaHotelBaseRoom::findOne(['MAIN_ID' => $request['baseRoomId']]);
  242. $base_room->BED_TYPE = implode(',', $request['OperaHotelBaseRoom']['BED_TYPE']);
  243. $base_room->CURRENCY_CODE = implode(',', $request['OperaHotelBaseRoom']['CURRENCY_CODE']);
  244. if ($base_room->update())
  245. Yii::$app->session->setFlash('success', '设置成功!');
  246. else
  247. Yii::$app->session->setFlash('error', '设置失败!');
  248. return $this->redirect(['/hotel/hotel-room/update-put-hotel', 'hotel_id' => $base_room['HOTEL_ID']]);
  249. }
  250. public function actionGetBaseRoom()
  251. {
  252. $request = Yii::$app->request->get();
  253. $base_room = new OperaHotelBaseRoom(['scenario' => 'set_bed_type']);
  254. $bed_info = $base_room->getBedType($request['main_id']);
  255. return 1;
  256. }
  257. /**
  258. * User:Steven
  259. * Desc:房态管理-酒店列表
  260. * @return string
  261. */
  262. public function actionIndex()
  263. {
  264. $model = new OperaHotel();
  265. if (Yii::$app->request->isPost || Yii::$app->request->isGet) {
  266. $model->HOTEL_STATUS = 1;
  267. $data['OperaHotel'] = is_null(Yii::$app->request->post('OperaHotel')) ? Yii::$app->request->get('OperaHotel') : Yii::$app->request->post('OperaHotel');
  268. $model->load($data);
  269. }
  270. $dataProvider = $model->getHotel();
  271. return $this->render('index', ['model' => $model, 'dataProvider' => $dataProvider]);
  272. }
  273. /**
  274. * User:Steven
  275. * Desc:
  276. * @return string
  277. */
  278. public function actionRoomManager()
  279. {
  280. $model = new OperaHotel();
  281. $dataProvider = $model->getHotel();
  282. return $this->render('roomManager', ['dataProvider' => $dataProvider]);
  283. }
  284. /**
  285. * Notes:酒店预定页面
  286. * User: Steven
  287. * Date: 2018/1/18
  288. * Time: 13:15
  289. * @return string
  290. */
  291. public function actionBookOrderView()
  292. {
  293. $model = new OperaHotelRoom();
  294. $data['model'] = $model;
  295. $dataProvider = $model->getHotelProduct(Yii::$app->request->queryParams);
  296. return $this->render('bookView', ['data' => $data, 'dataProvider' => $dataProvider]);
  297. }
  298. /**
  299. * Notes:CS系统酒店订单预订
  300. * User: Steven
  301. * Date: 2018/1/24
  302. * Time: 12:02
  303. * @return array|string|\yii\web\Response
  304. * @throws \yii\db\Exception
  305. */
  306. public function actionBookOrder()
  307. {
  308. $room_id = Yii::$app->request->get('room_id');
  309. //查询下单的产品信息
  310. $room_info = OperaHotelRoom::find()
  311. ->select(['a.ID', 'a.HOTEL_ID', 'a.PARENT_ROOM_TYPE', 'a.ROOM_TYPE', 'a.ROOM_NAME', 'a.BREAKFAST_INCLUDE',
  312. 'a.INNER_IDENTIFY', 'a.BED_TYPE', 'b.HOTEL_NAME', 'c.BED_TYPE', 'c.BASE_ROOM_NAME', 'b.SUPPLIER_ID', 'd.TRUE_NAME'])
  313. ->joinWith('operaHotel b')
  314. ->joinWith('operaHotelBaseRoom c')
  315. ->leftJoin('base_user d', 'b.PRINCIPAL=d.ID')
  316. ->where(['a.ID' => $room_id])
  317. ->from('opera_hotel_room a')->asArray()->one();
  318. $stock_info = [];
  319. $stock_arr[0] = ['stock_id' => 0, 'stock_count' => 0];
  320. if (Yii::$app->request->isPjax) {
  321. $common_order = new CommonOrder(['scenario' => 'Product']);
  322. $params = Yii::$app->request->queryParams;
  323. $common_order->load($params);
  324. $stock_info = $common_order->getHotelStock();
  325. $arr = [];
  326. foreach ($stock_info as $item) {
  327. $arr[] = $item['OVERSELL_FLAG'] == 1 ? $item['BUYOUT'] + $item['INQUIRY'] + $item['RETAIN'] : $item['REMAINING_COUNT'];
  328. }
  329. if (!empty($stock_info)) {
  330. $minStock = min($arr) > 30 ? 30 : min($arr);
  331. for ($i = 1; $i <= $minStock; $i++) {
  332. $stock_arr[$i] = [
  333. 'stock_id' => $i,
  334. 'stock_count' => $i,
  335. ];
  336. }
  337. }
  338. }
  339. if (Yii::$app->request->post()) {
  340. $params = Yii::$app->request->post();
  341. $common_order = new CommonOrder(['scenario' => 'BookHotelOrder']);
  342. $common_order->CreateUserID = Yii::$app->user->id;
  343. $common_order->RoomPrices = $params['RoomPrices'];
  344. $common_order->DistribID = $params['OrderMain']['OUTSIDE_SALE_ORG_ID'];
  345. $common_order->RoomID = $params['OrderMain']['RUN_ID'];
  346. $common_order->HotelID = $params['OrderMain']['PARENT_PROD_ID'];
  347. $common_order->OrderID = $params['OrderMain']['OUTSIDE_ORDER_NO'];
  348. $common_order->CheckIn = $params['OrderMain']['PROD_START_STATION_DATE'];
  349. $common_order->CheckOut = $params['OrderMain']['PROD_END_STATION_DATE'];
  350. $common_order->RoomNum = $params['OrderMain']['room_count'];
  351. $common_order->ContactTel = $params['OrderMain']['CUSTOMER_MOBILE'];
  352. $common_order->NeedInvoice = 0;
  353. $common_order->OrderGuests = [0 => ['Name' => $params['OrderMain']['CUSTOMER_NAME']]];
  354. $common_order->ContactTel = $params['OrderMain']['CUSTOMER_MOBILE'];
  355. $common_order->PayType = CommonOrder::PAY_TYPE_CREDIT;
  356. $common_order->PayTradeNo = [];
  357. $common_order->Currency = 'RMB';
  358. foreach ($params['OrderComment']['COMMENT_TXT'] as $key => $item) {
  359. if (!empty($params['OrderComment']['COMMENT_TXT'])) {
  360. $comment[] = [
  361. 'comment_type' => $key,
  362. 'comment' => $item
  363. ];
  364. }
  365. }
  366. $common_order->Comment = $comment;
  367. $common_order->CommentType = $params['OrderMain']['Comment'];
  368. $common_order->TotalPrice = $params['OrderMain']['ORDER_PRICE'];
  369. $common_order->OrderTitleID = 0; //非组合单 ,组合单号为0
  370. if ($common_order->validate()) {
  371. $res = $common_order->bookHotelOrder();
  372. if ($res['code'] == CommonOrder::RETURN_CODE_SUCCESS) {
  373. if (isset($params['OrderMain']['SendStatus']) && $params['OrderMain']['SendStatus'] == 198) {
  374. $status_log = new OrderHtStatusLog(); //记录罚单的status数据
  375. $status_log->ORDER_ID = $res['data']['order_id'];
  376. $status_log->ORDER_STATUS = OrderMain::ORDER_STATUS_WAITING_CONFIRM;
  377. $status_log->BEFORE_STATUS = OrderMain::ORDER_STATUS_WAITING_SEND;
  378. $status_log->CREATE_USER_ID = Yii::$app->user->id;
  379. $status_log->UPDATE_USER_ID = Yii::$app->user->id;
  380. if ($status_log->save()) {
  381. OrderMain::updateAll(['ORDER_STATUS' => OrderMain::ORDER_STATUS_WAITING_CONFIRM, 'UPDATE_TIME' => date('Y-m-d H:i:s', time())],
  382. ['and', ['CANCEL_FLAG' => 0], ['or', ['ORDER_ID' => $res['data']['order_id']], ['PARENT_ORDER_ID' => $res['data']['order_id']]]]);
  383. OrderMain::setMemcache($res['data']['order_id'], OrderMain::ORDER_STATUS_WAITING_CONFIRM, $room_info['SUPPLIER_ID'], $room_info['ROOM_NAME']);
  384. $common_order->setOrderLog($res['data']['order_id'], $room_info['PARENT_ROOM_TYPE'], $room_info['ROOM_TYPE'], "订单号为:" . $res['data']['order_id'] . '的状态由待发单变为待确认');
  385. } else {
  386. Yii::$app->session->setFlash('warning', "预订成功,订单号:" . $res['data']['order_id'] . '自动发单失败,请在订单列表手动发单');
  387. return $this->redirect(['/hotel/ordermain/index']);
  388. }
  389. }
  390. Yii::$app->session->setFlash('success', "预订成功,订单号:" . $res['data']['order_id']);
  391. return $this->redirect(['/hotel/ordermain/index']);
  392. } else {
  393. Yii::$app->session->setFlash('error', "预订失败,原因:" . $res['info']);
  394. }
  395. } else {
  396. $error = array_values($common_order->getFirstErrors());
  397. Yii::$app->session->setFlash('error', "预订失败,原因:" . $error);
  398. }
  399. }
  400. $data['stock_info'] = $stock_info;
  401. $data['stock_arr'] = $stock_arr;
  402. $data['room_info'] = $room_info;
  403. $data['order'] = new OrderMain(['scenario' => 'csBook']);
  404. $data['order_comment'] = new OrderComment();
  405. $data['channel'] = BaseSupplier::find()
  406. ->select(['DISTINCT(a.ID) ID', 'a.SUPPLIER_NAME'])
  407. ->joinWith('baseSupplierSale as b', false)
  408. ->from('base_supplier as a')
  409. ->where(['and',
  410. ['=', 'b.PARENT_TYPE', 25],
  411. ['=', 'a.SUPPLIER_TYPE', 301],
  412. ['=', 'a.cancel_flag', 0],
  413. ['=', 'a.IS_DISABLED', 0],
  414. ['=', 'b.cancel_flag', 0],
  415. ['or', ['=', 'main_corp_id', Yii::$app->user->identity->MAIN_CORP_ID], ['=', 'main_corp_id', 0],
  416. ],
  417. ])->asArray()->all();
  418. return $this->render('bookOrder', ['data' => $data, 'dataProvider' => []]);
  419. }
  420. /**
  421. * @Author wanglg
  422. * @Desc异步验证客户端请求
  423. * @return array
  424. */
  425. public function actionValidateForm()
  426. {
  427. Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
  428. $model = new OrderMain(['scenario' => 'csBook']);
  429. $model->load(Yii::$app->request->post());
  430. return ActiveForm::validate($model);
  431. }
  432. /**
  433. * @Author wanglg
  434. * @Desc ajax验证同一渠道下的订单号是否重复
  435. * @return string
  436. */
  437. public function actionValidateOutOrder()
  438. {
  439. $request = Yii::$app->request->post();
  440. if (empty($request['channel_id']) || empty($request['outside_order_id'])) {
  441. return json_encode(array('code' => 0, 'msg' => ''));
  442. }
  443. $res = OrderMain::findOne(['OUTSIDE_SALE_ORG_ID' => $request['channel_id'], 'OUTSIDE_ORDER_NO' => trim($request['outside_order_id']),
  444. 'ORDER_PROD_TYPE' => [25, 26], 'CANCEL_FLAG' => 0, 'ORDER_VALID_STATUS' => 1]);
  445. $data = empty($res) ? array('code' => 0, 'msg' => '') : array('code' => 1, 'info' => '渠道订单号已存在,请核实无误后再作预订');
  446. return json_encode($data);
  447. }
  448. /**4
  449. * Notes:临时刷订单数据
  450. * User: Steven
  451. * Date: 2018/1/25
  452. * Time: 0:03
  453. * @return array
  454. * @throws \yii\db\Exception
  455. */
  456. public function actionTemUpdate()
  457. {
  458. $sql = "select ORDER_ID,PARENT_PROD_ID,PROD_ID from order_main
  459. where PARENT_ORDER_ID=0 and ORDER_PROD_TYPE=25 and CREATE_TIME
  460. BETWEEN '2017-12-15 00:00:00' and '2017-12-20 00:00:00' and ORDER_STATUS<>148";
  461. $connection = Yii::$app->db;
  462. $res = $connection->createCommand($sql)->queryAll();
  463. foreach ($res as $item) {
  464. $res1 = OperaHotelRoom::findOne(['HOTEL_ID' => $item['PARENT_PROD_ID'], 'ROOM_TYPE' => $item['PROD_ID']]);
  465. if ($res1) {
  466. $COUNT = OrderMain::updateAll(['RUN_ID' => $res1->ID, 'RUN_BUS_SEAT_TYPE' => 2],
  467. ['and', ['CANCEL_FLAG' => 0], ['or', ['ORDER_ID' => $item['ORDER_ID']], ['PARENT_ORDER_ID' => $item['ORDER_ID']]]]);
  468. }
  469. }
  470. }
  471. /**
  472. * @Author wanglg
  473. * @Desc获取渠道商排序列表
  474. * @return string
  475. */
  476. public function actionOrderChannelList()
  477. {
  478. if (Yii::$app->request->isAjax) {
  479. $request = Yii::$app->request->post();
  480. // 修改
  481. $res = 0;
  482. if (!empty($request['seqId'])) {
  483. $model = OperaSort::findOne($request['seqId']);
  484. $model->seq = $request['seq'];
  485. $res = $model->update();
  486. } else {
  487. $model_sort = new OperaSort();
  488. $arr = array('hotel_id' => 0, 'base_room_id' => 0, 'room_id' => 0, 'channel_id' => $request['channel_id'], 'seq' => $request['seq']);
  489. if ($model_sort->load($arr, '') && $model_sort->validate()) {
  490. $res = $model_sort->save();
  491. }
  492. }
  493. if ($res) {
  494. Yii::$app->session->setFlash('success', '修改排序成功');
  495. } else {
  496. Yii::$app->session->setFlash('error', '修改排序失败');
  497. }
  498. }
  499. // 获取渠道商列表
  500. $model = new BaseSupplier();
  501. $channel_list = $model->getOrderChannelList();
  502. return $this->render('channel_order', ['data' => $channel_list]);
  503. }
  504. public function actionUpdateChannelSeq()
  505. {
  506. $request = Yii::$app->request->post();
  507. // 修改
  508. if (!empty($request['seqId'])) {
  509. $model = OperaSort::findOne($request['seqId']);
  510. $model->seq = $request['seq'];
  511. $res = $model->update();
  512. } else {
  513. $model_sort = new OperaSort();
  514. $arr = array('hotel_id' => 0, 'base_room_id' => 0, 'room_id' => 0, 'channel_id' => $request['channel_id'], 'seq' => $request['seq']);
  515. if ($model_sort->load($arr, '') && $model_sort->validate()) {
  516. $res = $model_sort->save();
  517. }
  518. }
  519. $data = empty($res) ? array('type' => 'error', 'msg' => '修改排序失败') : array('type' => 'success', 'msg' => '修改排序成功');
  520. return json_encode($data);
  521. }
  522. }