作者 刘锟

Merge remote-tracking branch 'origin/master' into akun

@@ -177,7 +177,7 @@ class AiBlogAutoPublish extends Command @@ -177,7 +177,7 @@ class AiBlogAutoPublish extends Command
177 if (!AiBlogOpenLog::isOpened($project->id)) { 177 if (!AiBlogOpenLog::isOpened($project->id)) {
178 //创建AI博客项目 178 //创建AI博客项目
179 $deploy_optimize = $project->deploy_optimize; 179 $deploy_optimize = $project->deploy_optimize;
180 - (new ProjectLogic())->setAiBlog($project->id, $project->main_lang_id, 1, $project->company, $deploy_optimize->company_en_name, $deploy_optimize->company_en_description); 180 + (new ProjectLogic())->setAiBlog($project->id, $project->main_lang_id, 1, $project->company, $deploy_optimize->company_en_name, $deploy_optimize->company_en_description,$project->is_related_video ?? 0);
181 181
182 //开启 182 //开启
183 $project->is_ai_blog = 1; 183 $project->is_ai_blog = 1;
@@ -145,8 +145,9 @@ class AiVideoTask extends Command @@ -145,8 +145,9 @@ class AiVideoTask extends Command
145 //拿到返回的路由查看是否重复 145 //拿到返回的路由查看是否重复
146 $route = RouteMap::setRoute($result['data']['url'], RouteMap::SOURCE_AI_VIDEO, $aiVideoInfo['id'], $item['project_id']); 146 $route = RouteMap::setRoute($result['data']['url'], RouteMap::SOURCE_AI_VIDEO, $aiVideoInfo['id'], $item['project_id']);
147 if($route != $result['data']['url']){ 147 if($route != $result['data']['url']){
148 - $aiVideoService->updateDetail(['route'=>$route,'task_id'=>$item['task_id']]); 148 + $aiVideoService->updateDetail(['url'=>$route,'task_id'=>$item['task_id']]);
149 } 149 }
  150 + $description = explode(",",$result['data']['content']);
150 $saveData = [ 151 $saveData = [
151 'title'=>$result['data']['title'], 152 'title'=>$result['data']['title'],
152 'image'=>$result['data']['thumb'], 153 'image'=>$result['data']['thumb'],
@@ -156,7 +157,10 @@ class AiVideoTask extends Command @@ -156,7 +157,10 @@ class AiVideoTask extends Command
156 'keyword'=>json_encode($result['data']['keyword'],true), 157 'keyword'=>json_encode($result['data']['keyword'],true),
157 'content'=>$result['data']['content'], 158 'content'=>$result['data']['content'],
158 'text'=>$result['data']['section'], 159 'text'=>$result['data']['section'],
159 - 'status'=>$aiVideoTaskModel::STATUS_FINISH 160 + 'status'=>$aiVideoTaskModel::STATUS_FINISH,
  161 + 'seo_title'=>$result['data']['title'],
  162 + 'seo_keyword'=>implode(',',$result['data']['keyword']),
  163 + 'seo_description'=>$description[0] ?? '',
160 ]; 164 ];
161 $aiVideoModel->edit($saveData,['task_id'=>$item['task_id']]); 165 $aiVideoModel->edit($saveData,['task_id'=>$item['task_id']]);
162 //需要更新的路由 166 //需要更新的路由
@@ -61,15 +61,16 @@ class AfterDayCount extends Command @@ -61,15 +61,16 @@ class AfterDayCount extends Command
61 $this->managerHrModel = new ManageHr(); 61 $this->managerHrModel = new ManageHr();
62 $projectModel = new Project(); 62 $projectModel = new Project();
63 $rankDataLogModel = new RankDataLog(); 63 $rankDataLogModel = new RankDataLog();
64 - $todayMidnight = date('Y-m-d', strtotime('today')); 64 + $date = date('Y-m-d');
65 $saveData = []; 65 $saveData = [];
66 - $projectIdArr = $rankDataLogModel->selectField(['is_compliance'=>1,'lang'=>'','date'=>date('Y-m-d', strtotime('-3 months'))],'project_id');//3个月前达标的项目id 66 +// $projectIdArr = $rankDataLogModel->selectField(['is_compliance'=>1,'lang'=>'','date'=>date('Y-m-d', strtotime('-3 months'))],'project_id');//3个月前达标的项目id
67 foreach ($this->after_manager as $key => $valM){ 67 foreach ($this->after_manager as $key => $valM){
68 $idArr = $this->managerHrModel->selectField(['name'=>['in',$valM]],'id'); 68 $idArr = $this->managerHrModel->selectField(['name'=>['in',$valM]],'id');
  69 + echo '对应优化师id:'.json_encode($idArr).PHP_EOL;
69 $project_count = $projectModel->where('gl_project.extend_type',0) 70 $project_count = $projectModel->where('gl_project.extend_type',0)
70 ->where('gl_project.delete_status',0) 71 ->where('gl_project.delete_status',0)
71 ->where('gl_project.old_project_id',0) 72 ->where('gl_project.old_project_id',0)
72 - ->where('gl_project_deploy_optimize.start_date','<=',$todayMidnight) 73 + ->where('gl_project_deploy_optimize.start_date','<=',$date)
73 ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) 74 ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)
74 ->whereIn('gl_project.type',[2,4,6]) 75 ->whereIn('gl_project.type',[2,4,6])
75 ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') 76 ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')
@@ -79,7 +80,7 @@ class AfterDayCount extends Command @@ -79,7 +80,7 @@ class AfterDayCount extends Command
79 $qualified_count = $projectModel->where('gl_project.extend_type',0) 80 $qualified_count = $projectModel->where('gl_project.extend_type',0)
80 ->where('gl_project.delete_status',0) 81 ->where('gl_project.delete_status',0)
81 ->where('gl_project.old_project_id',0) 82 ->where('gl_project.old_project_id',0)
82 - ->where('gl_project_deploy_optimize.start_date','<=',$todayMidnight) 83 + ->where('gl_project_deploy_optimize.start_date','<=',$date)
83 ->where('gl_project.is_remain_today',1) 84 ->where('gl_project.is_remain_today',1)
84 ->where('gl_project_deploy_build.plan','!=',0) 85 ->where('gl_project_deploy_build.plan','!=',0)
85 ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) 86 ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)
@@ -91,6 +92,7 @@ class AfterDayCount extends Command @@ -91,6 +92,7 @@ class AfterDayCount extends Command
91 ->count(); 92 ->count();
92 $rate = number_format($qualified_count / $project_count, 2); 93 $rate = number_format($qualified_count / $project_count, 2);
93 $threeMonthsAgo = date('Y-m', strtotime('-3 months')); 94 $threeMonthsAgo = date('Y-m', strtotime('-3 months'));
  95 + echo '3个月前的时间:'.$threeMonthsAgo.PHP_EOL;
