|
...
|
...
|
@@ -43,7 +43,6 @@ class LyhImportTest extends Command |
|
|
|
protected $description = '导入数据';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :统一更新路由
|
|
|
|
* @name :handle
|
|
...
|
...
|
@@ -51,10 +50,12 @@ class LyhImportTest extends Command |
|
|
|
* @method :post
|
|
|
|
* @time :2023/11/20 15:13
|
|
|
|
*/
|
|
|
|
public function handle(){
|
|
|
|
ProjectServer::useProject(3654);
|
|
|
|
echo date('Y-m-d H:i:s') . 'start' . PHP_EOL;
|
|
|
|
$this->importProductCategory('https://ecdn6-nc.globalso.com/upload/p/3654/file/2025-06/products-1.csv',3654);
|
|
|
|
public function handle()
|
|
|
|
{
|
|
|
|
ProjectServer::useProject(3531);
|
|
|
|
echo date('Y-m-d H:i:s') . 'start->3531' . PHP_EOL;
|
|
|
|
// $this->importProductCategory('https://ecdn6-nc.globalso.com/upload/p/3654/file/2025-06/products-1.csv',3654);
|
|
|
|
$this->import3531CustomModule(3531);
|
|
|
|
DB::disconnect('custom_mysql');
|
|
|
|
echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
|
|
|
|
}
|
|
...
|
...
|
@@ -66,7 +67,8 @@ class LyhImportTest extends Command |
|
|
|
* @method :post
|
|
|
|
* @time :2025/5/24 11:32
|
|
|
|
*/
|
|
|
|
public function import3951Product($url,$project_id){
|
|
|
|
public function import3951Product($url, $project_id)
|
|
|
|
{
|
|
|
|
$line_of_text = [];
|
|
|
|
$opts = [
|
|
|
|
'http' => [
|
|
...
|
...
|
@@ -84,18 +86,18 @@ class LyhImportTest extends Command |
|
|
|
}
|
|
|
|
fclose($file_handle);
|
|
|
|
$saveData = [];
|
|
|
|
foreach ($line_of_text as $k => $val){
|
|
|
|
if($k < 1){
|
|
|
|
foreach ($line_of_text as $k => $val) {
|
|
|
|
if ($k < 1) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
if(empty($val[0])){
|
|
|
|
echo '跳过的名称:'.$val[0];
|
|
|
|
if (empty($val[0])) {
|
|
|
|
echo '跳过的名称:' . $val[0];
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
$saveData[] = [
|
|
|
|
'title'=>$val[0],
|
|
|
|
'thumb' => json_encode(['alt'=>'主图','url'=>'/upload/p/3951/image/',$val[2]],true),
|
|
|
|
'gallery' => json_encode([['alt'=>'主图','url'=>'/upload/p/3951/image/',$val[2]]],true)
|
|
|
|
'title' => $val[0],
|
|
|
|
'thumb' => json_encode(['alt' => '主图', 'url' => '/upload/p/3951/image/', $val[2]], true),
|
|
|
|
'gallery' => json_encode([['alt' => '主图', 'url' => '/upload/p/3951/image/', $val[2]]], true)
|
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|
|
...
|
...
|
@@ -107,7 +109,8 @@ class LyhImportTest extends Command |
|
|
|
* @method :post
|
|
|
|
* @time :2025/3/13 9:58
|
|
|
|
*/
|
|
|
|
public function importProductCategory($url,$project_id){
|
|
|
|
public function importProductCategory($url, $project_id)
|
|
|
|
{
|
|
|
|
$line_of_text = [];
|
|
|
|
$opts = [
|
|
|
|
'http' => [
|
|
...
|
...
|
@@ -125,50 +128,50 @@ class LyhImportTest extends Command |
|
|
|
}
|
|
|
|
fclose($file_handle);
|
|
|
|
$categoryModel = new Category();
|
|
|
|
foreach ($line_of_text as $k => $val){
|
|
|
|
if($k < 1){
|
|
|
|
foreach ($line_of_text as $k => $val) {
|
|
|
|
if ($k < 1) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
if(empty($val[0])){
|
|
|
|
echo '跳过的名称:'.$val[0];
|
|
|
|
if (empty($val[0])) {
|
|
|
|
echo '跳过的名称:' . $val[0];
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
try {
|
|
|
|
$cateArr = explode('/',$val[0]);
|
|
|
|
$cateArr = explode('/', $val[0]);
|
|
|
|
$pid = 0;
|
|
|
|
$two_pid = 0;
|
|
|
|
foreach ($cateArr as $key => $item){
|
|
|
|
if($key == 0){
|
|
|
|
foreach ($cateArr as $key => $item) {
|
|
|
|
if ($key == 0) {
|
|
|
|
//查看一级分类是否存在
|
|
|
|
$info = $categoryModel->read(['title'=>$item,'pid'=>0],['id']);
|
|
|
|
if($info === false){
|
|
|
|
$pid = $categoryModel->addReturnId(['project_id'=>$project_id,'title'=>$item]);
|
|
|
|
$info = $categoryModel->read(['title' => $item, 'pid' => 0], ['id']);
|
|
|
|
if ($info === false) {
|
|
|
|
$pid = $categoryModel->addReturnId(['project_id' => $project_id, 'title' => $item]);
|
|
|
|
//设置路由
|
|
|
|
$route = RouteMap::setRoute($item,RouteMap::SOURCE_PRODUCT_CATE,$pid,$project_id);
|
|
|
|
$categoryModel->edit(['route'=>$route],['id'=>$pid]);
|
|
|
|
}else{
|
|
|
|
$route = RouteMap::setRoute($item, RouteMap::SOURCE_PRODUCT_CATE, $pid, $project_id);
|
|
|
|
$categoryModel->edit(['route' => $route], ['id' => $pid]);
|
|
|
|
} else {
|
|
|
|
$pid = $info['id'];
|
|
|
|
}
|
|
|
|
}elseif ($key == 1){
|
|
|
|
} elseif ($key == 1) {
|
|
|
|
//查看当前下面的子级别是否存在
|
|
|
|
$two_info = $categoryModel->read(['title'=>$item,'pid'=>$pid],['id']);
|
|
|
|
if($two_info === false){
|
|
|
|
$two_pid = $categoryModel->addReturnId(['project_id'=>$project_id,'title'=>$item,'pid'=>$pid]);
|
|
|
|
$two_info = $categoryModel->read(['title' => $item, 'pid' => $pid], ['id']);
|
|
|
|
if ($two_info === false) {
|
|
|
|
$two_pid = $categoryModel->addReturnId(['project_id' => $project_id, 'title' => $item, 'pid' => $pid]);
|
|
|
|
//设置路由
|
|
|
|
$route = RouteMap::setRoute($item,RouteMap::SOURCE_PRODUCT_CATE,$two_pid,$project_id);
|
|
|
|
$categoryModel->edit(['route'=>$route],['id'=>$two_pid]);
|
|
|
|
}else{
|
|
|
|
$route = RouteMap::setRoute($item, RouteMap::SOURCE_PRODUCT_CATE, $two_pid, $project_id);
|
|
|
|
$categoryModel->edit(['route' => $route], ['id' => $two_pid]);
|
|
|
|
} else {
|
|
|
|
$two_pid = $two_info['id'];
|
|
|
|
}
|
|
|
|
}else{
|
|
|
|
$id = $categoryModel->addReturnId(['project_id'=>$project_id,'title'=>$item,'pid'=>$two_pid]);
|
|
|
|
$route = RouteMap::setRoute($item,RouteMap::SOURCE_PRODUCT_CATE,$id,$project_id);
|
|
|
|
$categoryModel->edit(['route'=>$route],['id'=>$id]);
|
|
|
|
} else {
|
|
|
|
$id = $categoryModel->addReturnId(['project_id' => $project_id, 'title' => $item, 'pid' => $two_pid]);
|
|
|
|
$route = RouteMap::setRoute($item, RouteMap::SOURCE_PRODUCT_CATE, $id, $project_id);
|
|
|
|
$categoryModel->edit(['route' => $route], ['id' => $id]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
echo date('Y-m-d H:i:s') . '产品分类id:'.PHP_EOL;
|
|
|
|
}catch (\Exception $e){
|
|
|
|
echo date('Y-m-d H:i:s') . '跳过的名称:'. $val[1];
|
|
|
|
echo date('Y-m-d H:i:s') . '产品分类id:' . PHP_EOL;
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
echo date('Y-m-d H:i:s') . '跳过的名称:' . $val[1];
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
...
|
...
|
@@ -182,7 +185,8 @@ class LyhImportTest extends Command |
|
|
|
* @method :post
|
|
|
|
* @time :2025/3/3 15:59
|
|
|
|
*/
|
|
|
|
public function importProduct($url,$project_id){
|
|
|
|
public function importProduct($url, $project_id)
|
|
|
|
{
|
|
|
|
$line_of_text = [];
|
|
|
|
$opts = [
|
|
|
|
'http' => [
|
|
...
|
...
|
@@ -203,163 +207,163 @@ class LyhImportTest extends Command |
|
|
|
$productModel = new Product();
|
|
|
|
$detailModel = new Detail();
|
|
|
|
$extentInfoModel = new ExtendInfo();
|
|
|
|
foreach ($line_of_text as $k => $val){
|
|
|
|
if($k < 1){
|
|
|
|
foreach ($line_of_text as $k => $val) {
|
|
|
|
if ($k < 1) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
$saveData = [];
|
|
|
|
if(!empty($val[11])){
|
|
|
|
if (!empty($val[11])) {
|
|
|
|
$saveData['title'] = $val[11];
|
|
|
|
}else{
|
|
|
|
} else {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
if(!empty($val[1])){
|
|
|
|
$cateInfo = $cateModel->read(['seo_title'=>trim($val[1])]);
|
|
|
|
if($cateInfo !== false){
|
|
|
|
$saveData['category_id'] = ','.$cateInfo['id'].',';
|
|
|
|
if (!empty($val[1])) {
|
|
|
|
$cateInfo = $cateModel->read(['seo_title' => trim($val[1])]);
|
|
|
|
if ($cateInfo !== false) {
|
|
|
|
$saveData['category_id'] = ',' . $cateInfo['id'] . ',';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$saveData['project_id'] = $project_id;
|
|
|
|
$saveData['status'] = 1;
|
|
|
|
$saveData['intro'] = $val[6] ?? '';
|
|
|
|
$seo = ['title'=>$val[11]];
|
|
|
|
$saveData['seo_mate'] = json_encode($seo,JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
|
|
|
|
$thumb = ['alt'=>'主图','url'=>str_replace('/public','/upload/p/3283',$val[12])];
|
|
|
|
$gallery = [['alt'=>'主图','url'=>str_replace('/public','/upload/p/3283',$val[12])]];
|
|
|
|
$saveData['thumb'] = json_encode($thumb,JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
|
|
|
|
$saveData['gallery'] = json_encode($gallery,JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
|
|
|
|
$seo = ['title' => $val[11]];
|
|
|
|
$saveData['seo_mate'] = json_encode($seo, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
|
|
|
|
$thumb = ['alt' => '主图', 'url' => str_replace('/public', '/upload/p/3283', $val[12])];
|
|
|
|
$gallery = [['alt' => '主图', 'url' => str_replace('/public', '/upload/p/3283', $val[12])]];
|
|
|
|
$saveData['thumb'] = json_encode($thumb, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
|
|
|
|
$saveData['gallery'] = json_encode($gallery, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
|
|
|
|
try {
|
|
|
|
$id = $productModel->addReturnId($saveData);
|
|
|
|
}catch (\Exception $e){
|
|
|
|
@file_put_contents(storage_path('logs/lyh_error.log'), var_export('未导入成功--标题:'.$val[0], true) . PHP_EOL, FILE_APPEND);
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
@file_put_contents(storage_path('logs/lyh_error.log'), var_export('未导入成功--标题:' . $val[0], true) . PHP_EOL, FILE_APPEND);
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
//设置关联关系
|
|
|
|
if($cateInfo !== false){
|
|
|
|
CategoryRelated::saveRelated($id,[$cateInfo['id']]);
|
|
|
|
if ($cateInfo !== false) {
|
|
|
|
CategoryRelated::saveRelated($id, [$cateInfo['id']]);
|
|
|
|
}
|
|
|
|
//设置路由
|
|
|
|
$route = RouteMap::setRoute($val[11],RouteMap::SOURCE_PRODUCT,$id,$project_id);
|
|
|
|
$productModel->edit(['route'=>$route],['id'=>$id]);
|
|
|
|
echo date('Y-m-d H:i:s') . '新增产品id:'.$id . PHP_EOL;
|
|
|
|
if(!empty($val[2])){
|
|
|
|
$route = RouteMap::setRoute($val[11], RouteMap::SOURCE_PRODUCT, $id, $project_id);
|
|
|
|
$productModel->edit(['route' => $route], ['id' => $id]);
|
|
|
|
echo date('Y-m-d H:i:s') . '新增产品id:' . $id . PHP_EOL;
|
|
|
|
if (!empty($val[2])) {
|
|
|
|
$extent = [
|
|
|
|
'key'=>'pd_extended_field_4',
|
|
|
|
'product_id'=>$id,
|
|
|
|
'project_id'=>$project_id,
|
|
|
|
'values'=>$val[2],
|
|
|
|
'key' => 'pd_extended_field_4',
|
|
|
|
'product_id' => $id,
|
|
|
|
'project_id' => $project_id,
|
|
|
|
'values' => $val[2],
|
|
|
|
];
|
|
|
|
try {
|
|
|
|
$extentInfoModel->addReturnId($extent);
|
|
|
|
}catch (\Exception $e){
|
|
|
|
echo '错误:'.$val[2];
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
echo '错误:' . $val[2];
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
if(!empty($val[3])){
|
|
|
|
if (!empty($val[3])) {
|
|
|
|
$extent = [
|
|
|
|
'key'=>'pd_extended_field_1',
|
|
|
|
'product_id'=>$id,
|
|
|
|
'project_id'=>$project_id,
|
|
|
|
'values'=>$val[3],
|
|
|
|
'key' => 'pd_extended_field_1',
|
|
|
|
'product_id' => $id,
|
|
|
|
'project_id' => $project_id,
|
|
|
|
'values' => $val[3],
|
|
|
|
];
|
|
|
|
try {
|
|
|
|
$extentInfoModel->addReturnId($extent);
|
|
|
|
}catch (\Exception $e){
|
|
|
|
echo '错误:'.$val[3];
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
echo '错误:' . $val[3];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(!empty($val[4])){
|
|
|
|
if (!empty($val[4])) {
|
|
|
|
$extent = [
|
|
|
|
'key'=>'pd_extended_field_2',
|
|
|
|
'product_id'=>$id,
|
|
|
|
'project_id'=>$project_id,
|
|
|
|
'values'=>$val[4],
|
|
|
|
'key' => 'pd_extended_field_2',
|
|
|
|
'product_id' => $id,
|
|
|
|
'project_id' => $project_id,
|
|
|
|
'values' => $val[4],
|
|
|
|
];
|
|
|
|
try {
|
|
|
|
$extentInfoModel->addReturnId($extent);
|
|
|
|
}catch (\Exception $e){
|
|
|
|
echo '错误:'.$val[4];
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
echo '错误:' . $val[4];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(!empty($val[5])){
|
|
|
|
if (!empty($val[5])) {
|
|
|
|
$extent = [
|
|
|
|
'key'=>'pd_extended_field_3',
|
|
|
|
'product_id'=>$id,
|
|
|
|
'project_id'=>$project_id,
|
|
|
|
'values'=>$val[5],
|
|
|
|
'key' => 'pd_extended_field_3',
|
|
|
|
'product_id' => $id,
|
|
|
|
'project_id' => $project_id,
|
|
|
|
'values' => $val[5],
|
|
|
|
];
|
|
|
|
try {
|
|
|
|
$extentInfoModel->addReturnId($extent);
|
|
|
|
}catch (\Exception $e){
|
|
|
|
echo '错误:'.$val[5];
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
echo '错误:' . $val[5];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//产品描述
|
|
|
|
if(!empty($val[7])){
|
|
|
|
if (!empty($val[7])) {
|
|
|
|
//设置产品描述
|
|
|
|
$detail = [
|
|
|
|
'title'=>'SEODescription',
|
|
|
|
'product_id'=>$id,
|
|
|
|
'column_id'=>1,
|
|
|
|
'text_type'=>1,
|
|
|
|
'content'=>json_encode(['content'=>$val[7]],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)
|
|
|
|
'title' => 'SEODescription',
|
|
|
|
'product_id' => $id,
|
|
|
|
'column_id' => 1,
|
|
|
|
'text_type' => 1,
|
|
|
|
'content' => json_encode(['content' => $val[7]], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)
|
|
|
|
];
|
|
|
|
$detailModel->addReturnId($detail);
|
|
|
|
}
|
|
|
|
//产品描述
|
|
|
|
if(!empty($val[8])){
|
|
|
|
if (!empty($val[8])) {
|
|
|
|
//设置产品描述
|
|
|
|
$detail = [
|
|
|
|
'title'=>'SEOSpecification',
|
|
|
|
'product_id'=>$id,
|
|
|
|
'column_id'=>1,
|
|
|
|
'text_type'=>1,
|
|
|
|
'content'=>json_encode(['content'=>$val[8]],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)
|
|
|
|
'title' => 'SEOSpecification',
|
|
|
|
'product_id' => $id,
|
|
|
|
'column_id' => 1,
|
|
|
|
'text_type' => 1,
|
|
|
|
'content' => json_encode(['content' => $val[8]], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)
|
|
|
|
];
|
|
|
|
$detailModel->addReturnId($detail);
|
|
|
|
}
|
|
|
|
if(!empty($val[9])){
|
|
|
|
if (!empty($val[9])) {
|
|
|
|
try {
|
|
|
|
$faqsDetail = json_decode($val[9],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
|
|
|
|
if(!empty($faqsDetail) && is_array($faqsDetail)){
|
|
|
|
$faqsDetail = json_decode($val[9], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
|
|
|
|
if (!empty($faqsDetail) && is_array($faqsDetail)) {
|
|
|
|
$faqContent = '<div>';
|
|
|
|
foreach ($faqsDetail as $faq_Val){
|
|
|
|
$faqContent .= "<span>question:".$faq_Val['question'] . "</span><br /><span>" . "answer:".$faq_Val['answer']. "</span><br />";
|
|
|
|
foreach ($faqsDetail as $faq_Val) {
|
|
|
|
$faqContent .= "<span>question:" . $faq_Val['question'] . "</span><br /><span>" . "answer:" . $faq_Val['answer'] . "</span><br />";
|
|
|
|
}
|
|
|
|
$faqContent .= '</div>';
|
|
|
|
$detailFaqInfo = [
|
|
|
|
'title'=>'SEOQandA',
|
|
|
|
'product_id'=>$id,
|
|
|
|
'column_id'=>1,
|
|
|
|
'text_type'=>1,
|
|
|
|
'content'=>json_encode(['content'=>$faqContent],JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)
|
|
|
|
'title' => 'SEOQandA',
|
|
|
|
'product_id' => $id,
|
|
|
|
'column_id' => 1,
|
|
|
|
'text_type' => 1,
|
|
|
|
'content' => json_encode(['content' => $faqContent], JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE)
|
|
|
|
];
|
|
|
|
$detailModel->addReturnId($detailFaqInfo);
|
|
|
|
}
|
|
|
|
}catch(\Exception $e){
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
echo 'fqs';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(!empty($val[10])){
|
|
|
|
if (!empty($val[10])) {
|
|
|
|
try {
|
|
|
|
$faqsDetail = json_decode($val[10],true);
|
|
|
|
if(!empty($faqsDetail) && is_array($faqsDetail)){
|
|
|
|
$faqsDetail = json_decode($val[10], true);
|
|
|
|
if (!empty($faqsDetail) && is_array($faqsDetail)) {
|
|
|
|
$faqContent = '<div>';
|
|
|
|
foreach ($faqsDetail as $faq_Val){
|
|
|
|
$faqContent .= "<span>question:".$faq_Val['question'] . "</span><br /><span>" . "answer:".$faq_Val['answer']. "</span><br />";
|
|
|
|
foreach ($faqsDetail as $faq_Val) {
|
|
|
|
$faqContent .= "<span>question:" . $faq_Val['question'] . "</span><br /><span>" . "answer:" . $faq_Val['answer'] . "</span><br />";
|
|
|
|
}
|
|
|
|
$faqContent .= '</div>';
|
|
|
|
$detailFaqInfo = [
|
|
|
|
'title'=>'SEOQandA_Product',
|
|
|
|
'product_id'=>$id,
|
|
|
|
'column_id'=>1,
|
|
|
|
'text_type'=>1,
|
|
|
|
'content'=>json_encode(['content'=>$faqContent])
|
|
|
|
'title' => 'SEOQandA_Product',
|
|
|
|
'product_id' => $id,
|
|
|
|
'column_id' => 1,
|
|
|
|
'text_type' => 1,
|
|
|
|
'content' => json_encode(['content' => $faqContent])
|
|
|
|
];
|
|
|
|
$detailModel->addReturnId($detailFaqInfo);
|
|
|
|
}
|
|
|
|
}catch(\Exception $e){
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
...
|
...
|
@@ -367,217 +371,24 @@ class LyhImportTest extends Command |
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function handleCatePid(){
|
|
|
|
public function handleCatePid()
|
|
|
|
{
|
|
|
|
$cateModel = new Category();
|
|
|
|
$list = $cateModel->list([],'id',['*'],'asc');
|
|
|
|
foreach ($list as $k => $v){
|
|
|
|
if($v['seo_des'] == 0){
|
|
|
|
$list = $cateModel->list([], 'id', ['*'], 'asc');
|
|
|
|
foreach ($list as $k => $v) {
|
|
|
|
if ($v['seo_des'] == 0) {
|
|
|
|
$pid = 0;
|
|
|
|
}else{
|
|
|
|
$info = $cateModel->read(['seo_title'=>$v['seo_des']],['id']);
|
|
|
|
if($info !== false){
|
|
|
|
} else {
|
|
|
|
$info = $cateModel->read(['seo_title' => $v['seo_des']], ['id']);
|
|
|
|
if ($info !== false) {
|
|
|
|
$pid = $info['id'];
|
|
|
|
}else{
|
|
|
|
} else {
|
|
|
|
$pid = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//更新pid
|
|
|
|
$cateModel->edit(['pid'=>$pid],['id'=>$v['id']]);
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :导入扩展模块数据
|
|
|
|
* @name :importCustomModule
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2025/2/24 14:54
|
|
|
|
*/
|
|
|
|
public function importCustomModule($url,$project_id){
|
|
|
|
$line_of_text = [];
|
|
|
|
$opts = [
|
|
|
|
'http' => [
|
|
|
|
'method' => 'GET',
|
|
|
|
'header' => 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246'
|
|
|
|
],
|
|
|
|
'ssl' => [
|
|
|
|
'verify_peer' => false,
|
|
|
|
'verify_peer_name' => false
|
|
|
|
]
|
|
|
|
];
|
|
|
|
$file_handle = fopen($url, 'r', null, stream_context_create($opts));
|
|
|
|
while (!feof($file_handle)) {
|
|
|
|
$line_of_text[] = fgetcsv($file_handle, 0, ',');
|
|
|
|
}
|
|
|
|
fclose($file_handle);
|
|
|
|
$customContentModel = new CustomModuleContent();
|
|
|
|
$customCategoryModel = new CustomModuleCategory();;
|
|
|
|
$customExtendContentTModel = new CustomModuleExtentContent();
|
|
|
|
foreach ($line_of_text as $k => $item){
|
|
|
|
// try {
|
|
|
|
//添加内容
|
|
|
|
$contentId = $customContentModel->addReturnId(['name'=>$item[0],'module_id'=>3,'remark'=>$item[1],'project_id'=>$project_id]);
|
|
|
|
echo date('Y-m-d H:i:s') . '当前扩展数据id:'. $contentId . PHP_EOL;
|
|
|
|
//注册路由
|
|
|
|
$route = RouteMap::setRoute($item[0], RouteMap::SOURCE_MODULE,
|
|
|
|
$contentId, $project_id);
|
|
|
|
$customContentModel->edit(['route'=>$route],['id'=>$contentId]);
|
|
|
|
if(!empty($item[3])){
|
|
|
|
$categoryId = ',';
|
|
|
|
$cateArr = explode('/',$item[3]);
|
|
|
|
foreach ($cateArr as $cateV){
|
|
|
|
$cateInfo = $customCategoryModel->read(['name'=>$cateV,'module_id'=>3,'project_id'=>$project_id]);
|
|
|
|
if($cateInfo !== false){
|
|
|
|
$categoryId .= $cateInfo['id'].',';
|
|
|
|
}else{
|
|
|
|
$cateVId = $customCategoryModel->addReturnId(['name'=>$cateV,'module_id'=>3,'project_id'=>$project_id]);
|
|
|
|
$cateRoute = RouteMap::setRoute($cateV, RouteMap::SOURCE_MODULE_CATE,
|
|
|
|
$cateVId, $project_id);
|
|
|
|
$customCategoryModel->edit(['route'=>$cateRoute],['id'=>$cateVId]);
|
|
|
|
$categoryId .= $cateVId.',';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$customContentModel->edit(['category_id'=>$categoryId],['id'=>$contentId]);
|
|
|
|
}
|
|
|
|
$saveData = [
|
|
|
|
['key'=>'pd_extended_field_1', 'type'=>1, 'values'=>$item[2], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>3, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
// ['key'=>'pd_extended_field_2', 'type'=>1, 'values'=>$item[4], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
// ['key'=>'pd_extended_field_3', 'type'=>1, 'values'=>$item[5], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
// ['key'=>'pd_extended_field_4', 'type'=>1, 'values'=>$item[3], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
// ['key'=>'pd_extended_field_5', 'type'=>1, 'values'=>$item[8], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
// ['key'=>'pd_extended_field_6', 'type'=>1, 'values'=>$item[6], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
// ['key'=>'pd_extended_field_7', 'type'=>1, 'values'=>$item[9], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
// ['key'=>'pd_extended_field_8', 'type'=>1, 'values'=>$item[10], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
// ['key'=>'pd_extended_field_9', 'type'=>1, 'values'=>$item[11], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
// ['key'=>'pd_extended_field_10', 'type'=>1, 'values'=>$item[12], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
// ['key'=>'pd_extended_field_11', 'type'=>1, 'values'=>$item[13], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
// ['key'=>'pd_extended_field_12', 'type'=>1, 'values'=>$item[14] ?? '', 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
// ['key'=>'pd_extended_field_13', 'type'=>1, 'values'=>$item[7], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
];
|
|
|
|
$customExtendContentTModel->insert($saveData);
|
|
|
|
// }catch (\Exception $e){
|
|
|
|
// echo date('Y-m-d H:i:s') . '错误name:'. $item[0] . PHP_EOL;
|
|
|
|
// continue;
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :新闻导入到扩展模块
|
|
|
|
* @name :newsImportCustom
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2025/2/28 11:04
|
|
|
|
*/
|
|
|
|
public function newsImportCustom($project_id = 2385){
|
|
|
|
$newsModel = new News();
|
|
|
|
$lists = $newsModel->list(['category_id'=>',3,']);
|
|
|
|
foreach ($lists as $k => $v){
|
|
|
|
$param = [
|
|
|
|
'name'=>$v['name'],
|
|
|
|
'content'=>$v['text'],
|
|
|
|
'remark'=>$v['remark'],
|
|
|
|
'route'=>$v['url'],
|
|
|
|
'image'=>$v['image'],
|
|
|
|
'seo_title'=>$v['seo_title'],
|
|
|
|
'seo_keywords'=>$v['seo_keywords'],
|
|
|
|
'seo_description'=>$v['seo_keywords'],
|
|
|
|
'project_id'=>$project_id,
|
|
|
|
'operator_id'=>$v['operator_id'],
|
|
|
|
'release_at'=>$v['release_at'],
|
|
|
|
'module_id'=>3,
|
|
|
|
'category_id'=>',2,',
|
|
|
|
];
|
|
|
|
//删除当前新闻的路由
|
|
|
|
RouteMap::delRoute(RouteMap::SOURCE_NEWS,$v['id'],$project_id);
|
|
|
|
//删除当前数据
|
|
|
|
$newsModel->del(['id'=>$v['id']]);
|
|
|
|
$customContentModel = new CustomModuleContent();
|
|
|
|
$id = $customContentModel->addReturnId($param);
|
|
|
|
$route = RouteMap::setRoute($param['route'],RouteMap::SOURCE_MODULE,$id,$project_id);
|
|
|
|
$customContentModel->edit(['route'=>$route],['id'=>$id]);
|
|
|
|
$cateModel->edit(['pid' => $pid], ['id' => $v['id']]);
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function import2140CustomModule($url,$project_id){
|
|
|
|
$line_of_text = [];
|
|
|
|
$opts = [
|
|
|
|
'http' => [
|
|
|
|
'method' => 'GET',
|
|
|
|
'header' => 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246'
|
|
|
|
],
|
|
|
|
'ssl' => [
|
|
|
|
'verify_peer' => false,
|
|
|
|
'verify_peer_name' => false
|
|
|
|
]
|
|
|
|
];
|
|
|
|
$file_handle = fopen($url, 'r', null, stream_context_create($opts));
|
|
|
|
while (!feof($file_handle)) {
|
|
|
|
$line_of_text[] = fgetcsv($file_handle, 0, ',');
|
|
|
|
}
|
|
|
|
fclose($file_handle);
|
|
|
|
$customContentModel = new CustomModuleContent();
|
|
|
|
$customCategoryModel = new CustomModuleCategory();
|
|
|
|
$customExtendContentTModel = new CustomModuleExtentContent();
|
|
|
|
foreach ($line_of_text as $k => $item){
|
|
|
|
// try {
|
|
|
|
//添加内容
|
|
|
|
$contentId = $customContentModel->addReturnId(['name'=>$item[0],'image'=>'/upload/p/2140/image/'.$item[2],'module_id'=>7,'project_id'=>$project_id]);
|
|
|
|
echo date('Y-m-d H:i:s') . '当前扩展数据id:'. $contentId . PHP_EOL;
|
|
|
|
//注册路由
|
|
|
|
$route = RouteMap::setRoute($item[0], RouteMap::SOURCE_MODULE,
|
|
|
|
$contentId, $project_id);
|
|
|
|
$customContentModel->edit(['route'=>$route],['id'=>$contentId]);
|
|
|
|
if(!empty($item[1])){
|
|
|
|
$categoryId = ',';
|
|
|
|
$cateArr = explode('/',$item[1]);
|
|
|
|
foreach ($cateArr as $cateV){
|
|
|
|
$cateInfo = $customCategoryModel->read(['name'=>$cateV,'module_id'=>7,'project_id'=>$project_id]);
|
|
|
|
if($cateInfo !== false){
|
|
|
|
$categoryId .= $cateInfo['id'].',';
|
|
|
|
}else{
|
|
|
|
$cateVId = $customCategoryModel->addReturnId(['name'=>$cateV,'module_id'=>7,'project_id'=>$project_id]);
|
|
|
|
$cateRoute = RouteMap::setRoute($cateV, RouteMap::SOURCE_MODULE_CATE,
|
|
|
|
$cateVId, $project_id);
|
|
|
|
$customCategoryModel->edit(['route'=>$cateRoute],['id'=>$cateVId]);
|
|
|
|
$categoryId .= $cateVId.',';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$customContentModel->edit(['category_id'=>$categoryId],['id'=>$contentId]);
|
|
|
|
}
|
|
|
|
$saveData = [
|
|
|
|
['key'=>'pd_extended_field_1', 'type'=>1, 'values'=>$item[3], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_2', 'type'=>1, 'values'=>$item[4], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_3', 'type'=>1, 'values'=>$item[5], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_4', 'type'=>1, 'values'=>$item[6], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_5', 'type'=>1, 'values'=>$item[7], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_6', 'type'=>1, 'values'=>$item[8]??'', 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_7', 'type'=>1, 'values'=>$item[9], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_8', 'type'=>1, 'values'=>$item[10], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_9', 'type'=>1, 'values'=>$item[11], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_10', 'type'=>1, 'values'=>$item[12], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_11', 'type'=>1, 'values'=>$item[13], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_12', 'type'=>1, 'values'=>$item[14] ?? '', 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_13', 'type'=>1, 'values'=>$item[15], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_14', 'type'=>1, 'values'=>$item[16], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_15', 'type'=>1, 'values'=>$item[17], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_16', 'type'=>1, 'values'=>$item[18], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_17', 'type'=>1, 'values'=>$item[19], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_18', 'type'=>1, 'values'=>$item[20], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_19', 'type'=>1, 'values'=>$item[21], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_20', 'type'=>1, 'values'=>$item[22], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_21', 'type'=>1, 'values'=>$item[23], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_22', 'type'=>1, 'values'=>$item[24], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_23', 'type'=>1, 'values'=>$item[25], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
['key'=>'pd_extended_field_24', 'type'=>1, 'values'=>$item[26], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
|
|
|
|
];
|
|
|
|
$customExtendContentTModel->insert($saveData);
|
|
|
|
// }catch (\Exception $e){
|
|
|
|
// echo date('Y-m-d H:i:s') . '错误name:'. $item[0] . PHP_EOL;
|
|
|
|
// continue;
|
|
|
|
// }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|