WarningImporter.php 2.6 KB
<?php
/**
+-----------------------------------------------------------------------------------------------------------------------
 * 导出类 : 火警
+-----------------------------------------------------------------------------------------------------------------------
 *
 * PHP version 7
 *
 * @category  App\Admin\Extensions\Exporter
 * @package   App\Admin\Extensions\Exporter
 * @author    Richer <yangzi1028@163.com>
 * @date      2021年8月30日14:30:32
 * @copyright 2021-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
namespace App\Admin\Extensions\Importer;

use App\Admin\Extensions\CustomExporter;
use App\Models\Area\Area;
use Maatwebsite\Excel\Concerns\WithMapping;

/**
 * Class WarningExporter
 *
 * @category  App\Admin\Extensions\Exporter
 * @package   App\Admin\Extensions\Exporter
 * @author    Richer <yangzi1028@163.com>
 * @date      2021年8月30日14:30:32
 * @copyright 2021-2022 Richer (http://www.Richer.com/)
 * @license   http://www.Richer.com/ License
 * @link      http://www.Richer.com/
 */
class WarningImporter extends CustomExporter implements WithMapping
{
    protected $columns = [
        'id'            => '序号',
        'smoke_id'      => '设备编号',
        'level'          => '报警等级',
        'handled_status'    => '处理状态',
        'handled_at'    => '处理时间',
        'drilled_status'    => '是否演习',
        'room_id'           => '报警地址',
        'user_id'           => '通知人数',
        'created_at'        => '报警时间',
    ];

    /**
     * OrderExporter constructor.
     *
     * @param string $fileName
     * @param array $columns
     */
    public function __construct($fileName = '', $columns = [])
    {
        parent::__construct($fileName, $columns);
    }

    /**
     * 字段映射
     *
     * @param $model
     * @return array
     */
    public function map($model) : array
    {
        $this->index ++ ;
        $users_count = $model->users->count() ?? 0;
        $smoke = $model->smoke->number;
        // 获取全部房间
        $room_title = optional($model->room->village)->title .','. optional($model->room->group)->title .','.
            optional($model->room->building)->title  .','. optional($model->room)->title;

        // 返回的映射数组
        return [
            $this->index,
            "'" .$smoke,
            " " .$model->level_zh,
            $model->handled_status_zh,
            $model->handled_at,
            " " .$model->drilled_status_zh,
            " " . $room_title,
            $users_count,
            $model->created_at,
        ];
    }
}