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.
|
|
<?phpnamespace 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 '配送明细'; }}
|