500, 'device_model' => 255, 'app_version' => 100, 'app_version_name' => 100, 'user_agent' => 65535] as $field => $limit) { if (isset($data[$field]) && (!is_string($data[$field]) || mb_strlen($data[$field]) > $limit)) { return Base::retError('参数错误'); } } $version = empty($data['app_version']) ? '' : (($data['app_version_name'] ?? '') . " ({$data['app_version']})"); if (mb_strlen($version) > 100 || strlen($data['user_agent'] ?? '') > 65535) { return Base::retError('参数错误'); } DeviceRegistry::update($user->userid, [ 'device_id' => $deviceId, 'vendor' => $data['vendor'], 'platform' => $platform, 'device' => $data['device_model'] ?? '', 'version' => $version, 'ua' => $data['user_agent'] ?? '', 'is_notified' => in_array($data['is_notified'] ?? false, [true, 'true', 1, '1'], true) ? 1 : 0, ], $data['push_token'] ?? ''); return Base::retSuccess('保存成功'); } }