This commit is contained in:
邓皓元 2018-12-29 18:16:22 +08:00
parent f84b1877ad
commit eee9636266
5 changed files with 27 additions and 15 deletions

View File

@ -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";
}

View File

@ -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;

View File

@ -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.

View File

@ -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);