94 $three_project_count = $projectModel->where('gl_project.extend_type',0) 96 $three_project_count = $projectModel->where('gl_project.extend_type',0)
95 ->where('gl_project.delete_status',0) 97 ->where('gl_project.delete_status',0)
96 ->where('gl_project.old_project_id',0) 98 ->where('gl_project.old_project_id',0)
@@ -103,9 +105,9 @@ class AfterDayCount extends Command @@ -103,9 +105,9 @@ class AfterDayCount extends Command
103 ->whereRaw("FIND_IN_SET('7', gl_project_deploy_optimize.special) = 0 AND FIND_IN_SET('8', gl_project_deploy_optimize.special) = 0") 105 ->whereRaw("FIND_IN_SET('7', gl_project_deploy_optimize.special) = 0 AND FIND_IN_SET('8', gl_project_deploy_optimize.special) = 0")
104 ->count(); 106 ->count();
105 $three_qualified_count = $projectModel->where('gl_project.extend_type',0) 107 $three_qualified_count = $projectModel->where('gl_project.extend_type',0)
106 - ->whereIn('gl_project.id',$projectIdArr)  
107 ->where('gl_project.delete_status',0) 108 ->where('gl_project.delete_status',0)
108 ->where('gl_project.old_project_id',0) 109 ->where('gl_project.old_project_id',0)
  110 + ->where('gl_project.is_remain_today',1)
109 ->where('gl_project_deploy_optimize.start_date','>=',$threeMonthsAgo.'-01') 111 ->where('gl_project_deploy_optimize.start_date','>=',$threeMonthsAgo.'-01')
110 ->where('gl_project_deploy_optimize.start_date','<=',$threeMonthsAgo.'-31') 112 ->where('gl_project_deploy_optimize.start_date','<=',$threeMonthsAgo.'-31')
111 ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) 113 ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)
@@ -123,7 +125,8 @@ class AfterDayCount extends Command @@ -123,7 +125,8 @@ class AfterDayCount extends Command
123 } 125 }
124 $data = $projectModel->where('gl_project.extend_type',0) 126 $data = $projectModel->where('gl_project.extend_type',0)
125 ->where('gl_project.delete_status',0) 127 ->where('gl_project.delete_status',0)
126 - ->where('gl_project_deploy_optimize.start_date','<=',$todayMidnight) 128 + ->where('gl_project.old_project_id',0)
  129 + ->where('gl_project_deploy_optimize.start_date','<=',$date)
