vd/app/Domains/Virtual/Exports/FlowPoolExport.php
2019-02-26 18:12:25 +08:00

87 lines
2.4 KiB
PHP

<?php
namespace App\Domains\Virtual\Exports;
use App\Core\AbstractExport;
use Dipper\Excel\Concerns\WithHeadings;
use Dipper\Excel\Concerns\FromCollection;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use App\Domains\Virtual\Services\FlowPoolService;
class FlowPoolExport extends AbstractExport implements FromCollection, WithHeadings
{
public $conditions;
public function __construct(array $conditions = [])
{
$this->conditions = $conditions;
parent::__construct();
}
public function collection()
{
$this->conditions['limit'] = 0;
$list = app(FlowPoolService::class)->index($this->conditions)->map(function ($item) {
return collect([
'id' => $item->id,
'name' => $item->name,
'carrier_operator_name' => $item->carrier_operator_name,
'shared_name' => $item->shared_name,
'company_name' => $item->company_name,
'minimum_flows' => $item->minimum_flows,
'excess_flows' => $item->excess_flows,
'minimum_price' => $item->minimum_price,
'excess_price' => $item->excess_price,
'members' => $item->members,
'total_price' => $item->total_price,
]);
});
$list->push([
'总计',
'',
'',
'',
'',
'',
'',
array_sum($list->pluck('minimum_price')->toArray()) ?: 0,
array_sum($list->pluck('excess_price')->toArray()) ?: 0,
array_sum($list->pluck('members')->toArray()) ?: 0,
array_sum($list->pluck('total_price')->toArray()) ?: 0,
]);
return $list;
}
public function headings(): array
{
return [
'ID',
'名称',
'运营商',
'共享类型',
'客户名称',
'保底流量',
'超出流量',
'保底收入(元)',
'超出收入(元)',
'收费用户数',
'总收入(元)',
];
}
/**
* @return array
*/
public function columnFormats(): array
{
return [
'H' => NumberFormat::FORMAT_NUMBER_00,
'I' => NumberFormat::FORMAT_NUMBER_00,
'K' => NumberFormat::FORMAT_NUMBER_00,
];
}
}