1
0
Files
GongShangLian/app/Admin/Exporters/GoodsExporter.php
2020-08-06 15:36:28 +08:00

66 lines
2.5 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: 朝霞
* Date: 2019/5/14
* Time: 1:51 PM
*/
namespace App\Admin\Exporters;
use Encore\Admin\Grid\Exporters\AbstractExporter;
use Maatwebsite\Excel\Facades\Excel;
class GoodsExporter extends AbstractExporter
{
/**
* @Notes 商品导出
* @Author 朝霞
* @DateTime 2019/5/14 2:09 PM
*/
public function export()
{
Excel::create('商品导出', function ($excel) {
$excel->sheet('Sheetname', function ($sheet) {
$head = ['商品ID','商品名称','成本价','销售价','市场价','销量','库存','销售分公司','状态','开团时间','截团时间','创建时间', '最后更新时间'];
$body = ['id','name','cost_price','price','original_price','sales','stock','companies','status','activity_begined_at','activity_ended_at','created_at', 'updated_at'];
$bodyRows = collect($this->getData())->map(function ($item)use($body) {
foreach ($body as $keyName){
switch ($keyName) {
case 'status' :
switch (array_get($item, $keyName)) {
case 0:
$arr[] = '审核中';
break;
case 1:
$arr[] = '上架';
break;
case -1:
$arr[] = '下架';
break;
default:
$arr[] = '未知状态';
break;
}
break;
case 'companies' :
$companies = array_get($item, 'companies');
$arr[] = count($companies) > 0 ? implode('/', array_column($companies,'name')) : '';
break;
default:
$arr[] = array_get($item, $keyName);
break;
}
}
return $arr;
});
$rows = collect([$head])->merge($bodyRows);
$sheet->rows($rows);
});
})->export('xlsx');
}
}