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); } }