127 ->where('gl_project.is_remain_today',1) 130 ->where('gl_project.is_remain_today',1)
128 ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) 131 ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)
129 ->whereIn('gl_project.type',[2,4,6]) 132 ->whereIn('gl_project.type',[2,4,6])
@@ -132,7 +135,7 @@ class AfterDayCount extends Command @@ -132,7 +135,7 @@ class AfterDayCount extends Command
132 ->whereRaw("FIND_IN_SET('7', gl_project_deploy_optimize.special) = 0 AND FIND_IN_SET('8', gl_project_deploy_optimize.special) = 0") 135 ->whereRaw("FIND_IN_SET('7', gl_project_deploy_optimize.special) = 0 AND FIND_IN_SET('8', gl_project_deploy_optimize.special) = 0")
133 ->select(['gl_project.title','gl_project.finish_remain_day','gl_project_deploy_optimize.start_date'])->get()->toArray(); 136 ->select(['gl_project.title','gl_project.finish_remain_day','gl_project_deploy_optimize.start_date'])->get()->toArray();
134 $saveData[] = [ 137 $saveData[] = [
135 - 'date'=>date('Y-m-d', strtotime('yesterday')), 138 + 'date'=>date('Y-m-d'),
136 'type'=> $key, 139 'type'=> $key,
137 'project_count'=>$project_count, 140 'project_count'=>$project_count,
138 'qualified_count'=>$qualified_count, 141 'qualified_count'=>$qualified_count,
@@ -52,9 +52,9 @@ class LyhImportTest extends Command @@ -52,9 +52,9 @@ class LyhImportTest extends Command
52 * @time :2023/11/20 15:13 52 * @time :2023/11/20 15:13
53 */ 53 */
54 public function handle(){ 54 public function handle(){
55 - ProjectServer::useProject(2140); 55 + ProjectServer::useProject(3494);
56 echo date('Y-m-d H:i:s') . 'start' . PHP_EOL; 56 echo date('Y-m-d H:i:s') . 'start' . PHP_EOL;
57 - $this->import2140CustomModule('https://ecdn6.globalso.com/upload/p/2140/file/2025-05/all-202557.csv',2140); 57 + $this->importCustomModule('https://ecdn6.globalso.com/upload/p/3494/file/2025-05/faq-1.csv',3494);
58 DB::disconnect('custom_mysql'); 58 DB::disconnect('custom_mysql');
59 echo date('Y-m-d H:i:s') . 'end' . PHP_EOL; 59 echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
60 } 60 }
@@ -356,21 +356,21 @@ class LyhImportTest extends Command @@ -356,21 +356,21 @@ class LyhImportTest extends Command
356 foreach ($line_of_text as $k => $item){ 356 foreach ($line_of_text as $k => $item){
357 // try { 357 // try {
358 //添加内容 358 //添加内容
359 - $contentId = $customContentModel->addReturnId(['name'=>$item[0],'module_id'=>2,'project_id'=>$project_id]); 359 + $contentId = $customContentModel->addReturnId(['name'=>$item[0],'module_id'=>3,'remark'=>$item[1],'project_id'=>$project_id]);
360 echo date('Y-m-d H:i:s') . '当前扩展数据id:'. $contentId . PHP_EOL; 360 echo date('Y-m-d H:i:s') . '当前扩展数据id:'. $contentId . PHP_EOL;
361 //注册路由 361 //注册路由
362 $route = RouteMap::setRoute($item[0], RouteMap::SOURCE_MODULE, 362 $route = RouteMap::setRoute($item[0], RouteMap::SOURCE_MODULE,
363 $contentId, $project_id); 363 $contentId, $project_id);
364 $customContentModel->edit(['route'=>$route],['id'=>$contentId]); 364 $customContentModel->edit(['route'=>$route],['id'=>$contentId]);
365 - if(!empty($item[1])){ 365 + if(!empty($item[3])){
366 $categoryId = ','; 366 $categoryId = ',';
367 - $cateArr = explode('/',$item[1]); 367 + $cateArr = explode('/',$item[3]);
368 foreach ($cateArr as $cateV){ 368 foreach ($cateArr as $cateV){
369 - $cateInfo = $customCategoryModel->read(['name'=>$cateV,'module_id'=>2,'project_id'=>$project_id]); 369 + $cateInfo = $customCategoryModel->read(['name'=>$cateV,'module_id'=>3,'project_id'=>$project_id]);
370 if($cateInfo !== false){ 370 if($cateInfo !== false){
371 $categoryId .= $cateInfo['id'].','; 371 $categoryId .= $cateInfo['id'].',';
372 }else{ 372 }else{
373 - $cateVId = $customCategoryModel->addReturnId(['name'=>$cateV,'module_id'=>2,'project_id'=>$project_id]); 373 + $cateVId = $customCategoryModel->addReturnId(['name'=>$cateV,'module_id'=>3,'project_id'=>$project_id]);
374 $cateRoute = RouteMap::setRoute($cateV, RouteMap::SOURCE_MODULE_CATE, 374 $cateRoute = RouteMap::setRoute($cateV, RouteMap::SOURCE_MODULE_CATE,
375 $cateVId, $project_id); 375 $cateVId, $project_id);
376 $customCategoryModel->edit(['route'=>$cateRoute],['id'=>$cateVId]); 376 $customCategoryModel->edit(['route'=>$cateRoute],['id'=>$cateVId]);
@@ -380,19 +380,19 @@ class LyhImportTest extends Command @@ -380,19 +380,19 @@ class LyhImportTest extends Command
380 $customContentModel->edit(['category_id'=>$categoryId],['id'=>$contentId]); 380 $customContentModel->edit(['category_id'=>$categoryId],['id'=>$contentId]);
381 } 381 }
382 $saveData = [ 382 $saveData = [
383 - ['key'=>'pd_extended_field_1', 'type'=>1, 'values'=>$item[2], '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')],  
384 - ['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')],  
385 - ['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')],  
386 - ['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')],  
387 - ['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')],  
388 - ['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')],  
389 - ['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')],  
390 - ['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')],  
391 - ['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')],  
392 - ['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')],  
393 - ['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')],  
394 - ['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')],  
395 - ['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')], 383 + ['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')],
  384 +// ['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')],
  385 +// ['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')],
  386 +// ['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')],
  387 +// ['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')],
  388 +// ['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')],
  389 +// ['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')],
  390 +// ['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')],
  391 +// ['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')],
  392 +// ['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')],
  393 +// ['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')],
  394 +// ['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')],
  395 +// ['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')],
396 ]; 396 ];
397 $customExtendContentTModel->insert($saveData); 397 $customExtendContentTModel->insert($saveData);
398 // }catch (\Exception $e){ 398 // }catch (\Exception $e){
@@ -471,7 +471,7 @@ class LyhImportTest extends Command @@ -471,7 +471,7 @@ class LyhImportTest extends Command
471 $customContentModel->edit(['route'=>$route],['id'=>$contentId]); 471 $customContentModel->edit(['route'=>$route],['id'=>$contentId]);
472 if(!empty($item[3])){ 472 if(!empty($item[3])){
473 $categoryId = ','; 473 $categoryId = ',';
474 - $cateArr = explode('/',$item[3]); 474 + $cateArr = explode('/',$item[1]);
475 foreach ($cateArr as $cateV){ 475 foreach ($cateArr as $cateV){
476 $cateInfo = $customCategoryModel->read(['name'=>$cateV,'module_id'=>7,'project_id'=>$project_id]); 476 $cateInfo = $customCategoryModel->read(['name'=>$cateV,'module_id'=>7,'project_id'=>$project_id]);
477 if($cateInfo !== false){ 477 if($cateInfo !== false){
@@ -487,19 +487,22 @@ class LyhImportTest extends Command @@ -487,19 +487,22 @@ class LyhImportTest extends Command
487 $customContentModel->edit(['category_id'=>$categoryId],['id'=>$contentId]); 487 $customContentModel->edit(['category_id'=>$categoryId],['id'=>$contentId]);
488 } 488 }
489 $saveData = [ 489 $saveData = [
490 - ['key'=>'pd_extended_field_1', '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')], 490 + ['key'=>'pd_extended_field_10', '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')],
491 ['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')], 491 ['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')],
492 - ['key'=>'pd_extended_field_3', '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')],  
493 - ['key'=>'pd_extended_field_4', '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')],  
494 - ['key'=>'pd_extended_field_5', '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')],  
495 - ['key'=>'pd_extended_field_6', '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')],  
496 - ['key'=>'pd_extended_field_7', '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')],  
497 - ['key'=>'pd_extended_field_8', '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')],  
498 ['key'=>'pd_extended_field_9', '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')], 492 ['key'=>'pd_extended_field_9', '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')],
499 - ['key'=>'pd_extended_field_10', 'type'=>1, 'values'=>$item[1], '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')],  
500 - ['key'=>'pd_extended_field_11', 'type'=>1, 'values'=>$item[0], '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')],  
501 - ['key'=>'pd_extended_field_12', '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')],  
502 - ['key'=>'pd_extended_field_14', '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')], 493 + ['key'=>'pd_extended_field_8', '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')],
  494 + ['key'=>'pd_extended_field_3', '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')],
  495 + ['key'=>'pd_extended_field_16', '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')],
  496 + ['key'=>'pd_extended_field_15', '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')],
  497 + ['key'=>'pd_extended_field_14', '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')],
  498 + ['key'=>'pd_extended_field_6', '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')],
  499 + ['key'=>'pd_extended_field_20', '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')],
  500 + ['key'=>'pd_extended_field_5', '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')],
  501 + ['key'=>'pd_extended_field_7', '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')],
  502 + ['key'=>'pd_extended_field_21', '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')],
  503 + ['key'=>'pd_extended_field_22', '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')],
  504 + ['key'=>'pd_extended_field_24', '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')],
  505 + ['key'=>'pd_extended_field_23', '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')],
