作者 刘锟

合并分支 'akun' 到 'master'

Akun



查看合并请求 !758
  1 +<?php
  2 +
  3 +namespace App\Console\Commands\Domain;
  4 +
  5 +use App\Models\Devops\Servers;
  6 +use App\Models\Domain\DomainInfo;
  7 +use App\Models\Project\Project;
  8 +use App\Models\Project\ProjectServerBackup;
  9 +use App\Services\BatchExportService;
  10 +use Illuminate\Console\Command;
  11 +
  12 +class EmergencyResultExport extends Command
  13 +{
  14 + protected $signature = 'emergency_result_export';
  15 + protected $description = '恢复项目服务器结果导出';
  16 +
  17 + public function handle()
  18 + {
  19 + $map = ['项目id', '名称', '域名', '现属服务器', '恢复结果',];
  20 +
  21 + //获取所有恢复项目
  22 + $backup_model = new ProjectServerBackup();
  23 + $backup_list = $backup_model->orderBy('status', 'asc')->get();
  24 + $data = [];
  25 + if ($backup_list->count() > 0) {
  26 + $project_model = new Project();
  27 + $domain_model = new DomainInfo();
  28 + $server_model = new Servers();
  29 + foreach ($backup_list as $value) {
  30 + $project_info = $project_model->read(['id' => $value->project_id], ['id', 'company']);
  31 + $domain_info = $domain_model->read(['project_id' => $value->project_id], ['domain']);
  32 +
  33 + //获取现属服务器
  34 + if ($value->status == 1) {
  35 + $server_info = $server_model->read(['id' => $value->server_id], ['server_name']);
  36 + $server_name = $server_info['server_name'];
  37 + $status = '恢复成功';
  38 + } elseif ($value->status == 2) {
  39 + $server_name = '硅谷云服务器';
  40 + $status = '继续留在240';
  41 + } elseif ($value->status == 3) {
  42 + $server_name = '未知';
  43 + $status = '恢复失败:项目解除了域名绑定';
  44 + } else {
  45 + $server_name = '未知';
  46 + $status = '恢复失败:项目解析未在6.0服务器';
  47 + }
  48 +
  49 + $data[] = [
  50 + $value->project_id,
  51 + $project_info ? $project_info['company'] : '未知',
  52 + $domain_info ? $domain_info['domain'] : '未知',
  53 + $server_name,
  54 + $status
  55 + ];
  56 + }
  57 + }
  58 +
  59 + //生成文件,发送到客户端
  60 + if ($data) {
  61 + $table = new BatchExportService("询盘数据导出");
  62 + $file = $table->head($map)->data($data)->save();
  63 + if (!$file) {
  64 + throw new \Exception('文件生成失败,请重试');
  65 + }
  66 +
  67 + $this->output('export success');
  68 + }
  69 +
  70 + $this->output('no data');
  71 + }
  72 +
  73 + /**
  74 + * 输出处理日志
  75 + * @param $message
  76 + */
  77 + public function output($message)
  78 + {
  79 + echo date('Y-m-d H:i:s') . ' | ' . $message . PHP_EOL;
  80 + }
  81 +}