|
...
|
...
|
@@ -5,6 +5,7 @@ namespace App\Console\Commands; |
|
|
|
use App\Http\Controllers\File\FileController;
|
|
|
|
use App\Models\ProjectAssociation\ProjectAssociation;
|
|
|
|
use App\Models\File\DataFile;
|
|
|
|
use App\Services\CosService;
|
|
|
|
use Dompdf\Dompdf;
|
|
|
|
use Dompdf\Options;
|
|
|
|
use Illuminate\Console\Command;
|
|
...
|
...
|
@@ -36,6 +37,8 @@ class ProjectFilePDF extends Command |
|
|
|
|
|
|
|
protected $fileController;
|
|
|
|
|
|
|
|
protected $CosService;
|
|
|
|
|
|
|
|
// 最大支持5个进程
|
|
|
|
public $maxRunNumber = 50;
|
|
|
|
|
|
...
|
...
|
@@ -50,6 +53,7 @@ class ProjectFilePDF extends Command |
|
|
|
$this->DataFile = new DataFile();
|
|
|
|
$this->time = date("Y-m");
|
|
|
|
$this->fileController = new FileController();
|
|
|
|
$this->CosService = new CosService();
|
|
|
|
parent::__construct();
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -86,83 +90,28 @@ class ProjectFilePDF extends Command |
|
|
|
$this->debug_echo('pdf生成失败!');
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
$file_path = json_encode($file_path['data']);
|
|
|
|
$isRes = $this->DataFile->saveData(compact('project_id', 'user_id', 'friend_id', 'file_path') + ['time' => $this->time]);
|
|
|
|
$isRes = $this->DataFile->saveData(compact('project_id', 'user_id', 'friend_id', 'file_path') + ['time' => $this->time]);
|
|
|
|
if (!$isRes) {
|
|
|
|
if ($count == 2) {
|
|
|
|
$lists->is_pdf = 2;
|
|
|
|
$lists->save();
|
|
|
|
$this->debug_echo('项目文件数据保存失败! - 其他原因 - ' . $key);
|
|
|
|
} else {
|
|
|
|
redis_add($key, $count + 1);
|
|
|
|
redis_set($key, $count + 1);
|
|
|
|
$this->debug_echo('项目文件数据保存失败! - ' . $key);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$lists->is_pdf = 1;
|
|
|
|
$lists->save();
|
|
|
|
$this->debug_echo('项目文件数据保存成功!');
|
|
|
|
$this->info('项目文件数据保存成功!');
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Execute the console command.
|
|
|
|
*
|
|
|
|
* @return int
|
|
|
|
*/
|
|
|
|
// public function handle()
|
|
|
|
// {
|
|
|
|
// # 0 - 未生成
|
|
|
|
// # 1 - 已生成
|
|
|
|
// # 2 - 其它问题
|
|
|
|
// $is_pdf = 0;
|
|
|
|
// $lists = $this->ProjectAssociation::query()->where('is_pdf', $is_pdf)
|
|
|
|
// ->where('project_id', '!=', 0)
|
|
|
|
// ->where('friend_id', '!=', 0)
|
|
|
|
// ->where('user_id', '!=', 0)
|
|
|
|
// ->where('created_at', 'like', $this->time . '%')->first();
|
|
|
|
//
|
|
|
|
// if (is_null($lists)) {
|
|
|
|
// $this->error('没有任务,等待中');
|
|
|
|
// sleep(60);
|
|
|
|
// return 0;
|
|
|
|
// }
|
|
|
|
// $key = $this->signature . '-' . $lists->id;
|
|
|
|
// $count = redis_get($key);
|
|
|
|
// $project_id = $lists->project_id;
|
|
|
|
// $user_id = $lists->user_id;
|
|
|
|
// $friend_id = $lists->friend_id;
|
|
|
|
// // todo 根据项目查询数据
|
|
|
|
// $project_data = [];
|
|
|
|
// $html = $this->html($project_data);
|
|
|
|
// $filename = hash('md5', $this->time . '-' . $project_id . '-' . $friend_id . '-' . $user_id);
|
|
|
|
//
|
|
|
|
// $file_path = $this->savePDF($html, $filename);
|
|
|
|
// if (empty($file_path)) {
|
|
|
|
// $this->debug_echo('pdf生成失败!');
|
|
|
|
// return 0;
|
|
|
|
// }
|
|
|
|
// $file_path = $file_path['data'];
|
|
|
|
// $isRes = $this->DataFile->saveData(compact('project_id', 'user_id', 'friend_id', 'file_path') + ['time' => $this->time]);
|
|
|
|
// if (!$isRes) {
|
|
|
|
// if ($count == 2) {
|
|
|
|
// $lists->status = 2;
|
|
|
|
// $lists->save();
|
|
|
|
// $this->error('项目文件数据保存失败! - 其他原因 - ' . $key);
|
|
|
|
// } else {
|
|
|
|
// redis_add($key, $count + 1);
|
|
|
|
// $this->error('项目文件数据保存失败! - ' . $key);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// $lists->status = 1;
|
|
|
|
// $lists->save();
|
|
|
|
// $this->info('项目文件数据保存成功!');
|
|
|
|
// return 0;
|
|
|
|
// }
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param $html
|
|
|
|
* @param $filename
|
|
|
|
* @return array
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
public function savePDF($html, $filename)
|
|
|
|
{
|
|
...
|
...
|
@@ -192,14 +141,14 @@ class ProjectFilePDF extends Command |
|
|
|
$dompdf->render();
|
|
|
|
|
|
|
|
// 获取PDF内容
|
|
|
|
$pdfContent = $dompdf->output();
|
|
|
|
$this->fileController->path = '/V6/PDF';
|
|
|
|
$pdfContent = $dompdf->output();
|
|
|
|
$path = '/V6/PDF/' . $this->time;
|
|
|
|
|
|
|
|
// 将PDF内容保存到文件
|
|
|
|
@file_put_contents($savePath, $pdfContent);
|
|
|
|
// 创建一个文件实例
|
|
|
|
$file = new File($savePath);
|
|
|
|
return $this->fileController->api_upload_single($file);
|
|
|
|
return $this->CosService->uploadFile($file, $path, $filename . '.pdf');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
...
|
...
|
|