503 ]; 506 ];
504 $customExtendContentTModel->insert($saveData); 507 $customExtendContentTModel->insert($saveData);
505 // }catch (\Exception $e){ 508 // }catch (\Exception $e){
@@ -10,11 +10,14 @@ @@ -10,11 +10,14 @@
10 namespace App\Console\Commands\LyhTest; 10 namespace App\Console\Commands\LyhTest;
11 11
12 use App\Console\Commands\Domain\DomainInfo; 12 use App\Console\Commands\Domain\DomainInfo;
  13 +use App\Models\Ai\AiBlogAuthor;
13 use App\Models\Com\NoticeLog; 14 use App\Models\Com\NoticeLog;
14 use App\Models\Project\AiBlogTask; 15 use App\Models\Project\AiBlogTask;
15 use App\Models\Project\DeployBuild; 16 use App\Models\Project\DeployBuild;
16 use App\Models\Project\OnlineCheck; 17 use App\Models\Project\OnlineCheck;
17 use App\Models\Project\Project; 18 use App\Models\Project\Project;
  19 +use App\Models\WebSetting\WebSetting;
  20 +use App\Services\ProjectServer;
18 use Illuminate\Console\Command; 21 use Illuminate\Console\Command;
19 use Illuminate\Support\Facades\Artisan; 22 use Illuminate\Support\Facades\Artisan;
20 use Illuminate\Support\Facades\DB; 23 use Illuminate\Support\Facades\DB;
@@ -36,7 +39,21 @@ class lyhDemo extends Command @@ -36,7 +39,21 @@ class lyhDemo extends Command
36 protected $description = '更新路由'; 39 protected $description = '更新路由';
37 40
38 public function handle(){ 41 public function handle(){
39 - return true; 42 + $projectModel = new Project();
  43 + $lists = $projectModel->list(['delete_status' => 0,'extend_type'=>0,'type'=>['in',[1,2,3,4]]], 'id', ['id']);
  44 + foreach ($lists as $val) {
  45 +// echo date('Y-m-d H:i:s') . '开始--项目的id:'. $val['id'] . PHP_EOL;
  46 + ProjectServer::useProject($val['id']);
  47 + try {
  48 + $settingModel = new WebSetting();
  49 + $settingModel->edit(['']);
  50 + }catch (\Exception $e){
  51 +
  52 + }
  53 +
  54 + DB::disconnect('custom_mysql');
  55 + }
  56 + return true;
40 } 57 }
41 58
42 } 59 }
@@ -94,6 +94,7 @@ class CopyProject extends Command @@ -94,6 +94,7 @@ class CopyProject extends Command
94 $data['title'] = $data['title'].'-copy'; 94 $data['title'] = $data['title'].'-copy';
95 $data['delete_status'] = 1; 95 $data['delete_status'] = 1;
96 $data['is_ai_blog'] = 0; 96 $data['is_ai_blog'] = 0;
  97 + $data['old_project_id'] = $old_project_id;
97 unset($data['id'],$data['exclusive_aicc_day'],$data['aicc'],$data['robots'],$data['is_translate_tag'],$data['is_translate'],$data['is_minor_languages'],$data['uptime']); 98 unset($data['id'],$data['exclusive_aicc_day'],$data['aicc'],$data['robots'],$data['is_translate_tag'],$data['is_translate'],$data['is_minor_languages'],$data['uptime']);
98 $project_id = $projectModel->insertGetId($data); 99 $project_id = $projectModel->insertGetId($data);
99 $hashids = new Hashids($data['from_order_id'], 13, 'abcdefghjkmnpqrstuvwxyz1234567890'); 100 $hashids = new Hashids($data['from_order_id'], 13, 'abcdefghjkmnpqrstuvwxyz1234567890');
@@ -4,6 +4,8 @@ namespace App\Console\Commands\Tdk; @@ -4,6 +4,8 @@ namespace App\Console\Commands\Tdk;
4 4
5 5
6 use App\Helper\Arr; 6 use App\Helper\Arr;
  7 +use App\Models\News\News;
  8 +use App\Models\News\NewsCategory;
