'hint',// 提示信息 2 => 'support'// 支援信息 ]; private static array $msgTypeArr = [ 1 => 'touch',// 压线 2 => 'illegal',// 违泊 3 => 'offline',// 设备离线 4 => 'vip',// VIP 5 => 'task'// 任务切换 ]; public function __construct(OperationLogService $logService) { parent::__construct($logService); $this->logService->menuTitle = 'alarm_notice'; } /** * @return array|string[] */ public static function getAlarmType(): array { $alarmTypeArr = self::$alarmTypeArr; foreach ($alarmTypeArr as $key => $value) { $alarmTypeArr[$key] = __('service.notice.' . $value); } return $alarmTypeArr; } /** * @return array|string[] */ public static function getMsgType(): array { $msgTypeArr = self::$msgTypeArr; foreach ($msgTypeArr as $key => $value) { $msgTypeArr[$key] = __('service.notice.' . $value); } return $msgTypeArr; } public function getItem($item) { $alarmTypeArr = self::getAlarmType(); $msgTypeArr = self::getMsgType(); $item['alarm_type'] = $alarmTypeArr[$item['alarm_type']]; $item['msg_type'] = $msgTypeArr[$item['msg_type']]; $item['parking_space_number'] = ''; $item['license_plate'] = ''; $ParkingSpace = ParkingSpace::query()->find( $item['space_id'], ['number', 'license_plate_id'] ); if ($ParkingSpace) { $item['parking_space_number'] = $ParkingSpace['number']; $item['license_plate'] = ParkingLicensePlate::getNumber( $ParkingSpace['license_plate_id'] ); $item['recognition'] = $ParkingSpace['recognition']; $item['entry_end_type'] = ''; $item['pic_url'] = get_image_url($ParkingSpace['pic_url']); } if (isset($item['floor_id'])) { $item['floor'] = ''; if ($item['floor_id']) { $item['floor'] = AdminFloor::getName($item['floor_id']); } unset($item['floor_id']); } if (isset($item['camera_id'])) { $item['camera_number'] = ''; if ($item['camera_id']) { $item['camera_number'] = ParkingCamera::getNumber($item['camera_id']); } unset($item['camera_id']); } if (isset($item['pattern_id'])) { $item['pattern_name'] = ''; if ($item['pattern_id']) { $item['pattern_name'] = ParkingPattern::getName( $item['pattern_id'] ); } unset($item['pattern_id']); } unset($item['space_id']); return $item; } public function updateConfig($data, $user_id) { try { DB::beginTransaction(); $content = [ 'close_alert' => $data['close_alert'], 'close_all_alert' => $data['close_all_alert'] ]; $model = AdminConfigs::query()->where('name', 'information_setting') ->first(); $oldValues = $model->toArray(); $model->update([ 'content' => $content, 'user_id' => $user_id, 'updated_at' => get_datetime() ]); $this->logService->logUpdated($model, $oldValues, 'config.update'); DB::commit(); return $model; } catch (Exception $e) { DB::rollBack(); throw $e; } } // 添加切换模式消息 public static function addChangeModeNotice($pattern_id, $user_id) { $data = ['pattern_id' => $pattern_id]; self::createData(2, 5, $data, $user_id); } public static function createData($alarm_type, $msg_type, $data, $user_id) { $create = [ 'alarm_time' => date("Y-m-d H:i:s", time()), 'alarm_type' => $alarm_type, 'msg_type' => $msg_type, 'is_read' => 0, 'user_id' => $user_id, 'created_at' => date("Y-m-d H:i:s", time()) ]; if (isset($data['space_id']) && $data['space_id']) { $create['space_id'] = $data['space_id']; } if (isset($data['floor_id']) && $data['floor_id']) { $create['floor_id'] = $data['floor_id']; } if (isset($data['camera_id']) && $data['camera_id']) { $create['camera_id'] = $data['camera_id']; } if (isset($data['msg_content']) && $data['msg_content']) { $create['msg_content'] = $data['msg_content']; } if (isset($data['pattern_id']) && $data['pattern_id']) { $create['pattern_id'] = $data['pattern_id']; } if (isset($data['camera_ip']) && $data['camera_ip']) { $create['camera_ip'] = $data['camera_ip']; } AdminNotice::query()->create($create); } public function readModel($user_id) { try { DB::beginTransaction(); $where = [ 'user_id' => $user_id, 'is_read' => 0 ]; $ids = AdminNotice::query()->where($where)->pluck('id'); if ($ids) { $update = [ 'is_read' => 1 ]; AdminNotice::query()->whereIn('id', $ids)->update($update); } DB::commit(); } catch (Exception $e) { DB::rollBack(); throw $e; } } }