12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2019/6/11
- * Time: 13:39
- */
- namespace App\Console\Commands;
- use App\Repositories\Post\PostRepository;
- use Illuminate\Console\Command;
- use App\Models\Download;
- use Illuminate\Support\Carbon;
- class Downloads extends Command
- {
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'download:download';
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = '处理下载';
- /**
- * Create a new command instance.
- *
- * @return void
- */
- public function __construct(Download $download, PostRepository $postRepository)
- {
- parent::__construct();
- $this->download = $download;
- $this->postRepository = $postRepository;
- }
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- $this->line("开始检索生成中下载");
- $fileDir = 'export/';
- $path = public_path($fileDir);
- if(!file_exists($path)){
- mkdir($path, 0775);
- }
- $download = $this->download->where('download_status', 0)->orderBy('id', 'desc')->first();
- if(!$download) exit;
- if($download->download_type == 'post'){
- $filePath = $fileDir .$download->username.'内容-'.Carbon::now()->format('Y-m-d') .'_' .uniqid() .'.csv';
- }elseif($download->download_type == 'post_waste'){
- $filePath = $fileDir .$download->username.'回收站内容-'.Carbon::now()->format('Y-m-d') .'_' .uniqid() .'.csv';
- }elseif($download->download_type == 'registered_record'){
- $filePath = $fileDir .$download->username.'新用户注册账本-'.Carbon::now()->format('Y-m-d') .'_' .uniqid() .'.csv';
- }elseif($download->download_type == 'comment_record'){
- $filePath = $fileDir .$download->username.'评论账本-'.Carbon::now()->format('Y-m-d') .'_' .uniqid() .'.csv';
- }elseif($download->download_type == 'release_record'){
- $filePath = $fileDir .$download->username.'发布账本-'.Carbon::now()->format('Y-m-d') .'_' .uniqid() .'.csv';
- }elseif($download->download_type == 'general_record'){
- $filePath = $fileDir .$download->username.'唯一/普通行为账本-'.Carbon::now()->format('Y-m-d') .'_' .uniqid() .'.csv';
- }else{
- exit;
- }
- $download->download_status = 1;
- $download->save();
- try {
- $this->postRepository->download($filePath, $download->download_type, json_decode($download->params, true));
- $download->url = $filePath;
- $download->download_status = 2;
- $download->save();
- } catch (\Exception $e) {
- $download->download_status = 3;
- $download->url = $e->getMessage();
- $download->save();
- }
- }
- }
|