7 use App\Models\Product\Keyword; 9 use App\Models\Product\Keyword;
8 use App\Models\Project\KeywordPrefix; 10 use App\Models\Project\KeywordPrefix;
9 use App\Models\Project\Project; 11 use App\Models\Project\Project;
@@ -71,41 +73,41 @@ class RerunSeoTdk extends Command @@ -71,41 +73,41 @@ class RerunSeoTdk extends Command
71 * @author zbj 73 * @author zbj
72 * @date 2025/4/12 74 * @date 2025/4/12
73 */ 75 */
74 - public function judgeAnomalies($project_id){  
75 - dump($project_id);  
76 - $all_prefixes = $this->getAllPrefix(1, $project_id);  
77 - $all_prefixes = array_map('strtolower', $all_prefixes);  
78 -  
79 - //获取当前项目的所有分类  
80 - $list = Keyword::select('title', 'seo_title', 'id')->get()->toArray();  
81 - //新闻 seo_keyword 和 分类名一样的  
82 - $ids = [];  
83 - foreach ($list as $k=>$item){  
84 - $seo_title = $item['seo_title'];  
85 - $id = $item['id'];  
86 - $title = $item['title'];  
87 - if(Str::startsWith(strtolower($seo_title), ['wholesale', 'cheap', 'buy']) && Str::contains(strtolower($seo_title), ['manufacturer', 'manufacturers', 'factory', 'factories', 'exporter', 'exporters', 'company', 'companies', 'supplier', 'suppliers'])){  
88 - $ids[] = $id;  
89 - dump($seo_title);  
90 - continue;  
91 - }  
92 - $topic_words = explode(' ', strtolower($title));  
93 - //关键词最后一个是前缀 且 有前后缀  
94 - if(in_array(Arr::last($topic_words), $all_prefixes) && $title != $seo_title){  
95 - $ids[] = $id;  
96 - dump($seo_title);  
97 - continue;  
98 - }  
99 - }  
100 -  
101 - $count = count($ids);  
102 - if($count){  
103 - echo "项目{$project_id},共{$count}条需要重跑";  
104 - LogUtils::info("RerunSeoTdk: 项目{$project_id},共{$count}条需要重跑");  
105 - Keyword::whereIn('id', $ids)->update(['seo_title' => '']);  
106 - ProjectUpdateTdk::add_task($project_id);  
107 - }  
108 - } 76 +// public function judgeAnomalies($project_id){
  77 +// dump($project_id);
  78 +// $all_prefixes = $this->getAllPrefix(1, $project_id);
  79 +// $all_prefixes = array_map('strtolower', $all_prefixes);
  80 +//
  81 +// //获取当前项目的所有分类
  82 +// $list = Keyword::select('title', 'seo_title', 'id')->get()->toArray();
  83 +// //新闻 seo_keyword 和 分类名一样的
  84 +// $ids = [];
  85 +// foreach ($list as $k=>$item){
  86 +// $seo_title = $item['seo_title'];
  87 +// $id = $item['id'];
  88 +// $title = $item['title'];
  89 +// if(Str::startsWith(strtolower($seo_title), ['wholesale', 'cheap', 'buy']) && Str::contains(strtolower($seo_title), ['manufacturer', 'manufacturers', 'factory', 'factories', 'exporter', 'exporters', 'company', 'companies', 'supplier', 'suppliers'])){
  90 +// $ids[] = $id;
  91 +// dump($seo_title);
  92 +// continue;
  93 +// }
  94 +// $topic_words = explode(' ', strtolower($title));
  95 +// //关键词最后一个是前缀 且 有前后缀
  96 +// if(in_array(Arr::last($topic_words), $all_prefixes) && $title != $seo_title){
  97 +// $ids[] = $id;
  98 +// dump($seo_title);
  99 +// continue;
  100 +// }
  101 +// }
  102 +//
  103 +// $count = count($ids);
  104 +// if($count){
  105 +// echo "项目{$project_id},共{$count}条需要重跑";
  106 +// LogUtils::info("RerunSeoTdk: 项目{$project_id},共{$count}条需要重跑");
  107 +// Keyword::whereIn('id', $ids)->update(['seo_title' => '']);
  108 +// ProjectUpdateTdk::add_task($project_id);
  109 +// }
  110 +// }
109 111
110 // /** 112 // /**
111 // * 判断seo_title后缀重复 113 // * 判断seo_title后缀重复
@@ -139,28 +141,28 @@ class RerunSeoTdk extends Command @@ -139,28 +141,28 @@ class RerunSeoTdk extends Command
139 // } 141 // }
140 // } 142 // }
141 143
142 -// /**  
143 -// * 判断异常  
144 -// * @author zbj  
145 -// * @date 2025/4/12  
146 -// */  
147 -// public function judgeAnomalies($project_id){  
148 -// //获取当前项目的所有分类  
149 -// $categories = NewsCategory::pluck('name', 'id')->toArray();  
150 -// //新闻 seo_keyword 和 分类名一样的  
151 -// $news_ids = [];  
152 -// foreach ($categories as $category){  
153 -// $ids = News::WhereRaw("FIND_IN_SET('{$category}', `seo_keywords`)")->pluck('id')->toArray();  
154 -// $news_ids = array_unique(array_merge($news_ids, $ids));  
155 -// }  
156 -//  
157 -// $count = count($news_ids);  
158 -// if($count){  
159 -// echo "项目{$project_id},共{$count}条需要重跑";  
160 -// News::whereIn('id', $news_ids)->update(['seo_keywords' => '']);  
161 -// ProjectUpdateTdk::add_task($project_id);  
162 -// }  
163 -// } 144 + /**
  145 + * 判断异常
  146 + * @author zbj
  147 + * @date 2025/4/12
  148 + */
  149 + public function judgeAnomalies($project_id){
  150 + //获取当前项目的所有分类
  151 + $categories = NewsCategory::pluck('alias', 'id')->toArray();
  152 + //新闻 seo_keyword 和 分类名一样的
  153 + $news_ids = [];
  154 + foreach ($categories as $category){
  155 + $ids = News::WhereRaw("FIND_IN_SET('{$category}', `seo_keywords`)")->pluck('id')->toArray();
  156 + $news_ids = array_unique(array_merge($news_ids, $ids));
  157 + }
  158 +
  159 + $count = count($news_ids);
  160 + if($count){
  161 + echo "项目{$project_id},共{$count}条需要重跑";
  162 + News::whereIn('id', $news_ids)->update(['seo_keywords' => '']);
  163 + ProjectUpdateTdk::add_task($project_id);
  164 + }
  165 + }
