예제 #1
0
 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);
     }
 }