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