public static function make_delta($app_id) { // 获取包信息 $app = Model_App::instance()->get_info_by_id($app_id); if (empty($app)) { Rest_Log::error("{$app_id}对应的记录不存在,无法生成增量包"); throw new Rest_Exception(Rest_Response::HTTP_SERVER_ERROR, "{$app_id}对应的记录不存在,无法生成增量包"); } // 判断当前包是否为强制升级 if (Model_App::instance()->is_force_update($app['force_update'])) { Rest_Log::trace("{$app_id}对应的记录不存在,无法生成增量包"); return; } // 获取当前包之前的X个包 $app_delta_config = Rest_Config::get('appdelta'); $condition = ['client_id' => $app['client_id'], 'platform' => $app['platform'], 'channel' => $app['channel'], 'inner_version < ' => $app['inner_version']]; $src_app_list = Model_App::instance()->get_list($condition, ['inner_version' => 'desc'], 0, $app_delta_config['limit']); if (empty($src_app_list)) { Rest_Log::trace("{$app_id}对应的包列表不存在,就不生成增量包了"); return; } foreach ($src_app_list as $src_app) { self::do_make_delta($src_app, $app); } }