|
- <?php
-
- namespace backend\modules\hotel\controllers;
-
- use backend\common\Utils;
- use backend\modules\hotel\models\ChannelRoom;
- use backend\modules\hotel\models\CtripHotelPrice;
- use backend\modules\hotel\models\HotelPriceConversion;
- use backend\modules\hotel\models\OperaHotel;
- use backend\modules\hotel\models\OperaHotelBaseRoom;
- use backend\modules\hotel\models\OperaHotelRoom;
- use backend\modules\hotel\models\PriceComparedRoom;
- use backend\modules\hotel\models\RoomRelation;
- use backend\modules\hotel\models\SyncPriceComparedHotel;
- use Yii;
- use yii\db\Exception;
- use yii\web\Controller;
- use common\components\zOfficeWechat;
- use common\models\Msg;
- use backend\modules\hotel\models\PriceComparedHotel;
-
- class ComparePriceController extends Controller
- {
- public $layout = "@backend/modules/motorcade/views/layouts/iframe_new";
- public $enableCsrfValidation = false;
-
- /**
- * User:Steven
- * Desc:比价酒店列表
- * @return string
- */
- public function actionIndex()
- {
- $comparePrice = new HotelPriceConversion();
- $ctripHotel = new PriceComparedHotel();
-
- $filter = ['hotel_name' => '', 'cancel_flag' => '', 'channel_id' => '', 'channel' => ''];
- // $request = Yii::$app->request;
- if (Yii::$app->request->isAjax) {
- $filter = Yii::$app->request->get('filter');
- }
- $dataProvider = $ctripHotel->index($filter);
-
- return $this->render('base', ['view' => 'index', 'data' => ['model' => $ctripHotel, 'comparePrice' => $comparePrice], 'dataProvider' => $dataProvider]);
- }
-
- /**
- * User:Steven
- * Desc:酒店比价
- * @return string
- */
- public function actionComparePrice()
- {
- $ctripHotelPrice = new CtripHotelPrice();
- $hotel_list = $ctripHotelPrice->getDirectHotel();
- if (Yii::$app->request->isPost || Yii::$app->request->isGet) {
- $HOTEL_ID = is_null(Yii::$app->request->post('HOTEL_ID')) ? Yii::$app->request->get('HOTEL_ID') : Yii::$app->request->post('HOTEL_ID');
- }
- is_null($HOTEL_ID) ? $HOTEL_ID = $hotel_list[0]['HOTEL_ID'] : $HOTEL_ID;
- $ctrip_data = $ctripHotelPrice->getCtripData($HOTEL_ID);
- $data = array(
- 'ctrip_data' => [],
- 'update_time' => ''
- );
- if (!empty($ctrip_data)) {
- $data['hotel_info'] = array(
- 'ctrip_hotel_id' => $ctrip_data[0]['ctrip_hotel_id'],
- 'hotel_name' => $ctrip_data[0]['hotel_name'],
- 'spider_hotel_id' => $HOTEL_ID,
- );
- $last_up_time = $ctripHotelPrice->getHotelLastUpTime($HOTEL_ID);
- // $price_conversion = $ctripHotelPrice->getHotelConversion($HOTEL_ID);
- $res = $this->ctripDataService($ctrip_data, $HOTEL_ID);
- foreach ($res[$HOTEL_ID] as $key => $item) {
- if (empty($item)) {
- unset($res[$HOTEL_ID][$key]);
- }
- }
- }
- $data['hotel_list'] = $hotel_list;
- $data['ctrip_data'] = $res;
- $data['update_time'] = $last_up_time['max_create_time'];
- // $data['update_time'] = '2017-08-31 00:00:00';
- return $this->render('base', ['view' => 'priceCompared', 'data' => $data]);
- }
-
- /**
- * User:Steven
- * Desc:酒店-房型比价列表
- * @return string
- */
- public function actionRoomCompared()
- {
- $hotel_id = Yii::$app->request->get('hotel_id');
- $channel_id = Yii::$app->request->get('channel_id');
- if (!isset($hotel_id) || !isset($channel_id)) {
- return false;
- }
-
- $filter = ['hotel_id' => $hotel_id, 'cancel_flag' => '', 'channel_id' => '', 'channel' => $channel_id];
-
- if (Yii::$app->request->isAjax) {
- $filter = Yii::$app->request->get('filter');
- $filter['hotel_id'] = $hotel_id;
- }
-
- $ctripHotel = new PriceComparedRoom();
- $dataProvider = $ctripHotel->getComparedRoom($filter);
- // $data['update_time'] = '2017-08-31 00:00:00';
- return $this->render('base', ['view' => 'room_compared_list', 'data' => ['model' => $ctripHotel, 'channel_id' => $channel_id, 'hotel_id' => $hotel_id,], 'dataProvider' => $dataProvider]);
- }
-
- /**
- * User:Steven
- * Desc:比价酒店数据总览页面
- */
- public function actionOverview()
- {
- $ctripHotel = new PriceComparedHotel();
- $param = Yii::$app->request->get();
- $channel_id = isset($param['channel_id']) ? $param['channel_id'] : Yii::$app->params['ctrip']['relation_supplier_id'];
- $hotel_name = isset($param['hotel_name']) ? $param['hotel_name'] : '';
- $hotel_pricipal = isset($param['hotel_pricipal']) ? $param['hotel_pricipal'] : -1;
- $dataProvider = $ctripHotel->getHotelOverview($channel_id, $hotel_name, $hotel_pricipal);
- $ctrip_hotel_price = new CtripHotelPrice();
- $last_up_time = $ctrip_hotel_price->getHotelLastUpTime();
- return $this->render('base', ['view' => 'overview', 'data' => ['dataProvider' => $dataProvider, 'last_up_time' => $last_up_time]]);
- }
-
- /**
- * User:Steven
- * Desc:设置比价酒店的价差
- * @return \yii\web\Response
- */
- public function actionSetPriceConversion()
- {
- if (Yii::$app->request->isPost) {
- $post = Yii::$app->request->post();
- $comparePrice = empty(HotelPriceConversion::findOne($post['HotelPriceConversion']['hotel_id'])) ? new HotelPriceConversion() : HotelPriceConversion::findOne($post['HotelPriceConversion']['hotel_id']);
-
- if ($comparePrice->load($post) && $comparePrice->validate()) {
- if ($comparePrice->save()) {
- Yii::$app->session->setFlash('success', "添加成功");
- return $this->redirect(array('compare-price/index'));
- } else {
- Yii::$app->session->setFlash('success', "添加失败");
- }
- }
- }
- }
-
- /**
- * @author wanglg
- * 修改酒店比价状态
- */
- public function actionModifyStatus()
- {
- $post = Yii::$app->request->post();
-
- if (!(isset($post['id']) && isset($post['op']))) {
- $data['code'] = 2;
- }
-
- if ($post['field'] == 'cancel_flag') {
- $transform = Yii::$app->db->beginTransaction();
-
- try {
- $pch = PriceComparedHotel::findOne($post['id']);
- $update['cancel_flag'] = $post['op'] == 'set' ? 0 : 1;
- if ($pch->load($update, '') && $pch->validate()) {
- if (!$pch->save()) {
- throw new \Exception();
- }
- }
-
- // $hotel_id = $pch -> HotelId;
- $ChannelHotelId = $pch->ChannelHotelId;
- $sync_hotel = SyncPriceComparedHotel::findOne(['ChannelHotelId' => $ChannelHotelId]);
- $new_update = $post['op'] == 'set' ? 0 : 1;
-
- $sync_hotel->CancelFlag = $new_update;
- if (!$sync_hotel->update()) {
- throw new \Exception();
- }
-
- $transform->commit();
- $data = 0;
- } catch (\Exception $e) {
- $transform->rollBack();
- $data['code'] = 1;
- }
- echo json_encode($data);
- }
-
- if ($post['field'] == 'send_msg') {
- $pch = PriceComparedHotel::findOne($post['id']);
- $update['SendMsg'] = $post['op'] == 'set' ? 1 : 0;
- $pch->SendMsg = $update['SendMsg'];
- if ($pch->update()) {
- $data = 0;
- } else {
- $data = 1;
- }
- echo json_encode($data);
- }
-
- }
-
- /**
- * @Author wanglg
- * @Desc 修改房型比价状态
- */
- public function actionRoomStatus()
- {
- $post = Yii::$app->request->post();
-
- if (!(isset($post['id']) && isset($post['op']))) {
- $data['code'] = 2;
- }
-
- $pcr = PriceComparedRoom::findOne(['ID' => $post['id']]);
- $update['cancel_flag'] = $post['op'] == 'set' ? 0 : 1;
- if ($pcr->load($update, '') && $pcr->validate()) {
- if (!$pcr->save()) {
- $data['code'] = 1;
- } else {
- $data = 0;
- }
- }
- echo json_encode($data);
- }
-
- /**
- * 添加比价酒店
- */
- public function actionAddComparedHotel()
- {
- $model = new PriceComparedHotel();
- $sync_model = new SyncPriceComparedHotel();
-
- $transaction = Yii::$app->db->beginTransaction();
- $request = Yii::$app->request->post();
-
- try {
- if ($model->load($request) && $model->validate()) {
- if (!$model->save()) {
- throw new \Exception();
- }
- } else {
- throw new \Exception();
- }
-
- $new_request = array('ChannelHotelId' => $request['PriceComparedHotel']['ChannelHotelId'], 'HotelId' => $request['PriceComparedHotel']['HotelId'], 'ChannelId' => $request['PriceComparedHotel']['ChannelId'],);
-
- if ($sync_model->load($new_request, '') && $sync_model->validate()) {
- if (!$sync_model->save()) {
- throw new \Exception();
- }
- } else {
- throw new \Exception();
- }
-
- $transaction->commit();
- Yii::$app->session->setFlash('success', "添加比价酒店成功!");
- // return '<script>z.pjaxFinish("success", "修改成功", "#float-div");$("#search-btn").trigger(\'click\');</script>';
- // echo '<script type="text/javascript">easyAlert("添加比价酒店成功!", "success");</script>';
- } catch (\Exception $e) {
- $transaction->rollBack();
- Yii::$app->session->setFlash('error', "添加比价酒店失败!");
- $hotel_list = $model->getHotelList();
- return $this->renderPartial('base', ['view' => '_addHotel', 'data' => ['hotel_list' => $hotel_list, 'model' => $model]]);
- }
-
- return $this->redirect('/hotel/compare-price/index');
- }
-
- /**
- * @author wanglg
- * 添加比价房型
- */
- public function actionAddComparedRoom()
- {
- $model = new PriceComparedRoom();
- $request = Yii::$app->request->post();
-
- if ($model->load($request) && $model->validate()) {
- if (!$model->save()) {
- Yii::$app->session->setFlash('error', "添加比价房型失败!");
- } else {
- // return '<script>z.pjaxFinish("success", "添加比价房型成功", "#float-div")</script>';
- Yii::$app->session->setFlash('success', "添加比价房型成功!");
- }
- } else {
- $room = new OperaHotelRoom();
- $base_room = new OperaHotelBaseRoom();
- $base_list = $base_room->getHotelBaseRoom($request['PriceComparedRoom']['hotel_id']);
- $base_room_id = isset($base_room_id) ? $base_room_id : $base_list[0]->MAIN_ID;
- $room_list = $room->getAllRoom($request['PriceComparedRoom']['hotel_id'], $base_room_id);
- return $this->renderPartial('_form', ['data' => ['model' => $model, 'room_list' => $room_list, 'base_room' => $base_room, 'hotel_id' => $request['PriceComparedRoom']['hotel_id'], 'base_list' => $base_list]]);
- }
-
- return $this->redirect('/hotel/compare-price/room-compared?hotel_id=' . $request['PriceComparedRoom']['hotel_id'] . '&channel_id=' . $request['PriceComparedRoom']['channel_id']);
- }
-
- /**
- * @author wanglg
- * 修改比价房型信息
- * @return \yii\web\Response
- */
- public function actionUpdateComparedRoom()
- {
- $request = Yii::$app->request->post();
- $model = PriceComparedRoom::findOne($request['PriceComparedRoom']['ID']);
- if ($model->load($request) && $model->validate()) {
- if (!$model->save()) {
- Yii::$app->session->setFlash('error', "修改比价房型失败!");
- } else {
- Yii::$app->session->setFlash('success', "修改比价房型成功!");
- }
- }
-
- return $this->redirect('/hotel/compare-price/room-compared?hotel_id=' . $request['PriceComparedRoom']['hotel_id'] . '&channel_id=' . $request['PriceComparedRoom']['channel_id']);
- }
-
- /**
- * @author wanglg
- * @return string
- */
- public function actionAddComparedHotelView()
- {
- // 不需要参数,直接查询所有未添加的酒店
- $model = new PriceComparedHotel();
- $hotel_list = $model->getHotelList();
- return $this->renderPartial('base', ['view' => '_addHotel', 'data' => ['hotel_list' => $hotel_list, 'model' => $model]]);
- }
-
- /**
- * @author wanglg
- * 添加比价房型弹框显示
- */
- public function actionAddComparedRoomView()
- {
- $model = new PriceComparedRoom();
- $hotel_id = Yii::$app->request->get('hotel_id');
- $base_room = new OperaHotelBaseRoom();
- $base_list = $base_room->getHotelBaseRoom($hotel_id);
- $room = new OperaHotelRoom();
-
- if (!isset($hotel_id)) {
- if (Yii::$app->request->isPjax && Yii::$app->request->post('base_room_id')) {
- $base_room_id = Yii::$app->request->post('base_room_id');
- $hotel_id = Yii::$app->request->post('hotel_id');
- }
- }
-
- $base_room_id = isset($base_room_id) ? $base_room_id : $base_list[0]->MAIN_ID;
- $room_list = $room->getAllRoom($hotel_id, $base_room_id);
- return $this->renderPartial('_form', ['data' => ['action' => 'add', 'model' => $model, 'room_list' => $room_list, 'base_room' => $base_room, 'hotel_id' => $hotel_id, 'base_list' => $base_list]]);
- }
-
- /**
- * @author wanglg
- * @return bool|string
- */
- public function actionUpdateComparedRoomView()
- {
- $id = Yii::$app->request->get('id');
- $hotel_id = Yii::$app->request->get('hotel_id');
-
- if (empty($hotel_id) || empty($id)) {
- return false;
- }
-
- $model = PriceComparedRoom::findOne($id);
-
- // 根据子房型查询基础房型id
- $parent_room = OperaHotelRoom::findOne($model->room_id);
- //根据基础房型id查询该基础房型id
- $parent_room_id = OperaHotelBaseRoom::findOne($parent_room->PARENT_ROOM_TYPE);
- $base_room = new OperaHotelBaseRoom();
- $base_list = $base_room->getHotelBaseRoom($hotel_id);
-
- if (!isset($hotel_id)) {
- if (Yii::$app->request->isPjax && Yii::$app->request->post('base_room_id')) {
- $base_room_id = Yii::$app->request->post('base_room_id');
- $hotel_id = Yii::$app->request->post('hotel_id');
- }
- }
-
- $room = new OperaHotelRoom();
- $base_room_id = isset($base_room_id) ? $base_room_id : $parent_room->PARENT_ROOM_TYPE;
- $room_list = $room->getAllRoom($hotel_id, $base_room_id);
- return $this->renderPartial('_form', ['data' => ['action' => 'update', 'model' => $model, 'room_list' => $room_list, 'base_room' => $parent_room_id, 'hotel_id' => $hotel_id, 'base_list' => $base_list]]);
-
- }
-
- /**
- * User:Steven
- * Desc:获取代理IP 快代理
- * @return bool
- */
- public function actionGetProxys()
- {
- //获取目前可用的IP个数
- $max_count = 300; //限制数据库
- $model = new CtripHotelPrice();
- $count = $model->getAbleProxyCount();
- if ($count[0]['count'] >= $max_count) {
- return false;
- }
- $i = 0;
- $url = "http://ent.kuaidaili.com/api/getproxy/?orderid=990424805960893&num=300&b_pcchrome=1&b_pcie=1&b_pcff=1&protocol=1&method=1&an_an=1&an_ha=1&sp1=1&quality=2&format=json&sep=1";
- $res = Utils::http_get($url);
- $res = json_decode($res['content'], true);
- if ($res['code'] == 0) {
- foreach ($res['data']['proxy_list'] as $item) {
- if ($i >= ($max_count - $count[0]['count'])) {
- return false;
- }
- //这里验证代理IP的有效性
- $code = $this->GetHttpStatusCode($item);
- if ($code == 200) {
- $i++;
- $model->addProxyIp($item);
- }
- }
- }
- }
-
- /**
- * User:Steven
- * Desc:定时统计房型未展示、价格有劣势的酒店房型统计数据,并通知到酒店运营
- */
- public function actionCronPriceWarning()
- {
- $ctripHotelPrice = new CtripHotelPrice();
- $res = $ctripHotelPrice->getDirectHotel();
- foreach ($res as $item) {
- $ctrip_data = $ctripHotelPrice->getCtripData($item['HOTEL_ID']);
- if (empty($ctrip_data)) {
- continue;
- }
- // $price_conversion = $ctripHotelPrice->getHotelConversion($item['HOTEL_ID']);
- $rs = $this->ctripDataService($ctrip_data, $item['HOTEL_ID']); //这里返回的数据是:1、价格有劣势的 2:价格未显示的
- foreach ($rs as $key => $value) {
- $room_analysis = '';
- $flag = false;
- foreach ($value as $k => $v) { // $k
- if (empty($v)) {
- continue;
- }
- $inferiority = 0;//劣势房型
- $no_show = 0;//未展示房型
- foreach ($v as $k1 => $v1) {
- if (!is_null($v1['a_price']) && !is_null($v1['b_price'])) { //劣势
- $flag = true;
- $inferiority++;
- } elseif (!is_null($v1['a_price']) && is_null($v1['b_price'])) {
- $flag = true;
- $no_show++;
- }
- }
- if ($inferiority != 0 || $no_show != 0) {
- $str = str_replace(array("\r\n", "\r", " ", "\n"), "", $k);
- $room_analysis .= '● ' . preg_replace('/^([^\d]+).*/', '$1', $str) . ': 价格劣势天数:' . $inferiority . '; 未露出天数:' . $no_show . "\n";
- }
- }
- }
- if ($flag) {
- $url = "http://cs1.zhizhuchuxing.com/hotel/compare-price/compare-price?HOTEL_ID=" . $item['HOTEL_ID'];
- $msg = '【' . $item['HOTEL_NAME'] . '】' . '\n' . $room_analysis . '复制在浏览器中打开:' . Msg::sinaShortenUrl($url);
- //TODO:给运营发送消息通知
- if ($item['SendMsg'] == 1) {
- $arr = array("agentid" => 1000002,
- "title" => 'Ctrip渠道比价结果预警:',
- "msg" => $msg,
- "touser" => $item['user_name']);
- // "touser" => 'shifp');
- zOfficeWechat::sendMsg($arr);
- }
-
- }
- }
- }
-
- /**
- * User:Steven
- * Desc:提取字符串中的数字
- * @param $string
- * @return bool|string
- */
- function findNumber($string)
- {
- if (!is_string($string) || empty($string)) {
- return '';
- }
- for ($i = 0; $i < strlen($string); $i++) {
- $char = substr($string, $i, 1);
- if (ctype_digit($char)) {
- return substr($string, 0, $i);
- }
- }
- return '';
- }
-
- /**
- * Author:Steven
- * Desc:比价数据处理
- * @param $ctrip_data
- * @param $price_conversion
- * @param $flag 是否折算价差
- * @return array
- */
- public function ctripDataService($ctrip_data, $HOTEL_ID, $flag = true)
- {
- //查询当前有直连关系的房型ID
- $ctripHotelPrice = new CtripHotelPrice();
- $room_arr = $ctripHotelPrice->getRelationRoom($ctrip_data[0]['spider_hotel_id']);
- $room_list = [];
- foreach ($room_arr as $room) {
- $room_list[] = $room['channel_room_id'];
- }
- //a_表示携程 b_表示蜘蛛
- $arr = array();
- if ($flag) {
- $ctripHotelPrice = new CtripHotelPrice();
- $price_conversion = $ctripHotelPrice->getHotelConversion($HOTEL_ID);
- $price_conversion = $price_conversion[0];
- }
- foreach ($ctrip_data as $item) {
- $spider_price = $item['b_price'];
- $ctrip_price = $item['a_price'];
- $origin_spider_price = $item['b_price']; //用于记录没有折算价差的时候的价格
- $origin_ctrip_price = $item['a_price'];
- if ($flag) {//携程价格折算
- $remain_room_conversion = isset($price_conversion['remain_room_conversion']) ? $price_conversion['remain_room_conversion'] : 0;
- $breakfast_conversion = isset($price_conversion['breakfast_conversion']) ? $price_conversion['breakfast_conversion'] : 0;
- $cancel_rules_conversion = isset($price_conversion['cancel_rules_conversion']) ? $price_conversion['cancel_rules_conversion'] : 0;
- $pay_type_conversion = isset($price_conversion['pay_type_conversion']) ? $price_conversion['pay_type_conversion'] : 0;
- //早餐(非早餐类型的早餐折算) 以我们的价格为基数,加上或者减去早餐数之差*价差
- $ctrip_breakfast = $this->calBreakfastLevel($item['a_breakfast']);
- $spider_breakfast = $this->calBreakfastLevel($item['b_breakfast']);
- $spider_price = $spider_price - ($spider_breakfast - $ctrip_breakfast) * $breakfast_conversion;
- //别墅类型的早餐折算
- $ctrip_breakfast1 = $this->calbreakfast1($item['a_breakfast']);
- $spider_breakfast2 = $this->calbreakfast1($item['b_breakfast']);
- $ctrip_person = $this->number($item['a_room_person']);
- $spider_person = $this->number($item['b_room_person']);
- $spider_price = $spider_price + ($spider_breakfast2 * $spider_person - $ctrip_breakfast1 * $ctrip_person) * $breakfast_conversion;
-
- //现预付 蜘蛛是预付
- if ($item['a_payment_txt'] == '到店付' || $item['a_payment_txt'] == '担保') {//现付
- $ctrip_price = $ctrip_price - $pay_type_conversion;
- }
- //保留房
- $item['a_confirm_info'] == '立即确认' ? '' : $ctrip_price = $ctrip_price + $remain_room_conversion;
- $item['b_confirm_info'] == '立即确认' ? '' : $spider_price = $spider_price + $remain_room_conversion;
- //取消规则
- $item['a_room_policy'] == '免费取消' ? '' : $ctrip_price = $ctrip_price + $cancel_rules_conversion;
- $item['b_room_policy'] == '免费取消' ? '' : $spider_price = $spider_price + $cancel_rules_conversion;
- }
- if ($spider_price > $ctrip_price || is_null($item['b_price'])) { //蜘蛛价格为null时,即价格未在携程前台显示
- $room_type = preg_replace('/^([^\d]+).*/', '$1', str_replace(array("\r\n", "\r", " ", "\n"), "", $item['room_type']));
-
- $arr[$item['spider_hotel_id']][$room_type][$item['start_date']] = array(
- 'a_bed_type' => $item['a_bed_type'],
- 'b_bed_type' => $item['b_bed_type'],
- 'a_breakfast' => $item['a_breakfast'],
- 'b_breakfast' => $item['b_breakfast'],
- 'a_room_policy' => $item['a_room_policy'],
- 'b_room_policy' => $item['b_room_policy'],
- 'a_confirm_info' => $item['a_confirm_info'],
- 'b_confirm_info' => $item['b_confirm_info'],
- 'a_supply_id' => $item['a_supply_id'],
- 'a_showdow_id' => $item['a_showdow_id'],
- 'a_payment_txt' => $item['a_payment_txt'],
- 'b_payment_txt' => $item['b_payment_txt'],
- 'a_room_person' => $item['a_room_person'],
- 'b_room_person' => $item['b_room_person'],
- 'a_price' => $item['a_price'],
- 'b_price' => $item['b_price'],
- 'b_son_room_id' => $item['son_room_id'],
- 'inferiority' => 2,
- );
- if (($origin_spider_price < $origin_ctrip_price) && !is_null($item['b_price'])) { //这种属于竞争力不足
- $arr[$item['spider_hotel_id']][$room_type][$item['start_date']]['inferiority'] = 3;
- }
- //判断当前房型是不是直连的房型
- if (!in_array($item['son_room_id'], $room_list)) {
- unset($arr[$item['spider_hotel_id']][$room_type][$item['start_date']]);
- }
- }
- }
-
- //当某个房型下所有的日期,蜘蛛的数据都是空的,表明我们没有合作此房型
- foreach ($arr as $itmem_k => $item) {
- foreach ($item as $key => $value) {
- $i = 0;
- foreach ($value as $k => $v) {
- if (is_null($v['b_price'])) {
- $i++;
- if ($i == count($value)) {
- unset($arr[$itmem_k][$key]);
- }
- }
- }
- }
- }
- return $arr;
- }
-
- /**
- * User:Steven
- * Desc:计算早餐级别
- * @param $breakfast
- * @return int
- */
- public function calBreakfastLevel($breakfast)
- {
- switch ($breakfast) {
- case '无早':
- $breakfast_level = 0;
- break;
- case '每天单早':
- $breakfast_level = 1;
- break;
- case '每天双早':
- $breakfast_level = 2;
- break;
- case '每天三早':
- $breakfast_level = 3;
- break;
- case '每天四早':
- $breakfast_level = 4;
- break;
- case '每天五早':
- $breakfast_level = 5;
- break;
- case '每天六早':
- $breakfast_level = 6;
- break;
- case '每天七早':
- $breakfast_level = 7;
- break;
- case '每天八早':
- $breakfast_level = 8;
- break;
- case '每天九早':
- $breakfast_level = 9;
- break;
- case '每天十早':
- $breakfast_level = 10;
- break;
- default:
- $breakfast_level = 0;
- break;
- }
- return $breakfast_level;
- }
-
- /**
- * User:Steven
- * Desc:对于别墅类型的房,计算早餐个数的时候需要考虑到入住人数
- * @param $breakfast
- * @return int|string
- */
- public function calbreakfast1($breakfast)
- {
- $arr = array(1 => '一', 2 => '二', 3 => '三', 4 => '四', 5 => '五', 6 => '六', 7 => '七', 8 => '八', 9 => '九', 10 => '十', 11 => '十一', 12 => '十二');
- foreach ($arr as $k => $v) {
- if ($breakfast == '每天每人' . $v . '份早') {
- return $k;
- } else {
- return 0;
- }
- }
- }
-
- /**
- * User:Steven
- * Desc:获取字符串中的数字部分
- * @param $str
- * @return mixed
- */
- public function number($str)
- {
- return preg_replace('/\D/s', '', $str);
- }
-
- public function GetHttpStatusCode($proxy)
- {
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_PROXY, $proxy);//使用代理访问
- curl_setopt($curl, CURLOPT_URL, "http://www.baidu.com");//获取内容url
- curl_setopt($curl, CURLOPT_HEADER, 1);//获取http头信息
- curl_setopt($curl, CURLOPT_NOBODY, 1);//不返回html的body信息
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//返回数据流,不直接输出
- curl_setopt($curl, CURLOPT_TIMEOUT, 5); //超时时长,单位秒
- curl_exec($curl);
- $rtn = curl_getinfo($curl, CURLINFO_HTTP_CODE);
- curl_close($curl);
- return $rtn;
- }
-
- }
-
- ?>
|