|
|
<?php
|
|
|
|
|
|
/**
|
|
|
* 网前用的抓取程序,主要是单独处理抓取的单个产品
|
|
|
*/
|
|
|
|
|
|
defined('BASEPATH') or exit('No direct script access allowed');
|
|
|
|
|
|
class webgetbokun extends CI_Controller
|
|
|
{
|
|
|
|
|
|
|
|
|
public function __construct()
|
|
|
{
|
|
|
parent::__construct();
|
|
|
$this->load->library("Bokun_lib");
|
|
|
$this->load->model("tpBokun_model");
|
|
|
$this->load->helper("text");
|
|
|
$this->load->model("InfoBokunData_model");
|
|
|
}
|
|
|
|
|
|
|
|
|
public function index()
|
|
|
{
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @description: 检查是否是新的bokun产品,根据infobokundata表的activityid记录
|
|
|
* @param {type}
|
|
|
* @return:
|
|
|
* @Date Changed:
|
|
|
*/
|
|
|
function checkActivityId($activityid)
|
|
|
{
|
|
|
$result = $this->tpBokun_model->checkActivityId($activityid);
|
|
|
// print_r($result);
|
|
|
echo $result;
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @description: 前端根据activityid抓取具体的产品信息,并根据传递过来pag_code,保存数据到信息平台
|
|
|
* @param string $PassParam :传递过来的参数,base64
|
|
|
* @return:
|
|
|
* @Date Changed:
|
|
|
*/
|
|
|
function addActivity($PassParam)
|
|
|
{
|
|
|
$ParamData = json_decode(base64_decode($PassParam));
|
|
|
//print_r($ParamData);
|
|
|
$activityid = $ParamData->activityid;
|
|
|
$PAG_Code = $ParamData->PAG_Code;
|
|
|
$CityName = $ParamData->CityName;
|
|
|
$checkCode = $ParamData->checkCode;
|
|
|
|
|
|
if ($checkCode != "cits") {
|
|
|
return "Error"; //传递的验证code错误
|
|
|
} else {
|
|
|
//1.根据城市名称获取对应的is_id作为 父类ID
|
|
|
$is_id = $this->get_isid_byCity($CityName);
|
|
|
|
|
|
if ($is_id == 0) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
//2.根据$activityid 抓取接口数据
|
|
|
$activityDeatil = json_decode($this->bokun_lib->get_activity_detail($activityid));
|
|
|
$title = $activityDeatil->title;
|
|
|
$title_url = str_replace("'", "", strtolower($title));
|
|
|
$title_url = str_replace(":", "", $title_url);
|
|
|
$title_url = str_replace("(", " ", $title_url);
|
|
|
$title_url = str_replace(")", " ", $title_url);
|
|
|
$title_url = str_replace("/", " ", $title_url);
|
|
|
$title_url = str_replace("\\", " ", $title_url);
|
|
|
$title_url = str_replace(" ", " ", $title_url);
|
|
|
$title_url = str_replace(' ', '-', $title_url);
|
|
|
$CityName_url = str_replace("'", "", str_replace(' ', '-', strtolower($CityName)));
|
|
|
|
|
|
//3.根据抓取数据进行信息表infocontent和infostructures表的添加
|
|
|
$this->tpBokun_model->ic_title = $title;
|
|
|
$this->tpBokun_model->ic_url_title = $title;
|
|
|
$guideUrl = "/$CityName_url-tours/$title_url/";
|
|
|
$this->tpBokun_model->ic_url = $guideUrl;
|
|
|
|
|
|
//抓取数据组合成详细内容。
|
|
|
$arrContent = $activityDeatil->agendaItems;
|
|
|
$strContent = "";
|
|
|
foreach ($arrContent as $ContentItem) {
|
|
|
$strTemp = "";
|
|
|
$strDay = "";
|
|
|
if ($ContentItem->day != 1) {
|
|
|
$strDay = "(day " . $ContentItem->day . ")";
|
|
|
}
|
|
|
if ($ContentItem->title != "") {
|
|
|
$strTemp .= "<h3><i class=\"fa fa-circle\" aria-hidden=\"true\"></i>" . $ContentItem->title . $strDay . "</h3>";
|
|
|
}
|
|
|
if ($ContentItem->body != "") {
|
|
|
$strTemp .= $ContentItem->body;
|
|
|
}
|
|
|
if ($ContentItem->excerpt != "") {
|
|
|
$strTemp .= "<p>" . $ContentItem->excerpt . "</p>";
|
|
|
}
|
|
|
|
|
|
if ($strTemp != "") {
|
|
|
$strContent .= "<div class=\"details-list\">" . $strTemp . "</div>";
|
|
|
}
|
|
|
}
|
|
|
$this->tpBokun_model->ic_content = $strContent;
|
|
|
|
|
|
//简介
|
|
|
$temp_summary = $activityDeatil->description;
|
|
|
if ($activityDeatil->excerpt != "") {
|
|
|
$temp_summary .= "<p>" . $activityDeatil->excerpt . "</p>";
|
|
|
}
|
|
|
$this->tpBokun_model->ic_summary = $temp_summary;
|
|
|
|
|
|
//seo
|
|
|
$this->tpBokun_model->ic_seo_title = character_limiter($title, 100);
|
|
|
$this->tpBokun_model->ic_seo_description = $title; //iconv("GBK","UTF-8",character_limiter(strip_tags($activityDeatil->description), 200));
|
|
|
$tempKeywords = $activityDeatil->keywords;
|
|
|
if (is_array($tempKeywords) && count($tempKeywords) > 0) {
|
|
|
$this->tpBokun_model->ic_seo_keywords = implode(",", $tempKeywords);
|
|
|
}
|
|
|
$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);
|
|
|
}
|
|
|
|
|
|
//4.附加属性添加(infometa表及新建的infoBokunData表)
|
|
|
if ($ic_id > 0) {
|
|
|
|
|
|
//先旧的infometa表
|
|
|
$tempRequireFileds = $activityDeatil->requiredCustomerFields; //根据抓取的需求字段,判断是否需要passport
|
|
|
if (is_array($tempRequireFileds)) {
|
|
|
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); //保存一下具体城市
|
|
|
|
|
|
//然后保存新建的infobokunData表
|
|
|
$this->InfoBokunData_model->ibd_ic_id = $ic_id; //统一的
|
|
|
|
|
|
$this->InfoBokunData_model->ibd_ItemName = "ActivityID";
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $activityid;
|
|
|
$ibd_id = $this->InfoBokunData_model->Add();
|
|
|
|
|
|
if ($this->InfoBokunData_model->ibd_ItemName == "ActivityID") {
|
|
|
$this->InfoBokunData_model->ibd_parentId = 0;
|
|
|
} else {
|
|
|
$this->InfoBokunData_model->ibd_parentId = $ibd_id; //设置剩余的属性都是这个activityid的子类,避免每条记录都保存activityid
|
|
|
}
|
|
|
if (isset($activityDeatil->keyPhoto)) {
|
|
|
$this->InfoBokunData_model->ibd_ItemName = "keyPhoto"; //主要图片
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $activityDeatil->keyPhoto->originalUrl;
|
|
|
$this->InfoBokunData_model->ibd_ItemType = "originalUrl";
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
$arrKeyPhoto = $activityDeatil->keyPhoto->derived; //主要图片派生图,大中小类型
|
|
|
if (is_array($arrKeyPhoto)) {
|
|
|
foreach ($arrKeyPhoto as $kPhotoItem) {
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $kPhotoItem->url;
|
|
|
$this->InfoBokunData_model->ibd_ItemType = $kPhotoItem->name;
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
$arrProductPhoto = $activityDeatil->photos; //产品主要图片
|
|
|
if (is_array($arrProductPhoto)) {
|
|
|
foreach ($arrProductPhoto as $pPhotoItem) {
|
|
|
$this->InfoBokunData_model->ibd_ItemName = "ProductPhoto";
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $pPhotoItem->originalUrl;
|
|
|
$this->InfoBokunData_model->ibd_ItemType = "originalUrl";
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
|
|
|
$arrProductPhotoDerived = $pPhotoItem->derived; //产品主要图片的派生图,大中小类型
|
|
|
if (is_array($arrProductPhotoDerived)) {
|
|
|
foreach ($arrProductPhotoDerived as $pPhotoDerivedItem) {
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $pPhotoDerivedItem->url;
|
|
|
$this->InfoBokunData_model->ibd_ItemType = $pPhotoDerivedItem->name;
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
//一些FAQ类的属性,如included,requirements
|
|
|
$this->InfoBokunData_model->ibd_ItemName = "included"; //
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $activityDeatil->included;
|
|
|
$this->InfoBokunData_model->ibd_ItemType = "";
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
|
|
|
$this->InfoBokunData_model->ibd_ItemName = "excluded"; //
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $activityDeatil->excluded;
|
|
|
$this->InfoBokunData_model->ibd_ItemType = "";
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
|
|
|
$this->InfoBokunData_model->ibd_ItemName = "requirements"; //
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $activityDeatil->requirements;
|
|
|
$this->InfoBokunData_model->ibd_ItemType = "";
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
|
|
|
$this->InfoBokunData_model->ibd_ItemName = "attention"; //
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $activityDeatil->attention;
|
|
|
$this->InfoBokunData_model->ibd_ItemType = "";
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
|
|
|
$this->InfoBokunData_model->ibd_ItemName = "country"; //
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $activityDeatil->googlePlace->country;
|
|
|
$this->InfoBokunData_model->ibd_ItemType = "";
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
|
|
|
$this->InfoBokunData_model->ibd_ItemName = "city"; //
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $activityDeatil->googlePlace->city;
|
|
|
$this->InfoBokunData_model->ibd_ItemType = "";
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
|
|
|
$this->InfoBokunData_model->ibd_ItemName = "durationText"; //
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $activityDeatil->durationText;
|
|
|
$this->InfoBokunData_model->ibd_ItemType = "";
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
|
|
|
if ($activityDeatil->noPickupMsg != null && $activityDeatil->noPickupMsg != "") {
|
|
|
$this->InfoBokunData_model->ibd_ItemName = "noPickupMsg"; //
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $activityDeatil->noPickupMsg;
|
|
|
$this->InfoBokunData_model->ibd_ItemType = "";
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
}
|
|
|
|
|
|
if ($activityDeatil->ticketMsg != null && $activityDeatil->ticketMsg != "") {
|
|
|
$this->InfoBokunData_model->ibd_ItemName = "ticketMsg"; //
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $activityDeatil->ticketMsg;
|
|
|
$this->InfoBokunData_model->ibd_ItemType = "";
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
}
|
|
|
|
|
|
$arrAgendaItems = $activityDeatil->agendaItems; //保存产品行程里面的派生图片
|
|
|
if (is_array($arrAgendaItems)) {
|
|
|
foreach ($arrAgendaItems as $agendaItem) {
|
|
|
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)) {
|
|
|
$this->InfoBokunData_model->ibd_ItemDescription = $$agendaItem->keyPhoto->description;
|
|
|
}
|
|
|
$this->InfoBokunData_model->ibd_ItemType = "originalUrl";
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
$arrAgendaItemPhotos = $agendaItem->photos;
|
|
|
if (is_array($arrAgendaItemPhotos)) {
|
|
|
foreach ($arrAgendaItemPhotos as $agendaPhotoItem) {
|
|
|
$this->InfoBokunData_model->ibd_ItemName = "AgendaPhoto";
|
|
|
$this->InfoBokunData_model->ibd_Itemvalue = $agendaPhotoItem->originalUrl;
|
|
|
$this->InfoBokunData_model->ibd_ItemType = "originalUrl";
|
|
|
if (isset($agendaPhotoItem->description)) {
|
|
|
$this->InfoBokunData_model->ibd_ItemDescription = $agendaPhotoItem->description;
|
|
|
}
|
|
|
|
|
|
$this->InfoBokunData_model->Add();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
$result["status"] = "error";
|
|
|
echo json_encode($result);
|
|
|
}
|
|
|
|
|
|
//5. 返回成功信息
|
|
|
$result["status"] = "ok";
|
|
|
$result["ic_id"] = $ic_id;
|
|
|
echo json_encode($result);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @description: 根据城市名称,获取对应的is_id,判断产品放到信息平台的位置
|
|
|
* @param {type}
|
|
|
* @return: int is_id :城市所在信息平台的Id
|
|
|
* @Date Changed:
|
|
|
*/
|
|
|
function get_isid_byCity($CityName)
|
|
|
{
|
|
|
$cityUrl = "/" . str_replace("'", "", str_replace(' ', '-', strtolower($CityName))) . "-" . "tours/";
|
|
|
$row = $this->tpBokun_model->getInfomationAll($cityUrl);
|
|
|
if (isset($row)) {
|
|
|
$result = $row->is_id;
|
|
|
} else {
|
|
|
$result = 0; //$this->tpBokun_model->is_topId;
|
|
|
}
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* @description: 为了方便,首先循环添加所有的城市目录
|
|
|
* @param {type}
|
|
|
* @return:
|
|
|
* @Date Changed:
|
|
|
*/
|
|
|
function checkAllCity()
|
|
|
{
|
|
|
$str_return = "";
|
|
|
$result = $this->bokun_lib->get_all_product_list();
|
|
|
//print_r($result);
|
|
|
$result = json_decode($result);
|
|
|
if (is_array($result) && count($result) > 0) {
|
|
|
//productlist是所有产品,按城市分类,然后child里面是类别分类
|
|
|
foreach ($result as $pItem) {
|
|
|
$cityName = $pItem->title; //城市名称,用来判断信息平台是否有该城市
|
|
|
if (isset($cityName)) {
|
|
|
$infoCity = json_decode($this->doInfoCity($cityName)); //获取导入的城市名称为父类,下面的产品在信息平台里面放在这个的下面
|
|
|
if ($infoCity->type == "new") {
|
|
|
$str_return .= $infoCity->cityname . ",";
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if ($str_return != "") {
|
|
|
echo "新城市添加:" . $str_return . "\r\n";
|
|
|
} else {
|
|
|
echo "没有新的城市" . "\r\n";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* @description: 判断信息平台是否有该城市的记录,没有则添加。/beijing-tours/
|
|
|
* @param {type}
|
|
|
* @return: 返回info的is_id ,作为父类ID
|
|
|
* @Date Changed:
|
|
|
*/
|
|
|
function doInfoCity($CityName)
|
|
|
{
|
|
|
$cityUrl = "/" . str_replace("'", "", str_replace(' ', '-', strtolower($CityName))) . "-" . "tours/";
|
|
|
$infoDetail = $this->tpBokun_model->getInfomationAll($cityUrl);
|
|
|
if (isset($infoDetail)) {
|
|
|
//如果存在
|
|
|
$result["Id"] = $infoDetail->is_id;
|
|
|
$result["cityname"] = $infoDetail->ic_title;
|
|
|
$result["type"] = "old";
|
|
|
} else {
|
|
|
//如果不存在就录入
|
|
|
$this->tpBokun_model->ic_title = ucwords($CityName) . " Tours";
|
|
|
$this->tpBokun_model->ic_url_title = ucwords($CityName) . " Tours";
|
|
|
$this->tpBokun_model->ic_url = $cityUrl;
|
|
|
$tempData = json_decode($this->tpBokun_model->addInfo($this->tpBokun_model->is_topId));
|
|
|
if (is_array($tempData)) {
|
|
|
$result["Id"] = $tempData[0]->value->is_id;
|
|
|
$result["cityname"] = $CityName;
|
|
|
$result["type"] = "new";
|
|
|
} else {
|
|
|
$result["Id"] = 0;
|
|
|
$result["cityname"] = "";
|
|
|
$result["type"] = "error";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return json_encode($result);
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* @description: 网前只抓取信息平台的信息。由于产品的翰特编码都是yong bk_activityid的规则组成,所以分开更新是可能的。这样可以保证不需要理会本地和网前的处理速度
|
|
|
* @param sring $city : 城市名称 。用来单独更新某个城市
|
|
|
* @return:
|
|
|
* @Date Changed:
|
|
|
*/
|
|
|
function onlyUpdateInfo($city = "")
|
|
|
{
|
|
|
//先进行对应城市的更新
|
|
|
$this->checkAllCity();
|
|
|
|
|
|
//循环接口开始
|
|
|
$result = $this->bokun_lib->get_all_product_list();
|
|
|
//print_r($result);
|
|
|
$result = json_decode($result);
|
|
|
if (is_array($result) && count($result) > 0) {
|
|
|
//productlist是所有产品,按城市分类,然后child里面是类别分类
|
|
|
foreach ($result as $pItem) {
|
|
|
$cityName = str_replace("'", "", $pItem->title); //城市名称,用来判断信息平台是否有该城市
|
|
|
if (isset($cityName)) {
|
|
|
if ($city != "" && strtolower($city) != strtolower($cityName)) {
|
|
|
continue; //如果设置了指定抓取城市
|
|
|
} else {
|
|
|
|
|
|
$list_id = $pItem->id;
|
|
|
$pchild_Detail = $this->bokun_lib->get_product_list_detail($list_id);
|
|
|
$data_pchild_Detail = json_decode($pchild_Detail); //类别详细
|
|
|
foreach ($data_pchild_Detail->items as $pcdItem) { //循环类别
|
|
|
$activityData = $pcdItem->activity; //产品详细内容
|
|
|
//解析后获取需要的参数
|
|
|
$activityId = $activityData->id; //产品的activityId,可以获取对应的产品详细内容。
|
|
|
//先判断是否是新产品
|
|
|
$checkNew = json_decode($this->tpBokun_model->checkActivityId($activityId));
|
|
|
if ($checkNew->return == "yes") {
|
|
|
continue;
|
|
|
}
|
|
|
//提交网前接口
|
|
|
$PAGCode = "bk_" . $activityId;
|
|
|
$checkCode = "cits"; //用来防止参数被破解
|
|
|
$PassParam["activityid"] = $activityId;
|
|
|
$PassParam["PAG_Code"] = $PAGCode;
|
|
|
$PassParam["CityName"] = $cityName;
|
|
|
$PassParam["checkCode"] = $checkCode;
|
|
|
$strPass = base64_encode(json_encode($PassParam));
|
|
|
$this->addActivity($strPass);
|
|
|
echo "\r\n";
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
echo ("抓取完成!\r\n");
|
|
|
} else {
|
|
|
echo "无接口数据!\r\n";
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
/** 这里是在cht的信息平台运行的接口 */
|
|
|
|
|
|
/**
|
|
|
* @description: CH那边的产品生成接口数据
|
|
|
* @param {type}
|
|
|
* @return:
|
|
|
* @Date Changed:
|
|
|
*/
|
|
|
function getChtTours($strcity = "")
|
|
|
{
|
|
|
if ($strcity == "") {
|
|
|
$strcity = "beijing,guilin,chengdu,shanghai,xian,zhangjiajie,huangshan,yunnan";
|
|
|
}
|
|
|
$result = array();
|
|
|
//城市解析
|
|
|
$arrCity = explode(",", $strcity);
|
|
|
$strParam = "";
|
|
|
foreach ($arrCity as $city) {
|
|
|
$strParam .= "'/day-tours/" . strtolower(str_replace(" ", "-", $city)) . "/',";
|
|
|
}
|
|
|
$strParam = trim($strParam, ",");
|
|
|
//$strParam = "'/beijing/','/shanghai/'"; //本地测试
|
|
|
//传递
|
|
|
$list = $this->tpBokun_model->getChtTours($strParam);
|
|
|
if ($list) {
|
|
|
|
|
|
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_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;
|
|
|
|
|
|
|
|
|
//meta属性
|
|
|
$listmeta = $this->tpBokun_model->getChtToursMeta($Item->ic_id);
|
|
|
if ($listmeta) {
|
|
|
$arrmeta = array();
|
|
|
foreach ($listmeta as $meta) {
|
|
|
$MetaData["im_key"] = $meta->im_key;
|
|
|
$MetaData["im_value"] = $meta->im_value;
|
|
|
$arrmeta[] = $MetaData;
|
|
|
}
|
|
|
if ($arrmeta) {
|
|
|
$data["meta"] = $arrmeta;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$result[] = $data;
|
|
|
}
|
|
|
}
|
|
|
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;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/* End of file webgetbokun.php */
|