getMessage()); return false; } } public static function delete(array $params): void { $id = (int)$params['id']; PagePopup::destroy($id); // 同时清理日志 PagePopupLog::where('popup_id', $id)->delete(); } public static function detail(array $params): array { return PagePopup::findOrEmpty((int)$params['id'])->toArray(); } public static function updateStatus(array $params): bool { PagePopup::update([ 'id' => (int)$params['id'], 'status' => (int)$params['status'], ]); return true; } /** * 字段白名单过滤 + 时间格式归一化 */ private static function filterFields(array $params): array { $data = []; foreach (self::$fields as $f) { if (array_key_exists($f, $params)) { $data[$f] = $params[$f]; } } // start_time / end_time 支持字符串日期,统一转时间戳 foreach (['start_time', 'end_time'] as $tf) { if (isset($data[$tf]) && !is_numeric($data[$tf])) { $ts = strtotime((string)$data[$tf]); $data[$tf] = $ts ?: 0; } } return $data; } }