在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实现与ASP Banner组件相似的类
Oct 09 PHP
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
May 25 PHP
PHP 关于访问控制的和运算符优先级介绍
Jul 08 PHP
PHP引用(&)各种使用方法实例详解
Mar 20 PHP
php随机显示指定文件夹下图片的方法
Jul 13 PHP
php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
Dec 21 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
Mar 08 PHP
php使用glob函数遍历文件和目录详解
Sep 23 PHP
php分页原理 分页代码 分页类制作教程
Sep 23 PHP
浅析php-fpm静态和动态执行方式的比较
Nov 09 PHP
PHP开发之用微信远程遥控服务器
Jan 25 PHP
PHP ob缓存以及ob函数原理实例解析
Nov 13 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自定义函数实现二维数组排序功能
2016/07/20 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
PHP实现的XXTEA加密解密算法示例
2018/08/28 PHP
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
读jQuery之三(构建选择器)
2011/06/11 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
javascript实现根据身份证号读取相关信息
2014/12/17 Javascript
jQuery实现的支持IE的html滑动条
2015/03/16 Javascript
js实现星星打分效果的方法
2020/07/05 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
JavaScript数据存储 Cookie篇
2016/07/02 Javascript
javascript输出AscII码扩展集中的字符方法
2016/12/26 Javascript
jQuery中DOM节点删除之empty与remove
2017/01/20 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
[03:41]DOTA2上海特锦赛小组赛第三日recap精彩回顾
2016/02/28 DOTA
Python中使用中文的方法
2011/02/19 Python
Python中生成器和yield语句的用法详解
2015/04/17 Python
python实现的二叉树定义与遍历算法实例
2017/06/30 Python
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
对numpy Array [: ,] 的取值方法详解
2018/07/02 Python
Pandas统计重复的列里面的值方法
2019/01/30 Python
python对象与json相互转换的方法
2019/05/07 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
python实现计算图形面积
2021/02/22 Python
利用python实现汉诺塔游戏
2021/03/01 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
逃课上网检讨书
2014/02/20 职场文书
预备党员2014全国两会学习心得体会
2014/03/10 职场文书
争先创优演讲稿
2014/09/15 职场文书
优秀班主任申报材料
2014/12/16 职场文书
护士自荐信范文
2015/03/25 职场文书
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL
MySQL新手入门进阶语句汇总
2022/09/23 MySQL