Merge remote-tracking branch 'origin/master' into akun
正在显示
18 个修改的文件
包含
190 行增加
和
121 行删除
| @@ -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 | ] |
-
请 注册 或 登录 后发表评论