作者 赵彬吉
@@ -9,6 +9,8 @@ @@ -9,6 +9,8 @@
9 9
10 namespace App\Console\Commands\DayCount; 10 namespace App\Console\Commands\DayCount;
11 11
  12 +use App\Models\ASide\APublicModel;
  13 +use App\Models\Channel\Channel;
12 use App\Models\Manage\ManageHr; 14 use App\Models\Manage\ManageHr;
13 use App\Models\Project\Project; 15 use App\Models\Project\Project;
14 use App\Models\RankData\RankDataLog; 16 use App\Models\RankData\RankDataLog;
@@ -130,10 +132,18 @@ class AfterDayCount extends Command @@ -130,10 +132,18 @@ class AfterDayCount extends Command
130 ->where('gl_project.is_remain_today',1) 132 ->where('gl_project.is_remain_today',1)
131 ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr) 133 ->whereIn('gl_project_deploy_optimize.optimist_mid',$idArr)
132 ->whereIn('gl_project.type',[2,4,6]) 134 ->whereIn('gl_project.type',[2,4,6])
  135 + ->leftJoin('gl_project_payment', 'gl_project.id', '=', 'gl_project_payment.project_id')
  136 + ->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id')
  137 + ->leftJoin('gl_domain_info', 'gl_project.id', '=', 'gl_domain_info.project_id')
133 ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') 138 ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')
  139 + ->leftJoin('gl_project_online_check', 'gl_project.id', '=', 'gl_project_online_check.project_id')
134 ->whereRaw("FIND_IN_SET('2', gl_project.level) = 0 AND FIND_IN_SET('3', gl_project.level) = 0") 140 ->whereRaw("FIND_IN_SET('2', gl_project.level) = 0 AND FIND_IN_SET('3', gl_project.level) = 0")
135 ->whereRaw("FIND_IN_SET('7', gl_project_deploy_optimize.special) = 0 AND FIND_IN_SET('8', gl_project_deploy_optimize.special) = 0") 141 ->whereRaw("FIND_IN_SET('7', gl_project_deploy_optimize.special) = 0 AND FIND_IN_SET('8', gl_project_deploy_optimize.special) = 0")
136 - ->select(['gl_project.title','gl_project.finish_remain_day','gl_project_deploy_optimize.start_date'])->get()->toArray(); 142 + ->select($this->selectParam())->get()->toArray();
  143 + foreach ($data as $k=>$val){
  144 + $this->handleParam($val);
  145 + $data[$k] = $val;
  146 + }
