|
|
|
@ -256,4 +256,57 @@ class AdminNoticeService extends BaseService |
|
|
|
]; |
|
|
|
self::createData(1, 4, $data, $user_id); |
|
|
|
} |
|
|
|
|
|
|
|
public function getNoticeInfo(): array |
|
|
|
{ |
|
|
|
$columns = [ |
|
|
|
'alarm_time', |
|
|
|
'alarm_type', |
|
|
|
'msg_type', |
|
|
|
'id', |
|
|
|
'is_notice', |
|
|
|
'updated_at', |
|
|
|
'camera_id' |
|
|
|
]; |
|
|
|
$list = AdminNotice::query()->where('is_notice', 1)->select($columns) |
|
|
|
->get(); |
|
|
|
if ($list) { |
|
|
|
$list = $list->toArray(); |
|
|
|
$alarmTypeArr = self::getAlarmType(); |
|
|
|
$msgTypeArr = self::getMsgType(); |
|
|
|
$data = []; |
|
|
|
foreach ($list as $item) { |
|
|
|
$item['alarm_type'] = $alarmTypeArr[$item['alarm_type']]; |
|
|
|
$item['msg_type'] = $msgTypeArr[$item['msg_type']]; |
|
|
|
|
|
|
|
$updated = [ |
|
|
|
'updated_at' => get_datetime() |
|
|
|
]; |
|
|
|
if ($item['alarm_type'] == 2 && $item['msg_type'] == 3) { |
|
|
|
$updated_at = $item['updated_at']; |
|
|
|
$updated_times = strtotime($updated_at); |
|
|
|
$diff_times = time() - $updated_times; |
|
|
|
if ($diff_times == 0 || $diff_times >= 300) { |
|
|
|
$camera_status = ParkingCamera::query()->where( |
|
|
|
'id', |
|
|
|
$item['camera_id'] |
|
|
|
)->value('status'); |
|
|
|
$updated['is_notice'] = $camera_status ? 0 : 1; |
|
|
|
} else { |
|
|
|
continue; |
|
|
|
} |
|
|
|
} else { |
|
|
|
$updated['is_notice'] = 0; |
|
|
|
} |
|
|
|
|
|
|
|
AdminNotice::query()->where('id', $item['id'])->update( |
|
|
|
$updated |
|
|
|
); |
|
|
|
unset($item['is_notice'], $item['updated_at'], $item['camera_id']); |
|
|
|
$data[] = $item; |
|
|
|
} |
|
|
|
return $data; |
|
|
|
} |
|
|
|
return []; |
|
|
|
} |
|
|
|
} |
|
|
|
|