164 166
165 public function getAllPrefix($type, int $project_id = 0){ 167 public function getAllPrefix($type, int $project_id = 0){
166 $cache_key = 'AllPrefix_' . $type . '_' . $project_id; 168 $cache_key = 'AllPrefix_' . $type . '_' . $project_id;
@@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api; @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api;
4 4
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Helper\Translate; 6 use App\Helper\Translate;
  7 +use App\Models\Domain\DomainInfo;
7 use App\Models\Product\Category; 8 use App\Models\Product\Category;
8 use App\Models\Product\CategoryRelated; 9 use App\Models\Product\CategoryRelated;
9 use App\Models\Product\Product; 10 use App\Models\Product\Product;
@@ -271,10 +272,15 @@ class ProductController extends BaseController @@ -271,10 +272,15 @@ class ProductController extends BaseController
271 if(!$project_id){ 272 if(!$project_id){
272 $this->response('项目不存在', Code::SYSTEM_ERROR); 273 $this->response('项目不存在', Code::SYSTEM_ERROR);
273 } 274 }
274 - 275 +
275 ProjectServer::useProject($project_id); 276 ProjectServer::useProject($project_id);
276 277
277 - $product = Product::whereFullText('title', $keyword)->inRandomOrder()->select(['title', 'intro', 'thumb'])->first(); 278 + $product = Product::whereFullText('title', $keyword)->where('status', Product::STATUS_ON)->inRandomOrder()->select(['title', 'intro', 'thumb', 'id'])->first();
  279 +
  280 + if($product){
  281 + ProjectServer::useProject($project_id);
  282 + $product['url'] = (new DomainInfo())->getProjectIdDomain($project_id) . getRouteMap(RouteMap::SOURCE_PRODUCT,$product->id);
  283 + }
278 284
279 $this->response('success', Code::SUCCESS, $product?:[]); 285 $this->response('success', Code::SUCCESS, $product?:[]);
280 } 286 }
@@ -40,6 +40,13 @@ class DeptController extends BaseController @@ -40,6 +40,13 @@ class DeptController extends BaseController
40 $this->response('success',Code::SUCCESS,Arr::twoKeepKeys($data, ['id', 'pid', 'title', 'manager_uids', 'remark'])); 40 $this->response('success',Code::SUCCESS,Arr::twoKeepKeys($data, ['id', 'pid', 'title', 'manager_uids', 'remark']));
41 } 41 }
42 42
  43 + /**
  44 + * @remark :保存
  45 + * @name :save
  46 + * @author :lyh
  47 + * @method :post
  48 + * @time :2025/5/15 15:12
  49 + */