137 $saveData[] = [ 147 $saveData[] = [
138 'date'=>date('Y-m-d'), 148 'date'=>date('Y-m-d'),
139 'type'=> $key, 149 'type'=> $key,
@@ -149,4 +159,91 @@ class AfterDayCount extends Command @@ -149,4 +159,91 @@ class AfterDayCount extends Command
149 return $saveData; 159 return $saveData;
150 } 160 }
151 161
  162 +
  163 + public function selectParam(){
  164 + $select = [
  165 + 'gl_project.id AS id',
  166 + 'gl_project.title AS title',
  167 + 'gl_project.level AS level',
  168 + 'gl_project.channel AS channel',
  169 + 'gl_project.company AS company',
  170 + 'gl_project.type AS type',
  171 + 'gl_project.created_at AS created_at',
  172 + 'gl_project.is_language AS is_language',
  173 + 'gl_project.cooperate_date AS cooperate_date',
  174 + 'gl_project.finish_remain_day AS finish_remain_day',
  175 + 'gl_project.is_remain_today AS is_remain_today',
  176 + 'gl_project.remain_day AS remain_day',
  177 + 'gl_project.seo_remain_day AS seo_remain_day',
  178 + 'gl_project.robots AS robots',
  179 + 'gl_project.is_minor_languages AS is_minor_languages',
  180 + 'gl_project.is_translate AS is_translate',
  181 + 'gl_project.is_translate_tag AS is_translate_tag',
  182 + 'gl_project.is_upgrade AS is_upgrade',
  183 + 'gl_project.site_status AS site_status',
  184 + 'gl_project_online_check.id AS online_check_id',
  185 + 'gl_project_online_check.question AS question',
  186 + 'gl_project_online_check.go_question AS go_question',
  187 + 'gl_project_online_check.optimist_status AS optimist_status',
  188 + 'gl_project_online_check.qa_status AS qa_status',
  189 + 'gl_project_online_check.updated_at AS online_updated_at',
  190 + 'gl_project_payment.amount AS amount',
  191 + 'gl_project_deploy_build.dept_id AS dept_id',
  192 + 'gl_project_deploy_build.keyword_num AS key',
  193 + 'gl_project_deploy_build.service_duration AS day',
  194 + 'gl_project_deploy_build.leader_mid AS leader_mid',
  195 + 'gl_project_deploy_build.manager_mid AS manager_mid',
  196 + 'gl_project_deploy_build.designer_mid AS designer_mid',
  197 + 'gl_project_deploy_build.tech_mid AS tech_mid',
  198 + 'gl_project_deploy_build.test_domain AS test_domain',
  199 + 'gl_project_deploy_build.plan AS plan',
  200 + 'gl_project_deploy_build.seo_plan AS seo_plan',
  201 + 'gl_project_deploy_optimize.dept_id AS optimize_dept_id',
  202 + 'gl_project_deploy_optimize.manager_mid AS optimize_manager_mid',
  203 + 'gl_project_deploy_optimize.optimist_mid AS optimize_optimist_mid',
  204 + 'gl_project_deploy_optimize.assist_mid AS optimize_assist_mid',
  205 + 'gl_project_deploy_optimize.tech_mid AS optimize_tech_mid',
  206 + 'gl_project_deploy_optimize.design_mid AS design_mid',
  207 + 'gl_project_deploy_optimize.tech_leader AS tech_leader',
  208 + 'gl_project_deploy_optimize.quality_mid AS quality_mid',
  209 + 'gl_project_deploy_optimize.design_mid AS design_mid',
  210 + 'gl_project_deploy_optimize.start_date AS start_date',
  211 + 'gl_project_deploy_optimize.backlink AS backlink',
  212 + 'gl_project_deploy_optimize.ai_video AS ai_video',
  213 + 'gl_project_deploy_optimize.api_no AS api_no',
  214 + 'gl_project_deploy_optimize.first_compliance_time AS first_compliance_time',
  215 + 'gl_domain_info.amp_status AS amp_status',
  216 + 'gl_domain_info.domain AS domain',
  217 + ];
  218 + return $select;
  219 + }
  220 +
  221 + public function handleParam(&$item){
  222 + $data = APublicModel::getNumByProjectId($item['id']);
  223 + $manageModel = new ManageHr();
  224 + $plan = Project::planMap();
  225 + $seo_plan = Project::seoMap();
  226 + $item['plan'] = $plan[$item['plan']] ?? $seo_plan[1];
  227 + $item['channel'] = Channel::getChannelText($item['channel']['user_id'] ?? 0);
  228 + $item['build_leader'] = $manageModel->getName($item['leader_mid']);
  229 + $item['build_manager'] = $manageModel->getName($item['manager_mid']);
  230 + $item['build_designer'] = $manageModel->getName($item['designer_mid']);
  231 + $item['build_tech'] = $manageModel->getName($item['tech_mid']);
  232 + $item['optimize_manager'] = $manageModel->getName($item['optimize_manager_mid']);
  233 + $item['optimize_optimist'] = $manageModel->getName($item['optimize_optimist_mid']);
  234 + $item['optimize_assist'] = $manageModel->getName($item['optimize_assist_mid']);
  235 + $item['optimize_tech'] = $manageModel->getName($item['optimize_tech_mid']);
  236 + $item['quality_mid_name'] = $manageModel->getName($item['quality_mid']);
  237 + $item['created_at'] = date('Y年m月d日', strtotime($item['cooperate_date']));
  238 + $item['autologin_code'] = getAutoLoginCode($item['id']);
  239 + $item['domain'] = 'https://'.$item['domain'].'/';
  240 + if(!empty($item['domain']) && $item['amp_status'] == 1){
  241 + $item['amp_domain'] = str_replace('www','m',$item['domain']);
  242 + }
  243 + $item['product_num'] = $data['product'] ?? 0;
  244 + $item['keyword_num'] = $item['key'] ?? 0;
  245 + $item['inquiry_num'] = $data['inquiry'] ?? 0;
  246 + $item['autologin_code'] = getAutoLoginCode($item['id']);
  247 + return $item;
  248 + }
