66 lines
2.5 KiB
PHP
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');
|
|
|
|
}
|
|
|
|
} |