作者 刘锟

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

... ... @@ -177,7 +177,7 @@ class AiBlogAutoPublish extends Command
if (!AiBlogOpenLog::isOpened($project->id)) {
//创建AI博客项目
$deploy_optimize = $project->deploy_optimize;
(new ProjectLogic())->setAiBlog($project->id, $project->main_lang_id, 1, $project->company, $deploy_optimize->company_en_name, $deploy_optimize->company_en_description);
(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);
//开启
$project->is_ai_blog = 1;
... ...
... ... @@ -145,8 +145,9 @@ class AiVideoTask extends Command
//拿到返回的路由查看是否重复
$route = RouteMap::setRoute($result['data']['url'], RouteMap::SOURCE_AI_VIDEO, $aiVideoInfo['id'], $item['project_id']);
if($route != $result['data']['url']){
$aiVideoService->updateDetail(['route'=>$route,'task_id'=>$item['task_id']]);
$aiVideoService->updateDetail(['url'=>$route,'task_id'=>$item['task_id']]);
}
$description = explode(",",$result['data']['content']);
$saveData = [
'title'=>$result['data']['title'],
'image'=>$result['data']['thumb'],
... ... @@ -156,7 +157,10 @@ class AiVideoTask extends Command
'keyword'=>json_encode($result['data']['keyword'],true),
'content'=>$result['data']['content'],
'text'=>$result['data']['section'],
'status'=>$aiVideoTaskModel::STATUS_FINISH
'status'=>$aiVideoTaskModel::STATUS_FINISH,
'seo_title'=>$result['data']['title'],
'seo_keyword'=>implode(',',$result['data']['keyword']),
'seo_description'=>$description[0] ?? '',
];
$aiVideoModel->edit($saveData,['task_id'=>$item['task_id']]);
//需要更新的路由
... ...
... ... @@ -61,15 +61,16 @@ class AfterDayCount extends Command
$this->managerHrModel = new ManageHr();
$projectModel = new Project();
$rankDataLogModel = new RankDataLog();
$todayMidnight = date('Y-m-d', strtotime('today'));
$date = date('Y-m-d');
$saveData = [];
$projectIdArr = $rankDataLogModel->selectField(['is_compliance'=>1,'lang'=>'','date'=>date('Y-m-d', strtotime('-3 months'))],'project_id');//3个月前达标的项目id
// $projectIdArr = $rankDataLogModel->selectField(['is_compliance'=>1,'lang'=>'','date'=>date('Y-m-d', strtotime('-3 months'))],'project_id');//3个月前达标的项目id
foreach ($this->after_manager as $key => $valM){
$idArr = $this->managerHrModel->selectField(['name'=>['in',$valM]],'id');
echo '对应优化师id:'.json_encode($idArr).PHP_EOL;
$project_count = $projectModel->where('gl_project.extend_type',0)
->where('gl_project.delete_status',0)
->where('gl_project.old_project_id',0)
->where('gl_project_deploy_optimize.start_date','<=',$todayMidnight)
->where('gl_project_deploy_optimize.start_date','<=',$date)
->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)
->whereIn('gl_project.type',[2,4,6])
->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')
... ... @@ -79,7 +80,7 @@ class AfterDayCount extends Command
$qualified_count = $projectModel->where('gl_project.extend_type',0)
->where('gl_project.delete_status',0)
->where('gl_project.old_project_id',0)
->where('gl_project_deploy_optimize.start_date','<=',$todayMidnight)
->where('gl_project_deploy_optimize.start_date','<=',$date)
->where('gl_project.is_remain_today',1)
->where('gl_project_deploy_build.plan','!=',0)
->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)
... ... @@ -91,6 +92,7 @@ class AfterDayCount extends Command
->count();
$rate = number_format($qualified_count / $project_count, 2);
$threeMonthsAgo = date('Y-m', strtotime('-3 months'));
echo '3个月前的时间:'.$threeMonthsAgo.PHP_EOL;
$three_project_count = $projectModel->where('gl_project.extend_type',0)
->where('gl_project.delete_status',0)
->where('gl_project.old_project_id',0)
... ... @@ -103,9 +105,9 @@ class AfterDayCount extends Command
->whereRaw("FIND_IN_SET('7', gl_project_deploy_optimize.special) = 0 AND FIND_IN_SET('8', gl_project_deploy_optimize.special) = 0")
->count();
$three_qualified_count = $projectModel->where('gl_project.extend_type',0)
->whereIn('gl_project.id',$projectIdArr)
->where('gl_project.delete_status',0)
->where('gl_project.old_project_id',0)
->where('gl_project.is_remain_today',1)
->where('gl_project_deploy_optimize.start_date','>=',$threeMonthsAgo.'-01')
->where('gl_project_deploy_optimize.start_date','<=',$threeMonthsAgo.'-31')
->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)
... ... @@ -123,7 +125,8 @@ class AfterDayCount extends Command
}
$data = $projectModel->where('gl_project.extend_type',0)
->where('gl_project.delete_status',0)
->where('gl_project_deploy_optimize.start_date','<=',$todayMidnight)
->where('gl_project.old_project_id',0)
->where('gl_project_deploy_optimize.start_date','<=',$date)
->where('gl_project.is_remain_today',1)
->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)
->whereIn('gl_project.type',[2,4,6])
... ... @@ -132,7 +135,7 @@ class AfterDayCount extends Command
->whereRaw("FIND_IN_SET('7', gl_project_deploy_optimize.special) = 0 AND FIND_IN_SET('8', gl_project_deploy_optimize.special) = 0")
->select(['gl_project.title','gl_project.finish_remain_day','gl_project_deploy_optimize.start_date'])->get()->toArray();
$saveData[] = [
'date'=>date('Y-m-d', strtotime('yesterday')),
'date'=>date('Y-m-d'),
'type'=> $key,
'project_count'=>$project_count,
'qualified_count'=>$qualified_count,
... ...
... ... @@ -52,9 +52,9 @@ class LyhImportTest extends Command
* @time :2023/11/20 15:13
*/
public function handle(){
ProjectServer::useProject(2140);
ProjectServer::useProject(3494);
echo date('Y-m-d H:i:s') . 'start' . PHP_EOL;
$this->import2140CustomModule('https://ecdn6.globalso.com/upload/p/2140/file/2025-05/all-202557.csv',2140);
$this->importCustomModule('https://ecdn6.globalso.com/upload/p/3494/file/2025-05/faq-1.csv',3494);
DB::disconnect('custom_mysql');
echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
}
... ... @@ -356,21 +356,21 @@ class LyhImportTest extends Command
foreach ($line_of_text as $k => $item){
// try {
//添加内容
$contentId = $customContentModel->addReturnId(['name'=>$item[0],'module_id'=>2,'project_id'=>$project_id]);
$contentId = $customContentModel->addReturnId(['name'=>$item[0],'module_id'=>3,'remark'=>$item[1],'project_id'=>$project_id]);
echo date('Y-m-d H:i:s') . '当前扩展数据id:'. $contentId . PHP_EOL;
//注册路由
$route = RouteMap::setRoute($item[0], RouteMap::SOURCE_MODULE,
$contentId, $project_id);
$customContentModel->edit(['route'=>$route],['id'=>$contentId]);
if(!empty($item[1])){
if(!empty($item[3])){
$categoryId = ',';
$cateArr = explode('/',$item[1]);
$cateArr = explode('/',$item[3]);
foreach ($cateArr as $cateV){
$cateInfo = $customCategoryModel->read(['name'=>$cateV,'module_id'=>2,'project_id'=>$project_id]);
$cateInfo = $customCategoryModel->read(['name'=>$cateV,'module_id'=>3,'project_id'=>$project_id]);
if($cateInfo !== false){
$categoryId .= $cateInfo['id'].',';
}else{
$cateVId = $customCategoryModel->addReturnId(['name'=>$cateV,'module_id'=>2,'project_id'=>$project_id]);
$cateVId = $customCategoryModel->addReturnId(['name'=>$cateV,'module_id'=>3,'project_id'=>$project_id]);
$cateRoute = RouteMap::setRoute($cateV, RouteMap::SOURCE_MODULE_CATE,
$cateVId, $project_id);
$customCategoryModel->edit(['route'=>$cateRoute],['id'=>$cateVId]);
... ... @@ -380,19 +380,19 @@ class LyhImportTest extends Command
$customContentModel->edit(['category_id'=>$categoryId],['id'=>$contentId]);
}
$saveData = [
['key'=>'pd_extended_field_1', 'type'=>1, 'values'=>$item[2], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_2', 'type'=>1, 'values'=>$item[4], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_3', 'type'=>1, 'values'=>$item[5], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_4', 'type'=>1, 'values'=>$item[3], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_5', 'type'=>1, 'values'=>$item[8], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_6', 'type'=>1, 'values'=>$item[6], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_7', 'type'=>1, 'values'=>$item[9], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_8', 'type'=>1, 'values'=>$item[10], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_9', 'type'=>1, 'values'=>$item[11], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_10', 'type'=>1, 'values'=>$item[12], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_11', 'type'=>1, 'values'=>$item[13], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_12', 'type'=>1, 'values'=>$item[14] ?? '', 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_13', 'type'=>1, 'values'=>$item[7], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_1', 'type'=>1, 'values'=>$item[2], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>3, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
// ['key'=>'pd_extended_field_2', 'type'=>1, 'values'=>$item[4], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
// ['key'=>'pd_extended_field_3', 'type'=>1, 'values'=>$item[5], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
// ['key'=>'pd_extended_field_4', 'type'=>1, 'values'=>$item[3], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
// ['key'=>'pd_extended_field_5', 'type'=>1, 'values'=>$item[8], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
// ['key'=>'pd_extended_field_6', 'type'=>1, 'values'=>$item[6], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
// ['key'=>'pd_extended_field_7', 'type'=>1, 'values'=>$item[9], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
// ['key'=>'pd_extended_field_8', 'type'=>1, 'values'=>$item[10], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
// ['key'=>'pd_extended_field_9', 'type'=>1, 'values'=>$item[11], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
// ['key'=>'pd_extended_field_10', 'type'=>1, 'values'=>$item[12], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
// ['key'=>'pd_extended_field_11', 'type'=>1, 'values'=>$item[13], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
// ['key'=>'pd_extended_field_12', 'type'=>1, 'values'=>$item[14] ?? '', 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
// ['key'=>'pd_extended_field_13', 'type'=>1, 'values'=>$item[7], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>2, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
];
$customExtendContentTModel->insert($saveData);
// }catch (\Exception $e){
... ... @@ -471,7 +471,7 @@ class LyhImportTest extends Command
$customContentModel->edit(['route'=>$route],['id'=>$contentId]);
if(!empty($item[3])){
$categoryId = ',';
$cateArr = explode('/',$item[3]);
$cateArr = explode('/',$item[1]);
foreach ($cateArr as $cateV){
$cateInfo = $customCategoryModel->read(['name'=>$cateV,'module_id'=>7,'project_id'=>$project_id]);
if($cateInfo !== false){
... ... @@ -487,19 +487,22 @@ class LyhImportTest extends Command
$customContentModel->edit(['category_id'=>$categoryId],['id'=>$contentId]);
}
$saveData = [
['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')],
['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')],
['key'=>'pd_extended_field_2', 'type'=>1, 'values'=>$item[4], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_3', 'type'=>1, 'values'=>$item[8], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
['key'=>'pd_extended_field_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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
['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')],
];
$customExtendContentTModel->insert($saveData);
// }catch (\Exception $e){
... ...
... ... @@ -10,11 +10,14 @@
namespace App\Console\Commands\LyhTest;
use App\Console\Commands\Domain\DomainInfo;
use App\Models\Ai\AiBlogAuthor;
use App\Models\Com\NoticeLog;
use App\Models\Project\AiBlogTask;
use App\Models\Project\DeployBuild;
use App\Models\Project\OnlineCheck;
use App\Models\Project\Project;
use App\Models\WebSetting\WebSetting;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\DB;
... ... @@ -36,7 +39,21 @@ class lyhDemo extends Command
protected $description = '更新路由';
public function handle(){
return true;
$projectModel = new Project();
$lists = $projectModel->list(['delete_status' => 0,'extend_type'=>0,'type'=>['in',[1,2,3,4]]], 'id', ['id']);
foreach ($lists as $val) {
// echo date('Y-m-d H:i:s') . '开始--项目的id:'. $val['id'] . PHP_EOL;
ProjectServer::useProject($val['id']);
try {
$settingModel = new WebSetting();
$settingModel->edit(['']);
}catch (\Exception $e){
}
DB::disconnect('custom_mysql');
}
return true;
}
}
... ...
... ... @@ -94,6 +94,7 @@ class CopyProject extends Command
$data['title'] = $data['title'].'-copy';
$data['delete_status'] = 1;
$data['is_ai_blog'] = 0;
$data['old_project_id'] = $old_project_id;
unset($data['id'],$data['exclusive_aicc_day'],$data['aicc'],$data['robots'],$data['is_translate_tag'],$data['is_translate'],$data['is_minor_languages'],$data['uptime']);
$project_id = $projectModel->insertGetId($data);
$hashids = new Hashids($data['from_order_id'], 13, 'abcdefghjkmnpqrstuvwxyz1234567890');
... ...
... ... @@ -4,6 +4,8 @@ namespace App\Console\Commands\Tdk;
use App\Helper\Arr;
use App\Models\News\News;
use App\Models\News\NewsCategory;
use App\Models\Product\Keyword;
use App\Models\Project\KeywordPrefix;
use App\Models\Project\Project;
... ... @@ -71,41 +73,41 @@ class RerunSeoTdk extends Command
* @author zbj
* @date 2025/4/12
*/
public function judgeAnomalies($project_id){
dump($project_id);
$all_prefixes = $this->getAllPrefix(1, $project_id);
$all_prefixes = array_map('strtolower', $all_prefixes);
//获取当前项目的所有分类
$list = Keyword::select('title', 'seo_title', 'id')->get()->toArray();
//新闻 seo_keyword 和 分类名一样的
$ids = [];
foreach ($list as $k=>$item){
$seo_title = $item['seo_title'];
$id = $item['id'];
$title = $item['title'];
if(Str::startsWith(strtolower($seo_title), ['wholesale', 'cheap', 'buy']) && Str::contains(strtolower($seo_title), ['manufacturer', 'manufacturers', 'factory', 'factories', 'exporter', 'exporters', 'company', 'companies', 'supplier', 'suppliers'])){
$ids[] = $id;
dump($seo_title);
continue;
}
$topic_words = explode(' ', strtolower($title));
//关键词最后一个是前缀 且 有前后缀
if(in_array(Arr::last($topic_words), $all_prefixes) && $title != $seo_title){
$ids[] = $id;
dump($seo_title);
continue;
}
}
$count = count($ids);
if($count){
echo "项目{$project_id},共{$count}条需要重跑";
LogUtils::info("RerunSeoTdk: 项目{$project_id},共{$count}条需要重跑");
Keyword::whereIn('id', $ids)->update(['seo_title' => '']);
ProjectUpdateTdk::add_task($project_id);
}
}
// public function judgeAnomalies($project_id){
// dump($project_id);
// $all_prefixes = $this->getAllPrefix(1, $project_id);
// $all_prefixes = array_map('strtolower', $all_prefixes);
//
// //获取当前项目的所有分类
// $list = Keyword::select('title', 'seo_title', 'id')->get()->toArray();
// //新闻 seo_keyword 和 分类名一样的
// $ids = [];
// foreach ($list as $k=>$item){
// $seo_title = $item['seo_title'];
// $id = $item['id'];
// $title = $item['title'];
// if(Str::startsWith(strtolower($seo_title), ['wholesale', 'cheap', 'buy']) && Str::contains(strtolower($seo_title), ['manufacturer', 'manufacturers', 'factory', 'factories', 'exporter', 'exporters', 'company', 'companies', 'supplier', 'suppliers'])){
// $ids[] = $id;
// dump($seo_title);
// continue;
// }
// $topic_words = explode(' ', strtolower($title));
// //关键词最后一个是前缀 且 有前后缀
// if(in_array(Arr::last($topic_words), $all_prefixes) && $title != $seo_title){
// $ids[] = $id;
// dump($seo_title);
// continue;
// }
// }
//
// $count = count($ids);
// if($count){
// echo "项目{$project_id},共{$count}条需要重跑";
// LogUtils::info("RerunSeoTdk: 项目{$project_id},共{$count}条需要重跑");
// Keyword::whereIn('id', $ids)->update(['seo_title' => '']);
// ProjectUpdateTdk::add_task($project_id);
// }
// }
// /**
// * 判断seo_title后缀重复
... ... @@ -139,28 +141,28 @@ class RerunSeoTdk extends Command
// }
// }
// /**
// * 判断异常
// * @author zbj
// * @date 2025/4/12
// */
// public function judgeAnomalies($project_id){
// //获取当前项目的所有分类
// $categories = NewsCategory::pluck('name', 'id')->toArray();
// //新闻 seo_keyword 和 分类名一样的
// $news_ids = [];
// foreach ($categories as $category){
// $ids = News::WhereRaw("FIND_IN_SET('{$category}', `seo_keywords`)")->pluck('id')->toArray();
// $news_ids = array_unique(array_merge($news_ids, $ids));
// }
//
// $count = count($news_ids);
// if($count){
// echo "项目{$project_id},共{$count}条需要重跑";
// News::whereIn('id', $news_ids)->update(['seo_keywords' => '']);
// ProjectUpdateTdk::add_task($project_id);
// }
// }
/**
* 判断异常
* @author zbj
* @date 2025/4/12
*/
public function judgeAnomalies($project_id){
//获取当前项目的所有分类
$categories = NewsCategory::pluck('alias', 'id')->toArray();
//新闻 seo_keyword 和 分类名一样的
$news_ids = [];
foreach ($categories as $category){
$ids = News::WhereRaw("FIND_IN_SET('{$category}', `seo_keywords`)")->pluck('id')->toArray();
$news_ids = array_unique(array_merge($news_ids, $ids));
}
$count = count($news_ids);
if($count){
echo "项目{$project_id},共{$count}条需要重跑";
News::whereIn('id', $news_ids)->update(['seo_keywords' => '']);
ProjectUpdateTdk::add_task($project_id);
}
}
public function getAllPrefix($type, int $project_id = 0){
$cache_key = 'AllPrefix_' . $type . '_' . $project_id;
... ...
... ... @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api;
use App\Enums\Common\Code;
use App\Helper\Translate;
use App\Models\Domain\DomainInfo;
use App\Models\Product\Category;
use App\Models\Product\CategoryRelated;
use App\Models\Product\Product;
... ... @@ -271,10 +272,15 @@ class ProductController extends BaseController
if(!$project_id){
$this->response('项目不存在', Code::SYSTEM_ERROR);
}
ProjectServer::useProject($project_id);
$product = Product::whereFullText('title', $keyword)->inRandomOrder()->select(['title', 'intro', 'thumb'])->first();
$product = Product::whereFullText('title', $keyword)->where('status', Product::STATUS_ON)->inRandomOrder()->select(['title', 'intro', 'thumb', 'id'])->first();
if($product){
ProjectServer::useProject($project_id);
$product['url'] = (new DomainInfo())->getProjectIdDomain($project_id) . getRouteMap(RouteMap::SOURCE_PRODUCT,$product->id);
}
$this->response('success', Code::SUCCESS, $product?:[]);
}
... ...
... ... @@ -40,6 +40,13 @@ class DeptController extends BaseController
$this->response('success',Code::SUCCESS,Arr::twoKeepKeys($data, ['id', 'pid', 'title', 'manager_uids', 'remark']));
}
/**
* @remark :保存
* @name :save
* @author :lyh
* @method :post
* @time :2025/5/15 15:12
*/
public function save(DeptRequest $request, DeptLogic $logic)
{
$request->validated();
... ...
... ... @@ -13,6 +13,7 @@ use App\Enums\Common\Code;
use App\Helper\Arr;
use App\Http\Controllers\Bside\BaseController;
use App\Models\WebSetting\AggregationSetting;
use App\Models\WebSetting\WebSettingImage;
/**
* @remark :聚合页
... ... @@ -58,6 +59,19 @@ class AggregationSettingController extends BaseController
public function edit(){
$aggSettingModel = new AggregationSetting();
if(isset($this->param['top_banner']) && !empty($this->param['top_banner'])){
$number = count($this->param['top_banner']);
//查询ai——blog是否拥有banner图
$settingImageModel = new WebSettingImage();
$info = $settingImageModel->read(['type'=>4]);
if($info === false){
$settingImageModel->addReturnId(['type'=>4,'project_id'=>$this->user['project_id'],'image'=>reset($this->param['top_banner'])]);
if($number > 1){
$this->param['top_banner'] = array_slice($this->param['top_banner'], 1);
}
}
if($number > 3){
$this->param['top_banner'] = array_slice($this->param['top_banner'], 0, 3);
}
$this->param['top_banner'] = Arr::a2s($this->param['top_banner']);
}
if(isset($this->param['foot_banner']) && !empty($this->param['foot_banner'])){
... ...
... ... @@ -23,7 +23,7 @@ class WebSettingImageController extends BaseController
* @time :2023/9/21 15:12
*/
public function lists(WebSettingImage $webSettingImage){
$list = $webSettingImage->list([],'id',['id','image','type']);
$list = $webSettingImage->list($this->map,'id',['id','image','type']);
foreach ($list as $k=>$v){
$v['image'] = getImageUrl($v['image'],$this->user['storage_type'],$this->user['project_location']);
$list[$k] = $v;
... ...
... ... @@ -176,7 +176,7 @@ class ProjectLogic extends BaseLogic
//ai_blog
$this->setAiBlog($this->param['id'],$this->param['main_lang_id'],$this->param['is_ai_blog'] ?? 0,
$this->param['company']??"", $this->param['deploy_optimize']['company_en_name'] ?? '',
$this->param['deploy_optimize']['company_en_description'] ?? '',$this->param['is_ai_video'] ?? 0);
$this->param['deploy_optimize']['company_en_description'] ?? '',$this->param['is_ai_video'] ?? 0,$this->param['is_related_video'] ?? 0);
//保存项目信息
$this->saveProject($this->param);
//保存建站部署信息
... ... @@ -289,7 +289,7 @@ class ProjectLogic extends BaseLogic
* @method :post
* @time :2025/2/13 16:02
*/
public function setAiBlog($project_id,$main_lang_id,$is_ai_blog,$company,$company_en_name,$company_en_description,$is_ai_video = 0){
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){
if(empty($main_lang_id) || (empty($is_ai_blog) && empty($is_ai_video))){
return true;
}
... ... @@ -305,7 +305,7 @@ class ProjectLogic extends BaseLogic
$aiSettingInfo = $aiSettingModel->read(['project_id'=>$project_id]);
if($aiSettingInfo === false){
$aiBlogService = new AiBlogService();
$result = $aiBlogService->createProject($projectInfo['company']?:$projectInfo['title'],$languageInfo['short'],$company_en_description,$company_en_name);
$result = $aiBlogService->createProject($projectInfo['company']?:$projectInfo['title'],$languageInfo['short'],$company_en_description,$company_en_name,$is_related_video);
if(isset($result['status']) && $result['status'] == 200){
//查看当前项目是否已有记录
$resData = [
... ... @@ -323,7 +323,7 @@ class ProjectLogic extends BaseLogic
$aiBlogService = new AiBlogService();
$aiBlogService->mch_id = $aiSettingInfo['mch_id'];
$aiBlogService->key = $aiSettingInfo['key'];
$aiBlogService->updatedProject($projectInfo['company']?:$projectInfo['title'],$languageInfo['short'],$company_en_description,$company_en_name);
$aiBlogService->updatedProject($projectInfo['company']?:$projectInfo['title'],$languageInfo['short'],$company_en_description,$company_en_name,$is_related_video);
}
}
return true;
... ...
... ... @@ -31,7 +31,7 @@ class BTemplateModuleProjectLogic extends BaseLogic
*/
public function ModuleList($map,$order = 'created_at',$filed = ['id','name','status','image','html','project_id']){
$map['deleted_status'] = 0;
$list = $this->model::whereRaw("FIND_IN_SET(?, project_id)", [$this->user['project_id']])->get()->toArray();
$list = $this->model::whereRaw("FIND_IN_SET(?, project_id)", [$this->user['project_id']])->orderBy($order,'desc')->select($filed)->get()->toArray();
$templateLabel = new TemplateLabel();
$label = [];
foreach ($list as $v){
... ...
... ... @@ -185,7 +185,7 @@ class CustomTemplateLogic extends BaseLogic
$this->param['html_style'] = "<style id='globalsojs-styles'></style>";
}
}
if(($this->param['url'] == 'news') || ($this->param['url'] == 'product') || ($this->param['url'] == 'blog')){
if(($this->param['url'] == 'news') || ($this->param['url'] == 'products') || ($this->param['url'] == 'blog')){
$this->fail('不允许修改路由为:'.$this->param['url']);
}
$this->param['project_id'] = $this->user['project_id'];
... ...
... ... @@ -197,10 +197,10 @@ class RankDataLogic extends BaseLogic
$data['current_api_source'] = $api_no == 10690 ? 'Yandex' : 'Google';
}
$data['api_no'] = $api_no;
$api_no = RankDataBmseo::where('project_id', $project_id)->value('api_no');
if($api_no){
$data['bmseo_api_no'] = $api_no;
}
// $api_no = RankDataBmseo::where('project_id', $project_id)->value('api_no');
// if($api_no){
// $data['bmseo_api_no'] = $api_no;
// }
return $data;
}
... ... @@ -222,9 +222,12 @@ class RankDataLogic extends BaseLogic
$api_no = $project['deploy_optimize']['api_no'] ?? 0;
}
if(!$api_no || Str::endsWith($api_no, '_bmseo')){
$api_no = RankDataBmseo::where('project_id', $project_id)->value('api_no');
}
// if(!$api_no || Str::endsWith($api_no, '_bmseo')){
$bm_api_no = RankDataBmseo::where('project_id', $project_id)->value('api_no');
if($bm_api_no){
$api_no = $bm_api_no;
}
// }
$domain = (!empty($project['deploy_optimize']['domain']) ? ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : '');
$domain_arr = parse_url($domain);
... ...
... ... @@ -17,4 +17,13 @@ class WebSettingImage extends Base
//连接数据库
protected $connection = 'custom_mysql';
public function imageMap(){
return [
1 => '产品',
2 => '博客',
3 => '新闻',
4 => 'ai_blog'
];
}
}
... ...
... ... @@ -57,10 +57,10 @@ class AiBlogService
* @method :post
* @time :2025/2/13 14:28
*/
public function createProject($project_name,$language,$profile,$company){
public function createProject($project_name,$language,$profile,$company,$is_related_video){
$request_url = $this->url.'api/project/create';
$param = [
'mch_id'=>$this->mch_id, 'title'=>$project_name, 'language'=>$language, 'profile'=>$profile, 'company'=>$company,
'mch_id'=>$this->mch_id, 'title'=>$project_name, 'language'=>$language, 'profile'=>$profile, 'company'=>$company,'is_related_video'=>$is_related_video
];
$this->sign = $this->generateSign($param,$this->key);
$param['sign'] = $this->sign;
... ... @@ -75,9 +75,9 @@ class AiBlogService
* @method :post
* @time :2025/2/13 14:35
*/
public function updatedProject($project_name,$language,$profile,$company){
public function updatedProject($project_name,$language,$profile,$company,$is_related_video){
$request_url = $this->url.'api/project/save';
$param = ['mch_id'=>$this->mch_id, 'title'=>$project_name, 'language'=>$language, 'profile'=>$profile, 'company'=>$company];
$param = ['mch_id'=>$this->mch_id, 'title'=>$project_name, 'language'=>$language, 'profile'=>$profile, 'company'=>$company,'is_related_video'=>$is_related_video];
$this->sign = $this->generateSign($param,$this->key);
$param['sign'] = $this->sign;
$result = http_post($request_url,json_encode($param,true));
... ...
... ... @@ -39,7 +39,7 @@ class DingService
'content' => $body['keyword'] . PHP_EOL . $body['msg']
],
'at' => [
'atMobiles' => $body['atMobiles'],
'atMobiles' => $body['atMobiles'] ?? '',
'atUserIds' => [],
'isAtAll' => $body['isAtAll'],
]
... ...