在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 相关文章推荐
简单易用的计数器(数据库)
Oct 09 PHP
xajax写的留言本
Nov 25 PHP
php调用dll的实例操作动画与代码分享
Aug 14 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
Oct 08 PHP
常用PHP数组排序函数归纳
Aug 08 PHP
PHP new static 和 new self详解
Feb 19 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
Apr 26 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
Aug 15 PHP
PHP检测一个数组有没有定义的方法步骤
Jul 20 PHP
PHP 自动加载类原理与用法实例分析
Apr 14 PHP
基于PHP实现用户在线状态检测
Nov 10 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
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
php下过滤HTML代码的函数
2007/12/10 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
2013/05/10 PHP
php定时计划任务的实现方法详解
2013/06/06 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
js改变embed标签src值的方法
2015/04/10 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
Easyui使用Dialog行内按钮布局的实例
2017/07/27 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
Angular实现的简单定时器功能示例
2017/12/28 Javascript
ios设备中angularjs无法改变页面title的解决方法
2018/09/13 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
微信小程序实现一张或多张图片上传(云开发)
2019/09/25 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
Python在线运行代码助手
2016/07/15 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
Python加载带有注释的Json文件实例
2018/05/23 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
Python常用库Numpy进行矩阵运算详解
2020/07/21 Python
法院实习人员自我鉴定
2013/09/26 职场文书
专业毕业生个性的自我评价
2013/10/03 职场文书
服装设计专业自荐书范文
2013/12/30 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
秋冬农业生产标语
2014/10/09 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
市场督导岗位职责
2015/04/10 职场文书
郭明义观后感
2015/06/08 职场文书
辩论会主持词
2015/07/03 职场文书