停车场管理系统
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.
 
 

83 lines
2.3 KiB

<?php
namespace App\Imports;
use App\Models\EventCalendar;
use App\Models\ParkingPattern;
use App\Services\OperationLogService;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
class EventCalendarImport implements ToModel, WithHeadingRow
{
protected string $user_id;
protected OperationLogService $logService;
public function __construct(string $user_id)
{
$this->user_id = $user_id;
$this->logService = new OperationLogService();
$this->logService->menuTitle = 'event_calendar';
}
/**
* @param array $row
* @return false|void
*/
public function model(array $row)
{
$pattern_name = $row['mode_name'];
$start_date = $row['start_date'];
$start_time = $row['start_time'];
$end_date = $row['end_date'];
$end_time = $row['end_time'];
if (empty($pattern_name)) {
return ;
}
$pattern_id = ParkingPattern::getId($pattern_name);
if (!$pattern_id) {
return ;
}
if (EventCalendar::query()->whereIn('status', [0, 1])->where(
'pattern_id',
$pattern_id
)
->exists()
) {
return ;
}
$start_date_times = strtotime($start_date);
$start_times = strtotime($start_time);
$end_date_times = strtotime($end_date);
$end_times = strtotime($end_time);
if (!$start_date_times) {
return ;
}
if (!$start_times) {
return ;
}
if (!$end_date_times) {
return ;
}
if (!$end_times) {
return ;
}
$start_date = date("Y-m-d", $start_date_times);
$start_time = date("H:i:s", $start_times);
$end_date_time = date("Y-m-d", $end_date_times);
$end_time = date("H:i:s", $end_times);
$create = [
'pattern_id' => $pattern_id,
'admin_user_id' => $this->user_id,
'start_time' => $start_date . ' ' . $start_time,
'end_time' => $end_date_time . ' ' . $end_time,
'status' => 0,
'created_at' => get_datetime()
];
$model = EventCalendar::query()->create($create);
$this->logService->logCreated($model, 'event_calendar.import');
}
}