From 81868638a94a02cf647846ffc012b266718085da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=B9=8F?= Date: Mon, 8 Jun 2020 12:11:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=8ECH=E5=AF=BC=E5=85=A5TP=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/controllers/infobokundata.php | 51 ++++-- .../tpmanage/controllers/webgetbokun.php | 172 +++++++++++++----- .../tpmanage/models/tpBokun_model.php | 16 ++ application/views/trippest/infobokundata.php | 7 +- 4 files changed, 181 insertions(+), 65 deletions(-) diff --git a/application/controllers/infobokundata.php b/application/controllers/infobokundata.php index 9fe6a497..bdb5ca42 100644 --- a/application/controllers/infobokundata.php +++ b/application/controllers/infobokundata.php @@ -23,9 +23,34 @@ class InfoBokunData extends CI_Controller $data["list"] = $list; $this->load->view("/trippest/infobokundata", $data); } else { - header('Cache-Control: no-cache'); - echo "找不到对应信息!"; - return false; + if ($ic_id > 0) { + $newBokun = new stdClass(); //如果是cht的产品,构建一个bokun属性,这样可以使用bokun的管理界面添加图片等属性。 + $newBokun->ibd_id = 0; + $newBokun->ibd_ic_id = $ic_id; + $newBokun->ibd_parentId = 0; + $newBokun->ibd_ItemName = "ActivityID"; + $newBokun->ibd_Itemvalue = "0"; + $newBokun->ibd_ItemType = ""; + $newBokun->ibd_ItemDescription = ""; + $list[] = $newBokun; + $data["list"] = $list; + + /**初始化一条bokun activityId的属性 */ + $this->InfoBokunData_model->ibd_ic_id = $ic_id; + $this->InfoBokunData_model->ibd_parentId = 0; + $this->InfoBokunData_model->ibd_ItemName = "ActivityID"; + $this->InfoBokunData_model->ibd_Itemvalue = "0"; + $this->InfoBokunData_model->ibd_ItemType = ""; + $this->InfoBokunData_model->ibd_ItemDescription = ""; + $this->InfoBokunData_model->Add(); + + //调用视图 + $this->load->view("/trippest/infobokundata", $data); + } else { + header('Cache-Control: no-cache'); + echo "找不到对应信息!"; + return; + } } } @@ -62,14 +87,15 @@ class InfoBokunData extends CI_Controller return true; } - function add_meta(){ - $ibd_ic_id=$this->input->post('ibd_ic_id'); - $ibd_parentId=$this->input->post('ibd_parentId'); - $ibd_ItemName=$this->input->post('ibd_ItemName'); - $ibd_Itemvalue=$this->input->post('ibd_Itemvalue'); - $ibd_ItemType=$this->input->post('ibd_ItemType'); - $ibd_ItemDescription=$this->input->post('ibd_ItemDescription'); - if($ibd_ic_id && $ibd_ItemName){ + function add_meta() + { + $ibd_ic_id = $this->input->post('ibd_ic_id'); + $ibd_parentId = $this->input->post('ibd_parentId'); + $ibd_ItemName = $this->input->post('ibd_ItemName'); + $ibd_Itemvalue = $this->input->post('ibd_Itemvalue'); + $ibd_ItemType = $this->input->post('ibd_ItemType'); + $ibd_ItemDescription = $this->input->post('ibd_ItemDescription'); + if ($ibd_ic_id && $ibd_ItemName) { $this->InfoBokunData_model->ibd_ic_id = $ibd_ic_id; $this->InfoBokunData_model->ibd_parentId = $ibd_parentId; $this->InfoBokunData_model->ibd_ItemName = $ibd_ItemName; @@ -78,12 +104,11 @@ class InfoBokunData extends CI_Controller $this->InfoBokunData_model->ibd_ItemDescription = $ibd_ItemDescription; $this->InfoBokunData_model->Add(); $data[] = array('name' => 'ok', 'value' => $this->lang->line('media_save_success')); - }else{ + } else { $data[] = array('name' => 'no', 'value' => $this->lang->line('media_save_error')); } echo json_encode($data); return true; - } } diff --git a/application/third_party/tpmanage/controllers/webgetbokun.php b/application/third_party/tpmanage/controllers/webgetbokun.php index 00153659..50600e8f 100644 --- a/application/third_party/tpmanage/controllers/webgetbokun.php +++ b/application/third_party/tpmanage/controllers/webgetbokun.php @@ -59,9 +59,9 @@ class webgetbokun extends CI_Controller //1.根据城市名称获取对应的is_id作为 父类ID $is_id = $this->get_isid_byCity($CityName); - if ($is_id == 0){ - return ; - } + if ($is_id == 0) { + return; + } //2.根据$activityid 抓取接口数据 $activityDeatil = json_decode($this->bokun_lib->get_activity_detail($activityid)); @@ -88,11 +88,11 @@ class webgetbokun extends CI_Controller foreach ($arrContent as $ContentItem) { $strTemp = ""; $strDay = ""; - if ($ContentItem->day!=1){ - $strDay = "(day ".$ContentItem->day.")"; + if ($ContentItem->day != 1) { + $strDay = "(day " . $ContentItem->day . ")"; } if ($ContentItem->title != "") { - $strTemp .= "

" . $ContentItem->title.$strDay. "

"; + $strTemp .= "

" . $ContentItem->title . $strDay . "

"; } if ($ContentItem->body != "") { $strTemp .= $ContentItem->body; @@ -137,12 +137,11 @@ class webgetbokun extends CI_Controller //先旧的infometa表 $tempRequireFileds = $activityDeatil->requiredCustomerFields; //根据抓取的需求字段,判断是否需要passport if (is_array($tempRequireFileds)) { - if (is_array($tempRequireFileds[0])){ + if (is_array($tempRequireFileds[0])) { if (in_array("passportId", $tempRequireFileds[0])) { $this->tpBokun_model->addMeta($ic_id, "meta_trippest_type", "gg"); } } - } $this->tpBokun_model->addMeta($ic_id, "meta_product_code", $PAG_Code); //对应翰特编码 $this->tpBokun_model->addMeta($ic_id, "meta_facts_city", $activityDeatil->googlePlace->city); //保存一下具体城市 @@ -154,12 +153,12 @@ class webgetbokun extends CI_Controller $this->InfoBokunData_model->ibd_Itemvalue = $activityid; $ibd_id = $this->InfoBokunData_model->Add(); - if ($this->InfoBokunData_model->ibd_ItemName == "ActivityID"){ + if ($this->InfoBokunData_model->ibd_ItemName == "ActivityID") { $this->InfoBokunData_model->ibd_parentId = 0; - }else{ + } else { $this->InfoBokunData_model->ibd_parentId = $ibd_id; //设置剩余的属性都是这个activityid的子类,避免每条记录都保存activityid } - if (isset($activityDeatil->keyPhoto)){ + if (isset($activityDeatil->keyPhoto)) { $this->InfoBokunData_model->ibd_ItemName = "keyPhoto"; //主要图片 $this->InfoBokunData_model->ibd_Itemvalue = $activityDeatil->keyPhoto->originalUrl; $this->InfoBokunData_model->ibd_ItemType = "originalUrl"; @@ -248,13 +247,13 @@ class webgetbokun extends CI_Controller $arrAgendaItems = $activityDeatil->agendaItems; //保存产品行程里面的派生图片 if (is_array($arrAgendaItems)) { foreach ($arrAgendaItems as $agendaItem) { - if (isset($agendaItem->keyPhoto)){ + if (isset($agendaItem->keyPhoto)) { if ($agendaItem->keyPhoto != null && $agendaItem->keyPhoto != "") { $this->InfoBokunData_model->ibd_ItemName = "AgendaPhoto"; $this->InfoBokunData_model->ibd_Itemvalue = $agendaItem->keyPhoto->originalUrl; - if (isset($$agendaItem->keyPhoto->description)){ + if (isset($$agendaItem->keyPhoto->description)) { $this->InfoBokunData_model->ibd_ItemDescription = $$agendaItem->keyPhoto->description; - } + } $this->InfoBokunData_model->ibd_ItemType = "originalUrl"; $this->InfoBokunData_model->Add(); } @@ -267,10 +266,10 @@ class webgetbokun extends CI_Controller $this->InfoBokunData_model->ibd_ItemName = "AgendaPhoto"; $this->InfoBokunData_model->ibd_Itemvalue = $agendaPhotoItem->originalUrl; $this->InfoBokunData_model->ibd_ItemType = "originalUrl"; - if (isset($agendaPhotoItem->description)){ + if (isset($agendaPhotoItem->description)) { $this->InfoBokunData_model->ibd_ItemDescription = $agendaPhotoItem->description; } - + $this->InfoBokunData_model->Add(); } } @@ -301,7 +300,7 @@ class webgetbokun extends CI_Controller if (isset($row)) { $result = $row->is_id; } else { - $result = 0 ; //$this->tpBokun_model->is_topId; + $result = 0; //$this->tpBokun_model->is_topId; } return $result; } @@ -331,9 +330,9 @@ class webgetbokun extends CI_Controller } } if ($str_return != "") { - echo "新城市添加:" . $str_return."\r\n"; + echo "新城市添加:" . $str_return . "\r\n"; } else { - echo "没有新的城市"."\r\n"; + echo "没有新的城市" . "\r\n"; } } @@ -419,7 +418,7 @@ class webgetbokun extends CI_Controller $PassParam["checkCode"] = $checkCode; $strPass = base64_encode(json_encode($PassParam)); $this->addActivity($strPass); - echo "\r\n" ; + echo "\r\n"; } } } @@ -434,67 +433,142 @@ class webgetbokun extends CI_Controller /** 这里是在cht的信息平台运行的接口 */ /** - * @description: 获取CH那边的产品生成接口数据 + * @description: CH那边的产品生成接口数据 * @param {type} * @return: * @Date Changed: */ - function getChtTours($strcity=""){ - if ($strcity==""){ + function getChtTours($strcity = "") + { + if ($strcity == "") { $strcity = "beijing,guilin,chengdu,shanghai,xian,zhangjiajie,huangshan,yunnan"; } $result = array(); //城市解析 - $arrCity = explode(",",$strcity); + $arrCity = explode(",", $strcity); $strParam = ""; - foreach ($arrCity as $city){ - $strParam.="'/day-tours/".strtolower(str_replace(" ","-",$city))."/',"; + foreach ($arrCity as $city) { + $strParam .= "'/day-tours/" . strtolower(str_replace(" ", "-", $city)) . "/',"; } - $strParam = trim($strParam,","); + $strParam = trim($strParam, ","); //$strParam = "'/beijing/','/shanghai/'"; //本地测试 //传递 $list = $this->tpBokun_model->getChtTours($strParam); - if ($list){ + if ($list) { - foreach ($list as $Item){ + foreach ($list as $Item) { $data["city"] = $Item->city; - $data["ic_id"]=$Item->ic_id; - $data["ic_url"]=$Item->ic_url; - $data["ic_title"]=$Item->ic_title; - $data["ic_url_title"]=$Item->ic_url_title; + $data["ic_id"] = $Item->ic_id; + $data["ic_url"] = $Item->ic_url; + $data["ic_title"] = $Item->ic_title; + $data["ic_url_title"] = $Item->ic_url_title; $data["ic_content"] = $Item->ic_content; $data["ic_summary"] = $Item->ic_summary; $data["ic_seo_title"] = $Item->ic_seo_title; $data["ic_seo_description"] = $Item->ic_seo_description; $data["ic_seo_keywords"] = $Item->ic_seo_keywords; - $data["ic_photo"]=$Item->ic_photo; + $data["ic_photo"] = $Item->ic_photo; //meta属性 $listmeta = $this->tpBokun_model->getChtToursMeta($Item->ic_id); - if ($listmeta){ + if ($listmeta) { $arrmeta = array(); - foreach($listmeta as $meta){ - $MetaData["im_key"]=$meta->im_key; - $MetaData["im_value"]=$meta->im_value; - $arrmeta[]=$MetaData; + foreach ($listmeta as $meta) { + $MetaData["im_key"] = $meta->im_key; + $MetaData["im_value"] = $meta->im_value; + $arrmeta[] = $MetaData; } - if ($arrmeta){ - $data["meta"]=$arrmeta; + if ($arrmeta) { + $data["meta"] = $arrmeta; } - } - $result[]=$data; + $result[] = $data; } - } - if ($result){ - echo json_encode($result); - }else{ - echo json_encode(array("status"=>"none","param"=>$strParam)); + if ($result) { + echo json_encode($result); + } else { + echo json_encode(array("status" => "none", "param" => $strParam)); + } + } + + + function CurlCHTTours($city = "") + { + $url = "https://cht.mycht.cn/info.php/thirdparty/tpmanage/webgetbokun/getChtTours/"; + if ($city != "") { + $url = $url . strtolower(str_replace(" ", "-", $city)) . "/"; } - + $str = $this->tpBokun_model->getCrulData($url); //抓取cht的数据 + $chtData = json_decode($str); + if (is_array($chtData) && count($chtData) > 0) { + //导入开始 + foreach ($chtData as $chtItem) { + // echo ($chtItem->city.",".$chtItem->ic_title."\n\r"); + //判断重复 + if ($this->tpBokun_model->checkChtTours($chtItem->ic_url_title)) { + echo "已存在:" .$chtItem->ic_url_title. "\r\n"; + continue; + } + + //开始导入 + //1.根据城市名称获取对应的is_id作为 父类ID + $chtCity = str_replace("'", "", str_replace(' ', '-', strtolower($chtItem->city))); + $is_id = $this->get_isid_byCity($chtCity); + if ($is_id == 0) { + continue; //找不到对应城市跳过 + } + + $ic_url = $chtItem->ic_url; //根据原来的URL替换成新的URL + $ic_url = str_replace("/day-tours/" . $chtCity . "/", "/" . $chtCity . "-tours/", $ic_url); + $ic_url = str_replace(".htm", "/", $ic_url); + + $this->tpBokun_model->ic_url = $ic_url; + + $this->tpBokun_model->ic_url_title = $chtItem->ic_url_title; + $this->tpBokun_model->ic_title = $chtItem->ic_title; + $this->tpBokun_model->ic_content = $chtItem->ic_content; + $this->tpBokun_model->ic_summary = $chtItem->ic_summary; + $this->tpBokun_model->ic_seo_title = $chtItem->ic_seo_title; + $this->tpBokun_model->ic_seo_description = $chtItem->ic_seo_description; + $this->tpBokun_model->ic_seo_keywords = $chtItem->ic_seo_keywords; + $this->tpBokun_model->ic_photo = $chtItem->ic_photo; + $this->tpBokun_model->ic_status = 1; + + //保存信息表 + $tempData = json_decode($this->tpBokun_model->addInfo($is_id)); + if (is_array($tempData)) { + $ic_id = $tempData[0]->value->ic_id; + } else { + $result["status"] = "error"; + echo json_encode($result); + continue; + } + + //保存meta表 + if ($ic_id > 0) { + $metalist = $chtItem->meta; + if ($metalist) { + foreach ($metalist as $metaItem) { + $this->tpBokun_model->addMeta($ic_id, $metaItem->im_key, $metaItem->im_value); //循环导入原来的meta + } + } + } + + $result["status"] = "ok"; + $result["ic_id"] = $ic_id; + echo json_encode($result); + echo "\r\n"; + } + echo "数据导入完成 \r\n"; + } else { + echo "接口数据读取错误!"; + } + + //print_r(json_decode($str)); + // echo $str; } } diff --git a/application/third_party/tpmanage/models/tpBokun_model.php b/application/third_party/tpmanage/models/tpBokun_model.php index 5a3961bd..f5ec1d4a 100644 --- a/application/third_party/tpmanage/models/tpBokun_model.php +++ b/application/third_party/tpmanage/models/tpBokun_model.php @@ -50,6 +50,22 @@ class TpBokun_model extends CI_Model return json_encode($result); } + /** + * @description: 通过链接标题判断CHT的产品是否已经导入 + * @param {type} + * @return: + * @Date Changed: + */ + function checkChtTours($ic_url_title){ + $sql = "select top 1 * from infoContents where ic_url_title = ?"; + $query = $this->HT->query($sql,array($ic_url_title)); + if ($query->num_rows()>0){ + return true; + }else{ + return false; + } + } + /** diff --git a/application/views/trippest/infobokundata.php b/application/views/trippest/infobokundata.php index 4bc4a9ae..54423095 100644 --- a/application/views/trippest/infobokundata.php +++ b/application/views/trippest/infobokundata.php @@ -63,9 +63,9 @@ ?>
-    +    - +