在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 相关文章推荐
php 购物车实例(申精)
May 11 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
May 15 PHP
php中日期加减法运算实现代码
Dec 08 PHP
洪恩在线成语词典小偷程序php版
Apr 20 PHP
php类中private属性继承问题分析
Nov 01 PHP
ThinkPHP模板判断输出Present标签用法详解
Jun 30 PHP
PHP生成唯一订单号的方法汇总
Apr 16 PHP
php实现分页显示
Nov 03 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
Mar 14 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
PHP利用百度ai实现文本和图片审核
May 08 PHP
java解析json方法总结
May 16 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
PHP的FTP学习(一)[转自奥索]
2006/10/09 PHP
FCKeditor添加自定义按钮
2008/03/27 PHP
php 学习资料零碎东西
2010/12/04 PHP
一个PHP分页类的代码
2011/05/18 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
php中使用array_filter()函数过滤空数组的实现代码
2014/08/19 PHP
PHP Streams(流)详细介绍及使用
2015/05/12 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
Javascript中的数学函数
2007/04/04 Javascript
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
Jquery 的扩展方法总结
2011/10/01 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
2017/03/10 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
javascript+Canvas实现画板功能
2020/06/23 Javascript
python获取Linux下文件版本信息、公司名和产品名的方法
2014/10/05 Python
python中的协程深入理解
2019/06/10 Python
python实现可变变量名方法详解
2019/07/01 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
骨干教师培训感言
2014/01/16 职场文书
仓库主管岗位职责
2014/03/02 职场文书
幼儿园秋游感想
2014/03/12 职场文书
爱与责任演讲稿
2014/05/20 职场文书
学校运动会霸气口号
2014/06/07 职场文书
2014年工人工作总结
2014/11/25 职场文书