43 public function save(DeptRequest $request, DeptLogic $logic) 50 public function save(DeptRequest $request, DeptLogic $logic)
44 { 51 {
45 $request->validated(); 52 $request->validated();
@@ -13,6 +13,7 @@ use App\Enums\Common\Code; @@ -13,6 +13,7 @@ use App\Enums\Common\Code;
13 use App\Helper\Arr; 13 use App\Helper\Arr;
14 use App\Http\Controllers\Bside\BaseController; 14 use App\Http\Controllers\Bside\BaseController;
15 use App\Models\WebSetting\AggregationSetting; 15 use App\Models\WebSetting\AggregationSetting;
  16 +use App\Models\WebSetting\WebSettingImage;
16 17
17 /** 18 /**
18 * @remark :聚合页 19 * @remark :聚合页
@@ -58,6 +59,19 @@ class AggregationSettingController extends BaseController @@ -58,6 +59,19 @@ class AggregationSettingController extends BaseController
58 public function edit(){ 59 public function edit(){
59 $aggSettingModel = new AggregationSetting(); 60 $aggSettingModel = new AggregationSetting();
60 if(isset($this->param['top_banner']) && !empty($this->param['top_banner'])){ 61 if(isset($this->param['top_banner']) && !empty($this->param['top_banner'])){
  62 + $number = count($this->param['top_banner']);
  63 + //查询ai——blog是否拥有banner图
  64 + $settingImageModel = new WebSettingImage();
  65 + $info = $settingImageModel->read(['type'=>4]);
  66 + if($info === false){
  67 + $settingImageModel->addReturnId(['type'=>4,'project_id'=>$this->user['project_id'],'image'=>reset($this->param['top_banner'])]);
  68 + if($number > 1){
  69 + $this->param['top_banner'] = array_slice($this->param['top_banner'], 1);
  70 + }
  71 + }
  72 + if($number > 3){
  73 + $this->param['top_banner'] = array_slice($this->param['top_banner'], 0, 3);
  74 + }
61 $this->param['top_banner'] = Arr::a2s($this->param['top_banner']); 75 $this->param['top_banner'] = Arr::a2s($this->param['top_banner']);
62 } 76 }
63 if(isset($this->param['foot_banner']) && !empty($this->param['foot_banner'])){ 77 if(isset($this->param['foot_banner']) && !empty($this->param['foot_banner'])){
@@ -23,7 +23,7 @@ class WebSettingImageController extends BaseController @@ -23,7 +23,7 @@ class WebSettingImageController extends BaseController
23 * @time :2023/9/21 15:12 23 * @time :2023/9/21 15:12
24 */ 24 */
25 public function lists(WebSettingImage $webSettingImage){ 25 public function lists(WebSettingImage $webSettingImage){
26 - $list = $webSettingImage->list([],'id',['id','image','type']); 26 + $list = $webSettingImage->list($this->map,'id',['id','image','type']);
27 foreach ($list as $k=>$v){ 27 foreach ($list as $k=>$v){
28 $v['image'] = getImageUrl($v['image'],$this->user['storage_type'],$this->user['project_location']); 28 $v['image'] = getImageUrl($v['image'],$this->user['storage_type'],$this->user['project_location']);
29 $list[$k] = $v; 29 $list[$k] = $v;
@@ -176,7 +176,7 @@ class ProjectLogic extends BaseLogic @@ -176,7 +176,7 @@ class ProjectLogic extends BaseLogic
176 //ai_blog 176 //ai_blog
177 $this->setAiBlog($this->param['id'],$this->param['main_lang_id'],$this->param['is_ai_blog'] ?? 0, 177 $this->setAiBlog($this->param['id'],$this->param['main_lang_id'],$this->param['is_ai_blog'] ?? 0,
178 $this->param['company']??"", $this->param['deploy_optimize']['company_en_name'] ?? '', 178 $this->param['company']??"", $this->param['deploy_optimize']['company_en_name'] ?? '',
179 - $this->param['deploy_optimize']['company_en_description'] ?? '',$this->param['is_ai_video'] ?? 0); 179 + $this->param['deploy_optimize']['company_en_description'] ?? '',$this->param['is_ai_video'] ?? 0,$this->param['is_related_video'] ?? 0);
180 //保存项目信息 180 //保存项目信息
181 $this->saveProject($this->param); 181 $this->saveProject($this->param);
182 //保存建站部署信息 182 //保存建站部署信息
@@ -289,7 +289,7 @@ class ProjectLogic extends BaseLogic @@ -289,7 +289,7 @@ class ProjectLogic extends BaseLogic
289 * @method :post 289 * @method :post
290 * @time :2025/2/13 16:02 290 * @time :2025/2/13 16:02
291 */ 291 */
292 - public function setAiBlog($project_id,$main_lang_id,$is_ai_blog,$company,$company_en_name,$company_en_description,$is_ai_video = 0){ 292 + public function setAiBlog($project_id,$main_lang_id,$is_ai_blog,$company,$company_en_name,$company_en_description,$is_ai_video = 0,$is_related_video = 0){
293 if(empty($main_lang_id) || (empty($is_ai_blog) && empty($is_ai_video))){ 293 if(empty($main_lang_id) || (empty($is_ai_blog) && empty($is_ai_video))){
294 return true; 294 return true;
295 } 295 }
@@ -305,7 +305,7 @@ class ProjectLogic extends BaseLogic @@ -305,7 +305,7 @@ class ProjectLogic extends BaseLogic
305 $aiSettingInfo = $aiSettingModel->read(['project_id'=>$project_id]); 305 $aiSettingInfo = $aiSettingModel->read(['project_id'=>$project_id]);
306 if($aiSettingInfo === false){ 306 if($aiSettingInfo === false){
307 $aiBlogService = new AiBlogService(); 307 $aiBlogService = new AiBlogService();
308 - $result = $aiBlogService->createProject($projectInfo['company']?:$projectInfo['title'],$languageInfo['short'],$company_en_description,$company_en_name); 308 + $result = $aiBlogService->createProject($projectInfo['company']?:$projectInfo['title'],$languageInfo['short'],$company_en_description,$company_en_name,$is_related_video);
309 if(isset($result['status']) && $result['status'] == 200){ 309 if(isset($result['status']) && $result['status'] == 200){
310 //查看当前项目是否已有记录 310 //查看当前项目是否已有记录
311 $resData = [ 311 $resData = [
@@ -323,7 +323,7 @@ class ProjectLogic extends BaseLogic @@ -323,7 +323,7 @@ class ProjectLogic extends BaseLogic
323 $aiBlogService = new AiBlogService(); 323 $aiBlogService = new AiBlogService();
324 $aiBlogService->mch_id = $aiSettingInfo['mch_id']; 324 $aiBlogService->mch_id = $aiSettingInfo['mch_id'];
325 $aiBlogService->key = $aiSettingInfo['key']; 325 $aiBlogService->key = $aiSettingInfo['key'];
326 - $aiBlogService->updatedProject($projectInfo['company']?:$projectInfo['title'],$languageInfo['short'],$company_en_description,$company_en_name); 326 + $aiBlogService->updatedProject($projectInfo['company']?:$projectInfo['title'],$languageInfo['short'],$company_en_description,$company_en_name,$is_related_video);
327 } 327 }
328 } 328 }
329 return true; 329 return true;
@@ -31,7 +31,7 @@ class BTemplateModuleProjectLogic extends BaseLogic @@ -31,7 +31,7 @@ class BTemplateModuleProjectLogic extends BaseLogic
31 */ 31 */
32 public function ModuleList($map,$order = 'created_at',$filed = ['id','name','status','image','html','project_id']){ 32 public function ModuleList($map,$order = 'created_at',$filed = ['id','name','status','image','html','project_id']){
33 $map['deleted_status'] = 0; 33 $map['deleted_status'] = 0;
34 - $list = $this->model::whereRaw("FIND_IN_SET(?, project_id)", [$this->user['project_id']])->get()->toArray(); 34 + $list = $this->model::whereRaw("FIND_IN_SET(?, project_id)", [$this->user['project_id']])->orderBy($order,'desc')->select($filed)->get()->toArray();
35 $templateLabel = new TemplateLabel(); 35 $templateLabel = new TemplateLabel();
36 $label = []; 36 $label = [];
37 foreach ($list as $v){ 37 foreach ($list as $v){
@@ -185,7 +185,7 @@ class CustomTemplateLogic extends BaseLogic @@ -185,7 +185,7 @@ class CustomTemplateLogic extends BaseLogic
185 $this->param['html_style'] = "<style id='globalsojs-styles'></style>"; 185 $this->param['html_style'] = "<style id='globalsojs-styles'></style>";
186 } 186 }
187 } 187 }
188 - if(($this->param['url'] == 'news') || ($this->param['url'] == 'product') || ($this->param['url'] == 'blog')){ 188 + if(($this->param['url'] == 'news') || ($this->param['url'] == 'products') || ($this->param['url'] == 'blog')){
189 $this->fail('不允许修改路由为:'.$this->param['url']); 189 $this->fail('不允许修改路由为:'.$this->param['url']);
190 } 190 }
191 $this->param['project_id'] = $this->user['project_id']; 191 $this->param['project_id'] = $this->user['project_id'];
@@ -197,10 +197,10 @@ class RankDataLogic extends BaseLogic @@ -197,10 +197,10 @@ class RankDataLogic extends BaseLogic
197 $data['current_api_source'] = $api_no == 10690 ? 'Yandex' : 'Google'; 197 $data['current_api_source'] = $api_no == 10690 ? 'Yandex' : 'Google';
198 } 198 }
199 $data['api_no'] = $api_no; 199 $data['api_no'] = $api_no;
200 - $api_no = RankDataBmseo::where('project_id', $project_id)->value('api_no');  
201 - if($api_no){  
202 - $data['bmseo_api_no'] = $api_no;  
203 - } 200 +// $api_no = RankDataBmseo::where('project_id', $project_id)->value('api_no');
  201 +// if($api_no){
  202 +// $data['bmseo_api_no'] = $api_no;
  203 +// }
204 204
205 return $data; 205 return $data;
206 } 206 }
@@ -222,9 +222,12 @@ class RankDataLogic extends BaseLogic @@ -222,9 +222,12 @@ class RankDataLogic extends BaseLogic
222 $api_no = $project['deploy_optimize']['api_no'] ?? 0; 222 $api_no = $project['deploy_optimize']['api_no'] ?? 0;
223 } 223 }
224 224
225 - if(!$api_no || Str::endsWith($api_no, '_bmseo')){  
226 - $api_no = RankDataBmseo::where('project_id', $project_id)->value('api_no');  
227 - } 225 +// if(!$api_no || Str::endsWith($api_no, '_bmseo')){
  226 + $bm_api_no = RankDataBmseo::where('project_id', $project_id)->value('api_no');
  227 + if($bm_api_no){
  228 + $api_no = $bm_api_no;
  229 + }
  230 +// }
228 231
229 $domain = (!empty($project['deploy_optimize']['domain']) ? ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : ''); 232 $domain = (!empty($project['deploy_optimize']['domain']) ? ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : '');
230 $domain_arr = parse_url($domain); 233 $domain_arr = parse_url($domain);
@@ -17,4 +17,13 @@ class WebSettingImage extends Base @@ -17,4 +17,13 @@ class WebSettingImage extends Base
17 17
18 //连接数据库 18 //连接数据库
19 protected $connection = 'custom_mysql'; 19 protected $connection = 'custom_mysql';
  20 +
  21 + public function imageMap(){
  22 + return [
  23 + 1 => '产品',
  24 + 2 => '博客',
  25 + 3 => '新闻',
  26 + 4 => 'ai_blog'
  27 + ];
  28 + }
20 } 29 }
@@ -57,10 +57,10 @@ class AiBlogService @@ -57,10 +57,10 @@ class AiBlogService
57 * @method :post 57 * @method :post
58 * @time :2025/2/13 14:28 58 * @time :2025/2/13 14:28
59 */ 59 */
60 - public function createProject($project_name,$language,$profile,$company){ 60 + public function createProject($project_name,$language,$profile,$company,$is_related_video){
61 $request_url = $this->url.'api/project/create'; 61 $request_url = $this->url.'api/project/create';
62 $param = [ 62 $param = [
63 - 'mch_id'=>$this->mch_id, 'title'=>$project_name, 'language'=>$language, 'profile'=>$profile, 'company'=>$company, 63 + 'mch_id'=>$this->mch_id, 'title'=>$project_name, 'language'=>$language, 'profile'=>$profile, 'company'=>$company,'is_related_video'=>$is_related_video
64 ]; 64 ];
65 $this->sign = $this->generateSign($param,$this->key); 65 $this->sign = $this->generateSign($param,$this->key);
66 $param['sign'] = $this->sign; 66 $param['sign'] = $this->sign;
@@ -75,9 +75,9 @@ class AiBlogService @@ -75,9 +75,9 @@ class AiBlogService
75 * @method :post 75 * @method :post
76 * @time :2025/2/13 14:35 76 * @time :2025/2/13 14:35
77 */ 77 */
78 - public function updatedProject($project_name,$language,$profile,$company){ 78 + public function updatedProject($project_name,$language,$profile,$company,$is_related_video){
79 $request_url = $this->url.'api/project/save'; 79 $request_url = $this->url.'api/project/save';
80 - $param = ['mch_id'=>$this->mch_id, 'title'=>$project_name, 'language'=>$language, 'profile'=>$profile, 'company'=>$company]; 80 + $param = ['mch_id'=>$this->mch_id, 'title'=>$project_name, 'language'=>$language, 'profile'=>$profile, 'company'=>$company,'is_related_video'=>$is_related_video];
81 $this->sign = $this->generateSign($param,$this->key); 81 $this->sign = $this->generateSign($param,$this->key);
82 $param['sign'] = $this->sign; 82 $param['sign'] = $this->sign;
83 $result = http_post($request_url,json_encode($param,true)); 83 $result = http_post($request_url,json_encode($param,true));
@@ -39,7 +39,7 @@ class DingService @@ -39,7 +39,7 @@ class DingService
39 'content' => $body['keyword'] . PHP_EOL . $body['msg'] 39 'content' => $body['keyword'] . PHP_EOL . $body['msg']
40 ], 40 ],
41 'at' => [ 41 'at' => [
42 - 'atMobiles' => $body['atMobiles'], 42 + 'atMobiles' => $body['atMobiles'] ?? '',
43 'atUserIds' => [], 43 'atUserIds' => [],
44 'isAtAll' => $body['isAtAll'], 44 'isAtAll' => $body['isAtAll'],
45 ] 45 ]