152 } 249 }
@@ -54,7 +54,7 @@ class LyhImportTest extends Command @@ -54,7 +54,7 @@ class LyhImportTest extends Command
54 public function handle(){ 54 public function handle(){
55 ProjectServer::useProject(2140); 55 ProjectServer::useProject(2140);
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/2025-16.csv',2140); 57 + $this->import2140CustomModule('https://ecdn6.globalso.com/upload/p/2140/file/2025-05/daoru.csv',2140);
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 }
@@ -487,22 +487,30 @@ class LyhImportTest extends Command @@ -487,22 +487,30 @@ 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_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')], 490 + ['key'=>'pd_extended_field_1', 'type'=>1, 'values'=>$item[3], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
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_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')],  
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_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')],  
495 - ['key'=>'pd_extended_field_20', '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_3', '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_5', '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_7', '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_12', '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_4', '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_1', '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_14', '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')], 492 + ['key'=>'pd_extended_field_3', 'type'=>1, 'values'=>$item[5], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  493 + ['key'=>'pd_extended_field_4', 'type'=>1, 'values'=>$item[6], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  494 + ['key'=>'pd_extended_field_5', 'type'=>1, 'values'=>$item[7], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  495 + ['key'=>'pd_extended_field_6', 'type'=>1, 'values'=>$item[8]??'', 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  496 + ['key'=>'pd_extended_field_7', 'type'=>1, 'values'=>$item[9], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  497 + ['key'=>'pd_extended_field_8', 'type'=>1, 'values'=>$item[10], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  498 + ['key'=>'pd_extended_field_9', 'type'=>1, 'values'=>$item[11], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  499 + ['key'=>'pd_extended_field_10', 'type'=>1, 'values'=>$item[12], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  500 + ['key'=>'pd_extended_field_11', 'type'=>1, 'values'=>$item[13], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  501 + ['key'=>'pd_extended_field_12', 'type'=>1, 'values'=>$item[14] ?? '', 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  502 + ['key'=>'pd_extended_field_13', 'type'=>1, 'values'=>$item[15], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  503 + ['key'=>'pd_extended_field_14', 'type'=>1, 'values'=>$item[16], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  504 + ['key'=>'pd_extended_field_15', 'type'=>1, 'values'=>$item[17], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  505 + ['key'=>'pd_extended_field_16', 'type'=>1, 'values'=>$item[18], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  506 + ['key'=>'pd_extended_field_17', 'type'=>1, 'values'=>$item[19], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  507 + ['key'=>'pd_extended_field_18', 'type'=>1, 'values'=>$item[20], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  508 + ['key'=>'pd_extended_field_19', 'type'=>1, 'values'=>$item[21], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  509 + ['key'=>'pd_extended_field_20', 'type'=>1, 'values'=>$item[22], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  510 + ['key'=>'pd_extended_field_21', 'type'=>1, 'values'=>$item[23], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  511 + ['key'=>'pd_extended_field_22', 'type'=>1, 'values'=>$item[24], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  512 + ['key'=>'pd_extended_field_23', 'type'=>1, 'values'=>$item[25], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
  513 + ['key'=>'pd_extended_field_24', 'type'=>1, 'values'=>$item[26], 'content_id'=>$contentId, 'project_id'=>$project_id, 'module_id'=>7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s')],
506 ]; 514 ];
507 $customExtendContentTModel->insert($saveData); 515 $customExtendContentTModel->insert($saveData);
508 // }catch (\Exception $e){ 516 // }catch (\Exception $e){
@@ -30,6 +30,7 @@ use App\Models\Workchat\MessagePush; @@ -30,6 +30,7 @@ use App\Models\Workchat\MessagePush;
30 use App\Services\AiBlogService; 30 use App\Services\AiBlogService;
31 use App\Services\ProjectServer; 31 use App\Services\ProjectServer;
32 use Illuminate\Console\Command; 32 use Illuminate\Console\Command;
  33 +use Illuminate\Support\Facades\Schema;
33 use Illuminate\Support\Facades\Artisan; 34 use Illuminate\Support\Facades\Artisan;
34 use Illuminate\Support\Facades\DB; 35 use Illuminate\Support\Facades\DB;
35 36
@@ -50,6 +51,7 @@ class lyhDemo extends Command @@ -50,6 +51,7 @@ class lyhDemo extends Command
50 protected $description = '更新路由'; 51 protected $description = '更新路由';
51 52
52 public function handle(){ 53 public function handle(){
  54 + dd(111);
53 $projectModel = new Project(); 55 $projectModel = new Project();
54 $lists = $projectModel->list(['delete_status' => 0,'extend_type'=>0,'type'=>['in',[1,2,3,4,6]]], 'id', ['id']); 56 $lists = $projectModel->list(['delete_status' => 0,'extend_type'=>0,'type'=>['in',[1,2,3,4,6]]], 'id', ['id']);
55 foreach ($lists as $val) { 57 foreach ($lists as $val) {
@@ -125,4 +127,61 @@ class lyhDemo extends Command @@ -125,4 +127,61 @@ class lyhDemo extends Command
125 return $aiSettingInfo; 127 return $aiSettingInfo;
126 } 128 }
127 129
  130 +
  131 + public function _actions() {
  132 + echo '开始执行...' . PHP_EOL;
  133 + ProjectServer::useProject(565);
  134 + $table = 'gl_product_category';
  135 + $connection = DB::connection('custom_mysql');
  136 + $dbName = $connection->getDatabaseName();
  137 + $brandsStr = 'Trimos,insize,Fowler,Mahr,Starrett,Tesa,Mitutoyo,Wixey,Shars,Fisso,Spi,Grizzly,Accumaster,Accuremote,Baker,Sharpe,Compac,Earth,Etalon,Federal,Fell,Fisso,Fowler,Gem,Grizzly,Husky,iGaging,Insize,Kanetec,Magnetics,Mighty,Mitutoyo,Noga,Pittsburgh,Procheck,Saker,Scherr Tumico,Shars,Shinwa,SPI,Starrett,Tesa,Technidea,Trimos,Verdict,Wyler,Wixey';
  138 + $brands = array_unique(array_map('trim', explode(',', $brandsStr)));
  139 + // 获取文本字段
  140 + $columns = $connection->table('information_schema.columns')
  141 + ->where('table_schema', $dbName)
  142 + ->where('table_name', $table)
  143 + ->whereIn('data_type', ['varchar', 'text', 'mediumtext', 'longtext'])
  144 + ->pluck('column_name')
  145 + ->toArray();
  146 + if (empty($columns)) {
  147 + echo "未找到文本字段,退出。" . PHP_EOL;
  148 + return;
  149 + }
  150 + foreach ($columns as $field) {
  151 + $sqlField = "`$field`";
  152 + // 构造第一轮REPLACE表达式(原样品牌)
  153 + $replaceExprRaw = $sqlField;
  154 + foreach ($brands as $brand) {
  155 + $safeBrand = addslashes($brand);
  156 + $replaceExprRaw = "REPLACE(REPLACE($replaceExprRaw, '$safeBrand-', ''), '$safeBrand', '')";
  157 + }
  158 + // 构造第二轮REPLACE表达式(小写品牌)
  159 + $lowerBrands = array_map('strtolower', $brands);
  160 + $replaceExprLower = $sqlField;
  161 + foreach ($lowerBrands as $brand) {
  162 + $safeBrand = addslashes($brand);
  163 + $replaceExprLower = "REPLACE(REPLACE($replaceExprLower, '$safeBrand-', ''), '$safeBrand', '')";
  164 + }
  165 + // 先执行原样品牌替换
  166 + $sqlRaw = "UPDATE `$table` SET $sqlField = $replaceExprRaw WHERE $sqlField IS NOT NULL AND $sqlField != ''";
  167 + echo "执行字段(品牌原样替换):$field" . PHP_EOL;
  168 + try {
  169 + $connection->update($sqlRaw);
  170 + } catch (\Exception $e) {
  171 + echo "字段 $field 原样替换出错:" . $e->getMessage() . PHP_EOL;
  172 + }
  173 + // 再执行小写品牌替换
  174 + $sqlLower = "UPDATE `$table` SET $sqlField = $replaceExprLower WHERE $sqlField IS NOT NULL AND $sqlField != ''";
  175 + echo "执行字段(品牌小写替换):$field" . PHP_EOL;
  176 + try {
  177 + $connection->update($sqlLower);
  178 + } catch (\Exception $e) {
  179 + echo "字段 $field 小写替换出错:" . $e->getMessage() . PHP_EOL;
  180 + }
  181 + }
  182 +
  183 + echo '执行结束' . PHP_EOL;
  184 +
  185 + DB::disconnect('custom_mysql');
  186 + }
128 } 187 }
@@ -159,7 +159,7 @@ class NoticeController extends BaseController @@ -159,7 +159,7 @@ class NoticeController extends BaseController
159 159
160 //新增重定向任务 160 //新增重定向任务
161 $redirect_model = new DomainRedirectTask(); 161 $redirect_model = new DomainRedirectTask();
162 - $task_redirect_info = $redirect_model->read(['origin_domain'=>$origin_domain],['id']); 162 + $task_redirect_info = $redirect_model->read(['origin_domain'=>$origin_domain],['id','status']);
163 if(!$task_redirect_info){ 163 if(!$task_redirect_info){
164 $redirect_model->add([ 164 $redirect_model->add([
165 'origin_domain'=> $origin_domain, 165 'origin_domain'=> $origin_domain,
@@ -167,7 +167,9 @@ class NoticeController extends BaseController @@ -167,7 +167,9 @@ class NoticeController extends BaseController
167 'target_domain' => $target_domain 167 'target_domain' => $target_domain
168 ]); 168 ]);
169 }else{ 169 }else{
170 - $redirect_model->edit(['status'=>DomainRedirectTask::STATUS_UN],['id'=>$task_redirect_info['id']]); 170 + if($task_redirect_info['status'] == DomainRedirectTask::STATUS_FAL){
  171 + $redirect_model->edit(['status'=>DomainRedirectTask::STATUS_UN,'error_msg'=>null],['id'=>$task_redirect_info['id']]);
  172 + }
171 } 173 }
172 174
173 return $this->success(); 175 return $this->success();
@@ -340,13 +340,17 @@ class DomainInfoLogic extends BaseLogic @@ -340,13 +340,17 @@ class DomainInfoLogic extends BaseLogic
340 //新增重定向任务 340 //新增重定向任务
341 $redirect_model = new DomainRedirectTask(); 341 $redirect_model = new DomainRedirectTask();
342 if($domain_301){ 342 if($domain_301){
343 - $task_redirect_info = $redirect_model->read(['origin_domain'=>$domain_301]); 343 + $task_redirect_info = $redirect_model->read(['origin_domain'=>$domain_301],['id','status']);
344 if(!$task_redirect_info){ 344 if(!$task_redirect_info){
345 $redirect_model->add([ 345 $redirect_model->add([
346 'origin_domain'=> $domain_301, 346 'origin_domain'=> $domain_301,
347 'other_domain' => json_encode([]), 347 'other_domain' => json_encode([]),
348 'target_domain' => $info['domain'] 348 'target_domain' => $info['domain']
349 ]); 349 ]);
  350 + }else{
  351 + if($task_redirect_info['status'] == DomainRedirectTask::STATUS_FAL){
  352 + $redirect_model->edit(['status'=>DomainRedirectTask::STATUS_UN,'error_msg'=>null],['id'=>$task_redirect_info['id']]);
  353 + }
350 } 354 }
351 } 355 }
352 356
@@ -25,7 +25,7 @@ class MonthCountLogic extends BaseLogic @@ -25,7 +25,7 @@ class MonthCountLogic extends BaseLogic
25 */ 25 */
26 public function getCountLists($map,$order = 'created_at',$filed = ['*']){ 26 public function getCountLists($map,$order = 'created_at',$filed = ['*']){
27 $map['project_id'] = $this->user['project_id']; 27 $map['project_id'] = $this->user['project_id'];
28 - $lists = $this->model->list($map,$order,$filed,'desc',20); 28 + $lists = $this->model->list($map,$order,$filed,'desc',12);
29 if(isset($this->project['is_record_china_visit']) && ($this->project['is_record_china_visit'] == 0)){ 29 if(isset($this->project['is_record_china_visit']) && ($this->project['is_record_china_visit'] == 0)){
30 foreach ($lists as $k => $v){ 30 foreach ($lists as $k => $v){
31 if(empty($v['source_country'])){ 31 if(empty($v['source_country'])){
@@ -55,7 +55,7 @@ class MonthCountLogic extends BaseLogic @@ -55,7 +55,7 @@ class MonthCountLogic extends BaseLogic
55 */ 55 */
56 public function getIpPvCount(){ 56 public function getIpPvCount(){
57 $count = new Count(); 57 $count = new Count();
58 - $startTime = date("Y-m-d", strtotime("-9 months", mktime(0, 0, 0))); 58 + $startTime = date("Y-m-d", strtotime("-11 months", mktime(0, 0, 0)));
59 $ensTime = date('Y-m-d',time()); 59 $ensTime = date('Y-m-d',time());
60 $lists = $count->list(['date'=>['between',[$startTime,$ensTime]],'project_id'=>$this->user['project_id']],'id',['*'],'asc'); 60 $lists = $count->list(['date'=>['between',[$startTime,$ensTime]],'project_id'=>$this->user['project_id']],'id',['*'],'asc');
61 $groupedData = []; 61 $groupedData = [];
@@ -42,6 +42,7 @@ class LinkDataLogic extends BaseLogic @@ -42,6 +42,7 @@ class LinkDataLogic extends BaseLogic
42 $data[] = [ 42 $data[] = [
43 'url'=>$v['url'], 43 'url'=>$v['url'],
44 'da_values'=>$v['da_values'], 44 'da_values'=>$v['da_values'],
  45 + 'send_time'=>$v['send_time'] ?? date('Y-m-d H:i:s')
45 ]; 46 ];
46 } 47 }
47 if(!empty($data)){ 48 if(!empty($data)){