导出
This commit is contained in:
parent
f84b1877ad
commit
eee9636266
@ -13,8 +13,9 @@ use Illuminate\Filesystem\Filesystem;
|
|||||||
use Dipper\Excel\Events\BeforeWriting;
|
use Dipper\Excel\Events\BeforeWriting;
|
||||||
use Illuminate\Support\Facades\Request;
|
use Illuminate\Support\Facades\Request;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Dipper\Excel\Concerns\ShouldAutoSize;
|
||||||
|
|
||||||
abstract class AbstractExport implements WithEvents, WithTitle
|
abstract class AbstractExport implements WithEvents, WithTitle, ShouldAutoSize
|
||||||
{
|
{
|
||||||
public static $classes = [
|
public static $classes = [
|
||||||
\App\Domains\Stats\Exports\CompanyCountExport::class => '企业统计',
|
\App\Domains\Stats\Exports\CompanyCountExport::class => '企业统计',
|
||||||
@ -126,7 +127,13 @@ abstract class AbstractExport implements WithEvents, WithTitle
|
|||||||
*/
|
*/
|
||||||
public function title(): string
|
public function title(): string
|
||||||
{
|
{
|
||||||
return self::$classes[get_class($this)] ?? '列表';
|
$title = self::$classes[get_class($this)];
|
||||||
|
|
||||||
|
if (($conditions = $this->conditions) && $conditions['starttime'] && $conditions['endtime']) {
|
||||||
|
$title .= Carbon::parse($conditions['starttime'])->format('Ymd') . '-' . Carbon::parse($conditions['endtime'])->format('Ymd');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $title ?? '列表';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -146,7 +153,9 @@ abstract class AbstractExport implements WithEvents, WithTitle
|
|||||||
*/
|
*/
|
||||||
private function filename(): string
|
private function filename(): string
|
||||||
{
|
{
|
||||||
$filename = $this->title() . date('YmdHis');
|
$title = self::$classes[get_class($this)];
|
||||||
|
|
||||||
|
$filename = $title . date('YmdHis');
|
||||||
|
|
||||||
return "export/{$filename}.xlsx";
|
return "export/{$filename}.xlsx";
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,10 @@ namespace App\Domains\Stats\Exports;
|
|||||||
use Dipper\Excel\Concerns\Exportable;
|
use Dipper\Excel\Concerns\Exportable;
|
||||||
use Dipper\Excel\Concerns\WithHeadings;
|
use Dipper\Excel\Concerns\WithHeadings;
|
||||||
use Dipper\Excel\Concerns\FromCollection;
|
use Dipper\Excel\Concerns\FromCollection;
|
||||||
|
use Dipper\Excel\Concerns\WithHeadingRow;
|
||||||
use App\Domains\Stats\Services\CompanyCountService;
|
use App\Domains\Stats\Services\CompanyCountService;
|
||||||
|
|
||||||
class CompanyCountExport extends AbstractExport implements FromCollection, WithHeadings
|
class CompanyCountExport extends AbstractExport implements FromCollection, WithHeadings, WithHeadingRow
|
||||||
{
|
{
|
||||||
use Exportable;
|
use Exportable;
|
||||||
|
|
||||||
@ -30,10 +31,10 @@ class CompanyCountExport extends AbstractExport implements FromCollection, WithH
|
|||||||
$companies->push([
|
$companies->push([
|
||||||
'',
|
'',
|
||||||
'总计',
|
'总计',
|
||||||
array_sum($companies->pluck('total')->toArray()),
|
array_sum($companies->pluck('total')->toArray()) ?: 0,
|
||||||
array_sum($companies->pluck('counts')->toArray()),
|
array_sum($companies->pluck('counts')->toArray()) ?: 0,
|
||||||
array_sum($companies->pluck('renewed_counts')->toArray()),
|
array_sum($companies->pluck('renewed_counts')->toArray()) ?: 0,
|
||||||
array_sum($companies->pluck('valid_counts')->toArray()),
|
array_sum($companies->pluck('valid_counts')->toArray()) ?: 0,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return $companies;
|
return $companies;
|
||||||
|
@ -46,13 +46,13 @@ class CompanyCountController extends Controller
|
|||||||
$conditions = $this->request->all();
|
$conditions = $this->request->all();
|
||||||
$conditions['limit'] = 0;
|
$conditions['limit'] = 0;
|
||||||
|
|
||||||
$export = new CompanyCountExport($conditions);
|
try {
|
||||||
|
$export = new CompanyCountExport($conditions);
|
||||||
$res = Excel::queue($export, $export->filename(), $this->disk);
|
Excel::store($export, $export->filename(), $this->disk);
|
||||||
|
$url = Storage::disk($this->disk)->url($filename);
|
||||||
dd($res);
|
} catch (\Exception $e) {
|
||||||
|
return err('导出失败,请稍后重试');
|
||||||
$url = Storage::url($filename);
|
}
|
||||||
|
|
||||||
return res($url, '导出成功', 201);
|
return res($url, '导出成功', 201);
|
||||||
}
|
}
|
||||||
|
Binary file not shown.
@ -7,6 +7,8 @@ use App\Domains\Stats\Exports\CompanyCountExport;
|
|||||||
require_once realpath(dirname(__FILE__) . '/TestCase.php');
|
require_once realpath(dirname(__FILE__) . '/TestCase.php');
|
||||||
|
|
||||||
$conditions['limit'] = 0;
|
$conditions['limit'] = 0;
|
||||||
|
$conditions['starttime'] = '2018-01-01';
|
||||||
|
$conditions['endtime'] = '2018-01-31';
|
||||||
|
|
||||||
$export = new CompanyCountExport($conditions);
|
$export = new CompanyCountExport($conditions);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user