链街Dcat后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

84 lines
2.4 KiB

<?php
namespace App\Admin\Actions\Exporter;
use Maatwebsite\Excel\Concerns\FromArray;
use Maatwebsite\Excel\Concerns\WithStrictNullComparison;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithTitle;
use App\Admin\Repositories\v3\OrderDeliveryReport;
use App\Models\v3\LanzuEmployees as EmployeesModel;
use App\Models\ImsCjdcOrderMain as OrderMainModel;
use App\Models\v3\Market as MarketModel;
use Maatwebsite\Excel\Concerns\WithStyles;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
/**
* 配送统计总配送费
*/
class OrderDeliveryDetailSheet implements FromArray, WithStrictNullComparison, ShouldAutoSize, WithTitle, WithStyles
{
private $params;
public function __construct(array $params)
{
$this->params = $params;
}
public function array(): array
{
$titles = [[
'配送人员',
'订单编号',
'下单市场',
'下单时间',
'订单配送费(元)',
]];
$data = $this->getData($this->params);
$markets = MarketModel::getMarketArray();
$list = [];
$baseFee = config('admin.delivery.base_fee');
foreach ($data as $value){
$global_order_id = $value['global_order_id'] ?? '';
$delivery_money = $value['delivery_money'] ?? 0;
$list[] = [
$value['name'] ?? '',
' '.$global_order_id,
$markets[$value['market_id']] ?? '',
date('Y-m_d H:i:s',$value['created_at']),
$delivery_money+$baseFee
];
}
return array_merge($titles,$list);
}
public function styles(Worksheet $sheet)
{
return [
1 => ['font' => ['size' => 12]],
];
}
/**
* 获取数据
*/
public function getData($option = [])
{
$params = $option;
$repository = new OrderDeliveryReport();
$selects = EmployeesModel::TABLE_NAME.'.name,global_order_id,'.OrderMainModel::$tableName.'.market_id,'.OrderMainModel::$tableName.'.created_at,delivery_money';
$orderGoods = $repository->getDataModel($selects,$params);
$list = $orderGoods->get()->toArray();
return $list;
}
/**
* sheet 表名称
* @return string
*/
public function title(): string
{
return '配送明细';
}
}