You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
information-system/application/third_party/tpmanage/controllers/webgetbokun.php

709 lines
32 KiB
PHP

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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>";
}
}
//简介
$temp_summary = $activityDeatil->description;
// if ($activityDeatil->excerpt != "") {
// $temp_summary .= "<p>" . $activityDeatil->excerpt . "</p>";
// }
//详细内容使用新的模板把简介及所有行程及对应FAQ信息全部集合
$tourstype='<div class="tours-type">
<ul>
<li><i class="fa fa-history" aria-hidden="true"></i>'.$activityDeatil->durationText.'</li>
<li><i class="fa fa-calendar" aria-hidden="true"></i>Every day</li>
<li><i class="fa fa-tags" aria-hidden="true"></i>City tour</li>
</ul>
<div class="clearfix"></div>
</div>';
//overview
$Description ='<div class="details-box active">
<h2>Description<i class="fa fa-angle-down" aria-hidden="true"></i></h2>
<div class="details-content">
<div class="details-list">
<h3><i class="fa fa-circle" aria-hidden="true"></i>Trip Overview</h3>'.$temp_summary.'
</div>
</div>
</div>';
//行程
$Itinerary ='<div class="details-box ">
<h2>Itinerary<i class="fa fa-angle-down" aria-hidden="true"></i></h2>
<div class="details-content">'.$strContent.'</div></div>';
//FAQ
$tempFaq = $strFaq = '';
if (isset($activityDeatil->included)){
if ($activityDeatil->included!="" && $activityDeatil->included!=null){
$strFaq = '<div class="details-list">
<h3><i class="fa fa-circle" aria-hidden="true"></i>What\'s included?</h3>'.$activityDeatil->included.'</div>';
$tempFaq.=$strFaq;
}
}
if (isset($activityDeatil->excluded)){
if ($activityDeatil->excluded!="" && $activityDeatil->excluded!=null){
$strFaq = '<div class="details-list">
<h3><i class="fa fa-circle" aria-hidden="true"></i>What\'s excluded</h3>'.$activityDeatil->excluded.'</div>';
$tempFaq.=$strFaq;
}
}
if (isset($activityDeatil->requirements)){
if ($activityDeatil->requirements!="" && $activityDeatil->requirements!=null){
$strFaq = '<div class="details-list">
<h3><i class="fa fa-circle" aria-hidden="true"></i>What do I need to bring?</h3>'.$activityDeatil->requirements.'</div>';
$tempFaq.=$strFaq;
}
}
if (isset($activityDeatil->attention)){
if ($activityDeatil->attention!="" && $activityDeatil->attention!=null){
$strFaq = '<div class="details-list">
<h3><i class="fa fa-circle" aria-hidden="true"></i>What need to note</h3>'.$activityDeatil->attention.'</div>';
$tempFaq.=$strFaq;
}
}
if (isset($activityDeatil->noPickupMsg)){
if ($activityDeatil->noPickupMsg!="" && $activityDeatil->noPickupMsg!=null){
$strFaq = '<div class="details-list">
<h3><i class="fa fa-circle" aria-hidden="true"></i>What if my hotel is outside the pickup area</h3>'.$activityDeatil->noPickupMsg.'</div>';
$tempFaq.=$strFaq;
}
}
// if (isset($activityDeatil->ticketMsg)){
// if ($activityDeatil->ticketMsg!="" && $activityDeatil->ticketMsg!=null){
// $strFaq = '<div class="details-list">
// <h3><i class="fa fa-circle" aria-hidden="true"></i>ticketMsg</h3>'.$activityDeatil->ticketMsg.'</div>';
// $tempFaq.=$strFaq;
// }
// }
//退款信息
if (isset($activityDeatil->cancellationPolicy)){
if (isset($activityDeatil->cancellationPolicy->penaltyRules) && is_array($activityDeatil->cancellationPolicy->penaltyRules)){
$cancelPolicy = "";
foreach ($activityDeatil->cancellationPolicy->penaltyRules as $Item_cancel) {
if ($Item_cancel->chargeType == "PERCENTAGE"){
$cancelPolicy .= "<li>We will charge a cancellation fee of ".$Item_cancel->charge."% if booking is cancelled ".$Item_cancel->cutoffHours." hours or less before event</li>";
}
}
if ($cancelPolicy!=""){
$cancelPolicy = "<ul>".$cancelPolicy."</ul>";
}
$strFaq = '<div class="details-list">
<h3><i class="fa fa-circle" aria-hidden="true"></i>Cancellation policy</h3>'.$cancelPolicy.'</div>';
$tempFaq.=$strFaq;
}
}
$FAQ = '<div class="details-box">
<h2>Know before you book<i class="fa fa-angle-down" aria-hidden="true"></i></h2>
<div class="details-content">'.$tempFaq.'</div></div>';
$allContent = $tourstype.$Description.$Itinerary.$FAQ;
$this->tpBokun_model->ic_content = $allContent;
$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 (in_array("passportId", $tempRequireFileds)) {
$this->tpBokun_model->addMeta($ic_id, "meta_trippest_type", "gg");
}
}
$this->tpBokun_model->addMeta($ic_id, "meta_product_code", $PAG_Code); //对应翰特编码
if (isset($activityDeatil->googlePlace->city)){
$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类的属性如includedrequirements,这些内容已经合并到详细内容里面
// $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();
// 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();
// }
//成人,儿童,婴儿信息
$pricingCategories = $activityDeatil->pricingCategories;
if (is_array($pricingCategories)){
foreach ($pricingCategories as $priceCg){
$ItemName_priceCg = "";
$ticketCategory = $priceCg->ticketCategory;
if ( strtoupper($ticketCategory)=="ADULT"){
$ItemName_priceCg = "AdultMsg";
}elseif (strtoupper($ticketCategory)=="CHILD") {
$ItemName_priceCg = "ChildMsg";
}elseif (strtoupper($ticketCategory)=="INFANT") {
$ItemName_priceCg = "InfantMsg";
}else{
$ItemName_priceCg = "Other_Msg";
}
$ItemValue_priceCg = "age ".$priceCg->minAge.'-'.$priceCg->maxAge;
$this->InfoBokunData_model->ibd_ItemName = $ItemName_priceCg; //
$this->InfoBokunData_model->ibd_Itemvalue = $ItemValue_priceCg;
$this->InfoBokunData_model->ibd_ItemType = "";
$this->InfoBokunData_model->Add();
}
}
if (isset($activityDeatil->googlePlace)){
if (isset($activityDeatil->googlePlace->country)){
$this->InfoBokunData_model->ibd_ItemName = "country"; //
$this->InfoBokunData_model->ibd_Itemvalue = $activityDeatil->googlePlace->country;
$this->InfoBokunData_model->ibd_ItemType = "";
$this->InfoBokunData_model->Add();
}
if (isset($activityDeatil->googlePlace->city)){
$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();
$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 */