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