在laravel中实现事务回滚的方法


Posted in PHP onOctober 10, 2019

之前做项目用到了事务回滚这个机制。我把代码贴出来多多交流给点意见,我用的是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中实现事务回滚的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
一键删除顽固的空文件夹 软件下载
Jan 26 PHP
网站用php实现paypal整合方法
Nov 28 PHP
php生成图形(Libchart)实例
Nov 06 PHP
php使用Jpgraph绘制柱形图的方法
Jun 10 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
Jul 31 PHP
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
Oct 09 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
简单谈谈PHP中的trait
Feb 25 PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 PHP
PHP lcfirst()函数定义与用法
Mar 08 PHP
laravel实现上传图片并在页面显示的例子
Oct 14 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
Feb 07 PHP
laravel Model 执行事务的实现
Oct 10 #PHP
laravel框架模型、视图与控制器简单操作示例
Oct 10 #PHP
laravel框架数据库配置及操作数据库示例
Oct 10 #PHP
Laravel 关联模型-关联新增和关联更新的方法
Oct 10 #PHP
Laravel 实现关系模型取出需要的字段
Oct 10 #PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
Oct 10 #PHP
laravel框架查询数据集转为数组的两种方法
Oct 10 #PHP
You might like
Javascript 对象的解释
2008/11/24 Javascript
js 图片轮播(5张图片)
2008/12/30 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
jQuery中on()方法用法实例
2015/01/19 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
微信小程序 侧滑删除(左滑删除)
2017/05/23 Javascript
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
Python实现简单的可逆加密程序实例
2015/03/05 Python
Python日期的加减等操作的示例
2017/08/15 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
python+tkinter实现学生管理系统
2019/08/20 Python
Linux下通过python获取本机ip方法示例
2019/09/06 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
2020/03/24 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
Python 制作查询商品历史价格的小工具
2020/10/20 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
python实现经典排序算法的示例代码
2021/02/07 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
浅谈CSS3 动画卡顿解决方案
2019/01/02 HTML / CSS
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
html5利用canvas实现颜色容差抠图功能
2019/12/23 HTML / CSS
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
娇韵诗法国官网:Clarins法国
2019/01/29 全球购物
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
一份软件工程师的面试试题
2016/02/01 面试题
维护民族团结演讲稿
2014/08/27 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
小学生校园广播稿
2014/09/28 职场文书
受资助学生感谢信
2015/01/21 职场文书
责任书格式
2015/01/29 职场文书
学校工会工作总结2015
2015/05/19 职场文书
Java异常体系非正常停止和分类
2022/06/14 Java/Android