作者 lyh

gx

  1 +<?php
  2 +/**
  3 + * @remark :
  4 + * @name :UpdateRoute.php
  5 + * @author :lyh
  6 + * @method :post
  7 + * @time :2023/11/20 15:07
  8 + */
  9 +
  10 +namespace App\Console\Commands\UpgradeKeyword;
  11 +
  12 +use App\Helper\Arr;
  13 +use App\Helper\Translate;
  14 +use App\Models\CustomModule\CustomModuleCategory;
  15 +use App\Models\CustomModule\CustomModuleContent;
  16 +use App\Models\Product\CategoryRelated;
  17 +use App\Models\Product\Keyword;
  18 +use App\Models\Product\Product;
  19 +use App\Models\Project\Project;
  20 +use App\Models\RouteMap\RouteMap;
  21 +use App\Models\Template\BTemplate;
  22 +use App\Services\ProjectServer;
  23 +use Illuminate\Console\Command;
  24 +use Illuminate\Support\Facades\DB;
  25 +
  26 +/**
  27 + * @remark :更新所有项目的路由
  28 + * @name :UpdateRoute
  29 + * @author :lyh
  30 + * @method :post
  31 + * @time :2023/11/20 15:08
  32 + */
  33 +class UpdateKeyword extends Command
  34 +{
  35 + /**
  36 + * The name and signature of the console command.
  37 + *
  38 + * @var string
  39 + */
  40 + protected $signature = 'update_keyword_route';
  41 +
  42 + /**
  43 + * The console command description.
  44 + *
  45 + * @var string
  46 + */
  47 + protected $description = '升级项目-关键字路由与其他路由重复时,删除关键字';
  48 +
  49 + /**
  50 + * @remark :统一更新路由
  51 + * @name :handle
  52 + * @author :lyh
  53 + * @method :post
  54 + * @time :2023/11/20 15:13
  55 + */
  56 + public function handle(){
  57 + $projectModel = new Project();
  58 + $list = $projectModel->list(['is_upgrade'=>1,'delete_status'=>0]);
  59 +
  60 + foreach ($list as $v){
  61 + echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
  62 + ProjectServer::useProject($v['id']);
  63 + $this->getRouteMap();
  64 + DB::disconnect('custom_mysql');
  65 + }
  66 + echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
  67 + }
  68 +
  69 +
  70 + /**
  71 + * @remark :升级项目查看路由是否有重复路由
  72 + * @name :getRouteMap
  73 + * @author :lyh
  74 + * @method :post
  75 + * @time :2024/1/4 11:53
  76 + */
  77 + public function getRouteMap(){
  78 + $routeMapModel = new RouteMap();
  79 + $list = $routeMapModel->list(['source'=>'product_keyword']);
  80 + foreach ($list as $k => $v){
  81 + $routeInfo = $routeMapModel->read(['source'=>['!=','product_keyword'],'route'=>$v['route']]);
  82 + if($routeInfo !== false){
  83 + try {
  84 + $keywordModel = new Keyword();
  85 + $keywordModel->del(['id'=>$v['source_id']]);
  86 + $routeMapModel->del(['id'=>$v['id']]);
  87 + }catch (\Exception $e){
  88 + echo date('Y-m-d H:i:s') . '关键字id:'.$v['source_id'] . PHP_EOL;
  89 + }
  90 + }
  91 + }
  92 + return true;
  93 + }
  94 +}