Util::authCodeForCs($time),
'user_key' => $siteConfig['adm_user_key'],
'user' => $siteConfig['adm_user'],
'user_id' => $siteConfig['adm_user_id'],
'request_time' => $time,
'action' => 'get_all_tourist_info',
'org_id' => $siteConfig['adm_source_id']
];
$curlInterface = new CurlInterface($send_data, 4);
$curlInterface->setBaseUrl('');
$csProdArr = $curlInterface->execute($siteConfig['adm_host1'] . '/api/wx/', 'POST');
if (!isset($csProdArr['code']) || $csProdArr['code'] != 0) {
return Util::returnArrEr('接口错误!');
} else {
return Util::returnArrSu('', $csProdArr['list']);
}
}
/**
* Des:添加巴士自由行产品数据
* Name: addFreeWalk
* @param $csProdArr
* @param $localProdSign
* @return array
* @author 倪宗锋
*/
public function addFreeWalk($csProdArr, $localProdSign)
{
$errorIds = [];
$success = [];
$prodCategory = new ProdCategory();
foreach ($csProdArr as $key => $val) {
if (in_array($key, $localProdSign)) {//已经存在不做处理
continue;
}
$transaction = Yii::$app->db->beginTransaction();
try {
$list_img_url = empty($val['list_img_url']) ? [] : $val['list_img_url'];//产品图片列表
//添加产品品类数据
$prod_category = clone $prodCategory;
$value = [
'category_id' => '4',
'sign' => $key,
'pro_cate_name' => $val['name'],
'prod_des' => $val['prod_des'],
'feature' => $val['feature'],
'trip_desc' => $val['trip_desc'],
'memo' => $val['price_explain'] . '
' . $val['memo'],
'start_area' => $val['start_area'],
'address' => $val['end_area'],
'create_time' => date('Y-m-d H:i:s'),
'show_img' => $val['top_image_url'],
'commission' => 5,
'show_price' => ceil($val['mini_price']),
'original_price' => ceil($val['mini_price'])
];
$prod_category->isNewRecord = true;
$prod_category->setAttributes($value);
$prod_res = $prod_category->save(false);
if ($prod_res === false) {
$errorIds[] = $key . '[1]';//错误ID数组
$transaction->rollBack();
continue;
}
$pro_cate_id = $prod_category->pro_cate_id;
//添加产品图片 插入失败不终止产品的同步
if (count($list_img_url) > 0) {
$prodImgValues = [];
$prodImgKeys = ['pro_cate_id', 'img_url', 'redirect_url', 'memo', 'img_type', 'create_time'];
foreach ($list_img_url as $subVal) {
$prodImgVal = [];
$prodImgVal[] = $pro_cate_id;//pro_cate_id
$prodImgVal[] = $subVal;//img_url
$prodImgVal[] = '';//redirect_url
$prodImgVal[] = '';//memo
$prodImgVal[] = 1;//产品轮播图 img_type
$prodImgVal[] = date('Y-m-d H:i:s');//create_time
$prodImgValues[] = $prodImgVal;
}
Yii::$app->db->createCommand()->batchInsert('prod_img', $prodImgKeys, $prodImgValues)->execute();
}
//添加产品表数据
$subTicket = $val['sub_ticket'];
$prodMainValues = [];
$prodMainKeys = ['prod_cate_id', 'prod_name', 'create_time', 'bus_id'];
foreach ($subTicket as $subVal) {
$prodMainVal = [];
$prodMainVal[] = $pro_cate_id;
$prodMainVal[] = $subVal['prod_name'];
$prodMainVal[] = date('Y-m-d H:i:s');
$prodMainVal[] = $subVal['prod_id'];
$prodMainValues[] = $prodMainVal;
}
$count = Yii::$app->db->createCommand()->batchInsert(ProdMain::tableName(), $prodMainKeys, $prodMainValues)->execute();
if ($count == 0) {
$errorIds[] = $key . '[2]';//错误ID数组
$transaction->rollBack();
continue;
}
$success[] = $key;//添加成功记录
$transaction->commit();
} catch (Exception $e) {
print_r($e);
$errorIds[] = $key . '[3]';//错误ID数组
$transaction->rollBack();
continue;
}
}
return Util::returnArrSu('', ['success' => implode(',', $success), 'fail' => implode(',', $errorIds)]);
}
/**
* Des:更新巴士自由行产品
* Name: updateFreeWalk
* @param $csProdArr
* @param $localProdSign
* @author 倪宗锋
*/
public function updateFreeWalk($csProdArr, $localProdSign)
{
$errorIds = [];
$success = [];
$prodCategory = new ProdCategory();
$proImg = new ProdImg();
foreach ($csProdArr as $key => $val) {
if (empty($localProdSign[$key])) {//更新时,新数据不做处理故不存在不处理
continue;
}
$transaction = Yii::$app->db->beginTransaction();
try {
//更新产品品类数据
$prod_category = clone $prodCategory;
$value = [
'category_id' => '4',
'sign' => $key,
'pro_cate_name' => $val['name'],
'prod_des' => $val['prod_des'],
'feature' => $val['feature'],
'trip_desc' => $val['trip_desc'],
'memo' => $val['price_explain'] . '
' . $val['memo'],
'start_area' => $val['start_area'],
'address' => $val['end_area'],
'create_time' => date('Y-m-d H:i:s'),
'show_img' => $val['top_image_url'],
'commission' => 5,
];
$count = $prod_category::updateAll($value, ['and', ['=', 'pro_cate_id', $localProdSign[$key]['pro_cate_id']]]);
if ($count === false) {
$errorIds[] = $key . '[1]';//错误ID数组
$transaction->rollBack();
continue;
}
$list_img_url = empty($val['list_img_url']) ? [] : $val['list_img_url'];//产品图片列表
//删除图片
$proImg::deleteAll(['=', 'pro_cate_id', $localProdSign[$key]['pro_cate_id']]);
//添加产品图片 插入失败不终止产品的同步
if (count($list_img_url) > 0) {
$prodImgValues = [];
$prodImgKeys = ['pro_cate_id', 'img_url', 'redirect_url', 'memo', 'img_type', 'create_time'];
foreach ($list_img_url as $subVal) {
$prodImgVal = [];
$prodImgVal[] = $localProdSign[$key]['pro_cate_id'];//pro_cate_id
$prodImgVal[] = $subVal;//img_url
$prodImgVal[] = '';//redirect_url
$prodImgVal[] = '';//memo
$prodImgVal[] = 1;//产品轮播图 img_type
$prodImgVal[] = date('Y-m-d H:i:s');//create_time
$prodImgValues[] = $prodImgVal;
}
Yii::$app->db->createCommand()->batchInsert('prod_img', $prodImgKeys, $prodImgValues)->execute();
}
$success[] = $key;//添加成功记录
$transaction->commit();
} catch (Exception $e) {
print_r($e);
$errorIds[] = $key . '[3]';//错误ID数组
$transaction->rollBack();
continue;
}
}
}
/**
* Des:删除巴士自由行产品数据
* Name: deleteFreeWalk
* @param $csProdArr
* @param $localProdSign
* @return array
* @author 倪宗锋
*/
public
function deleteFreeWalk($csProdArr, $localProdSign)
{
$return = [
'success' => '',
'fail' => ''
];
if (count($localProdSign) == 0) {
return Util::returnArrSu('', $return);
}
$delKey = [];
foreach ($localProdSign as $val) {
if (empty($csProdArr[$val]) == false) {//本地有的数据而cs也有 则不做处理
continue;
}
/**删除本地上架而cs已下架的产品*/
$delKey[] = $val;
}
if (count($delKey) == 0) {
return Util::returnArrSu('', $return);
}
$ProdCategory = new ProdCategory();
$value = ['delete_flag' => 1];
$where = [
'and',
['in', 'sign', $delKey],
['=', 'delete_flag', 0]
];
$count = $ProdCategory::updateAll($value, $where);
if ($count == 0) {
return Util::returnArrEr('删除数据失败!');
}
$return['success'] = implode(',', $delKey);
return Util::returnArrSu('', $return);
}
}