作者 刘锟

自动拉取C端代码

  1 +<?php
  2 +
  3 +namespace App\Http\Controllers\Aside\AutoPull;
  4 +
  5 +use App\Enums\Common\Code;
  6 +use App\Helper\Arr;
  7 +use App\Http\Controllers\Aside\BaseController;
  8 +use App\Models\AutoPull\AutoPullNotify;
  9 +
  10 +class AutoPullController extends BaseController
  11 +{
  12 + /**
  13 + * 获取自动拉取代码任务列表
  14 + * @author Akun
  15 + * @date 2024/08/26 15:49
  16 + */
  17 + public function getTaskLists()
  18 + {
  19 + $autoModule = new AutoPullNotify();
  20 + $lists = $autoModule->lists($this->map, $this->page, $this->row);
  21 + if (!empty($lists)) {
  22 + foreach ($lists['list'] as $k => $v) {
  23 + $lists['list'][$k]['server_name'] = AutoPullNotify::serversMap()[$v['server_id']];
  24 +
  25 + $process = Arr::s2a($v['process']);
  26 + $process_name = [];
  27 + if ($process) {
  28 + foreach ($process as $kp => $vp) {
  29 + $process_name[$kp] = AutoPullNotify::processMap()[$vp];
  30 + }
  31 + }
  32 +
  33 + $lists['list'][$k]['process_name'] = $process_name;
  34 + }
  35 + }
  36 +
  37 + $this->response('success', Code::SUCCESS, $lists);
  38 + }
  39 +
  40 + /**
  41 + * 添加自动拉取代码任务
  42 + * @author Akun
  43 + * @date 2024/08/26 16:31
  44 + */
  45 + public function saveTask()
  46 + {
  47 + $this->request->validate([
  48 + 'server_id' => 'required',
  49 + ], [
  50 + 'server_id.required' => '服务器不能为空'
  51 + ]);
  52 +
  53 + $model = new AutoPullNotify();
  54 +
  55 + foreach ($this->param['server_id'] as $v) {
  56 + $model->add([
  57 + 'user_id' => $this->uid,
  58 + 'server_id' => $v,
  59 + 'process' => Arr::a2s($this->param['process'] ?? []),
  60 + 'status' => 0
  61 + ]);
  62 + }
  63 +
  64 + $this->response('success');
  65 + }
  66 +
  67 + /**
  68 + * 获取服务器及进程配置
  69 + * @author Akun
  70 + * @date 2024/08/26 16:07
  71 + */
  72 + public function taskMap()
  73 + {
  74 + $servers = AutoPullNotify::serversMap();
  75 + $process = AutoPullNotify::processMap();
  76 +
  77 + $lists = [
  78 + 'servers' => $servers,
  79 + 'process' => $process
  80 + ];
  81 +
  82 + $this->response('success', Code::SUCCESS, $lists);
  83 + }
  84 +}
  1 +<?php
  2 +
  3 +namespace App\Models\AutoPull;
  4 +
  5 +use App\Models\Base;
  6 +
  7 +class AutoPullNotify extends Base
  8 +{
  9 + protected $table = 'gl_auto_pull_notify';
  10 +
  11 + public static function serversMap()
  12 + {
  13 + return [
  14 + 1 => '硅谷云服务器',
  15 + 9 => '硅谷IDC服务器01(6.0美服1)',
  16 + 3 => '硅谷IDC服务器02(6.0美服2)',
  17 + 2 => '俄罗斯服务器',
  18 + 4 => '阿里云深圳服务器',
  19 + 5 => '日本服务器',
  20 + 8 => '香港服务器',
  21 + ];
  22 + }
  23 +
  24 + public static function processMap()
  25 + {
  26 + return [
  27 + 'php artisan handle_html' => '拉取页面zip文件并解压',
  28 + 'php artisan create_update_page_route' => '创建主站路由',
  29 + 'php artisan create_update_page_master' => '生成主站页面',
  30 + 'php artisan create_update_page_minor' => '生成小语种页面',
  31 + 'php artisan create_update_page_now' => '实时生成主站页面',
  32 + 'php artisan create_update_page_sitemap' => '生成主站sitemap,robots',
  33 + 'php artisan create_update_amp_route' => '创建amp站路由',
  34 + 'php artisan create_update_page_amp' => '生成amp站页面',
  35 + 'php artisan create_update_amp_sitemap' => '生成amp站sitemap,robots',
  36 + ];
  37 + }
  38 +}
@@ -465,6 +465,14 @@ Route::middleware(['aloginauth'])->group(function () { @@ -465,6 +465,14 @@ Route::middleware(['aloginauth'])->group(function () {
465 Route::any('/saveModule', [Aside\ExtentModule\ExtensionModuleController::class, 'saveModule'])->name('admin.extension_module_saveModule'); 465 Route::any('/saveModule', [Aside\ExtentModule\ExtensionModuleController::class, 'saveModule'])->name('admin.extension_module_saveModule');
466 Route::any('/delModule', [Aside\ExtentModule\ExtensionModuleController::class, 'delModule'])->name('admin.extension_module_delModule'); 466 Route::any('/delModule', [Aside\ExtentModule\ExtensionModuleController::class, 'delModule'])->name('admin.extension_module_delModule');
467 }); 467 });
  468 + /**
  469 + * C端代码自动拉取模块
  470 + */
  471 + Route::prefix('auto_pull')->group(function () {
  472 + Route::any('/', [Aside\AutoPull\AutoPullController::class, 'getTaskLists'])->name('admin.auto_pull_getTaskLists');
  473 + Route::any('/saveTask', [Aside\AutoPull\AutoPullController::class, 'saveTask'])->name('admin.auto_pull_saveTask');
  474 + Route::any('/taskMap', [Aside\AutoPull\AutoPullController::class, 'taskMap'])->name('admin.auto_pull_taskMap');
  475 + });
468 }); 476 });
469 477
470 //无需登录验证的路由组 478 //无需登录验证的路由组