header('app-cli-os')); // 客户端版本 $version = (int) $request->header('app-cli-version', 0); $android = AppVersion::onlyReleased() ->where('os', AppOs::Android) ->latest('version') ->first(); $ios = AppVersion::onlyReleased() ->where('os', AppOs::Ios) ->latest('version') ->first(); switch ($os) { case AppOs::Android: if ($android->version > $version + 1) { if (! $android->isApkUpdate()) { $apkUpdateVersion = AppVersion::onlyReleased() ->where('os', AppOs::Android) ->where('version', '>', $version) ->where('update_strategy', AppUpdateStrategy::Apk) ->latest('version') ->first(); // 全量包更新 if ($apkUpdateVersion) { if ((string) $android->apk_url !== '') { $android->update_strategy = AppUpdateStrategy::Apk; } else { $android = $apkUpdateVersion; } } } } break; case AppOs::Ios: if ($ios->version > $version + 1) { if (! $ios->isApkUpdate()) { $apkUpdateVersion = AppVersion::onlyReleased() ->where('os', AppOs::Ios) ->where('version', '>', $version) ->where('update_strategy', AppUpdateStrategy::Apk) ->latest('version') ->first(); // 全量包更新 if ($apkUpdateVersion) { if ((string) $ios->apk_url !== '') { $ios->update_strategy = AppUpdateStrategy::Apk; } else { $ios = $apkUpdateVersion; } } } } break; } return [ 'android' => $android ? AppVersionResource::make($android) : null, 'ios' => $ios ? AppVersionResource::make($ios) : null, ]; } }