婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 在laravel中實現事務回滾的方法

在laravel中實現事務回滾的方法

熱門標簽:銅川電話機器人價格 辦理重慶400電話 聊城電話外呼系統公司 德陽中江如何申請400開頭電話 智能電話機器人好公司門薩維 江蘇電商外呼系統運營商 AI電話機器人OEM貼牌 沛縣400電話辦理 青白江地圖標注

之前做項目用到了事務回滾這個機制。我把代碼貼出來多多交流給點意見,我用的是laravel 5.1bane版本的,

public static function createDeal($to_status, $params, $new_balance, $update = true)
  {
    \DB::beginTransaction();
 
 
    try {
      $update_order_status = \DB::table('wallet_order')
                  ->where('order_id', $params['order_id'])
                  ->update(['to_status' => $to_status, 'update_time' => $params['pay_time']]);
      if (!$update_order_status) {
        throw new \Exception("update order error");
      }
 
 
      $create_deal_status = \DB::table('wallet_deal')
                  ->insert($params);
      if (!$create_deal_status) {
        throw new \Exception("create deal error");
        
      }
 
 
      if ($update) {        
        $update_manage_status = self::updateManage(['balance' => $new_balance, 'update_time' => $params['pay_time']], $params['from_user']);
        if (!$update_manage_status) {
          throw new \Exception("update manage error");
        }
      } else {
        $manage_params = [
          'user_id' => intval($params['from_user']),
          'balance' => $new_balance,
          'add_time' => $params['pay_time'],
          'update_time' => $params['pay_time'],
        ];
        $create_manage_status = self::createManage($manage_params);
        if (!$create_manage_status) {
          throw new \Exception("create manage error");
        }
      }
      \DB::commit();
    } catch (\Exception $e) {
		//異常處理進行回滾,自己想對應的業務
      \DB::rollback();
      $trouble_params = [
        'order_id' => $params['order_id'],
        'deal_id' => $params['deal_id'],
        'from_user' => $params['from_user'],
        'to_user' => $params['to_user'],
        'total_amount' => $params['total_amount'],
        'add_time' => $params['pay_time'],
        'type' => $params['type'],
        'to_status' => $to_status
      ];
      \DB::connection('mongodb')
        ->table('wallet_trouble')
        ->insert($trouble_params);
    } finally {
      self::createLog($params, $to_status);
    }
  }

以上這篇在laravel中實現事務回滾的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • laravel5 Eloquent 實現事務方式
  • laravel Model 執行事務的實現
  • laravel 解決多庫下的DB::transaction()事務失效問題

標簽:南寧 濟寧 赤峰 鷹潭 烏魯木齊 迪慶 山南 三亞

巨人網絡通訊聲明:本文標題《在laravel中實現事務回滾的方法》,本文關鍵詞  在,laravel,中,實現,事務,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《在laravel中實現事務回滾的方法》相關的同類信息!
  • 本頁收集關于在laravel中實現事務回滾的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 丹凤县| 西藏| 嘉禾县| 开远市| 岚皋县| 鄂伦春自治旗| 山阴县| 板桥市| 九寨沟县| 景洪市| 鹰潭市| 米易县| 娱乐| 开化县| 宁武县| 三台县| 宁河县| 廉江市| 临夏市| 荔浦县| 麦盖提县| 海阳市| 中宁县| 贵溪市| 万州区| 博罗县| 巩义市| 达拉特旗| 临洮县| 阿尔山市| 阿巴嘎旗| 沂南县| 永年县| 鹤壁市| 萝北县| 中江县| 周至县| 元谋县| 巴东县| 平罗县| 清河县|