在 return 前开始事务和提交事务,回滚
//开启事务
DB::beginTransaction();//开启事务
try {
$order_data = Order::where('order_no', $order_no)->first();
$data = [
'self_id' => $order_data['self_id'],//个体户id
'service_id' => 6,//服务id 升级服务
'order_no' => $order_no,//服务id
'status' => 2,//1 未开始 ,2未过期,3过期
'type' => 2,
'start_at' => date('Y-m-d H:i:s'),
'end_at' => $end_at,
'created_at' => date('Y-m-d H:i:s'),
];
$result = SelfService::insertGetId($data);
$result1 = InvoicePerson::where('id', $this->person['id'])->update(['book_keep_vip' => 1, 'updated_at' => date('Y-m-d H:i:s')]);
if (!$result || !$result1) {
DB::rollBack();//错误 回滚事务
return LuoyeResponse::fail(1005, '生成失败');
DB::commit();//提交事务
}
return LuoyeResponse::success(0, '订单完成', 1, $order_no);
} catch (\Exception $e) {
DB::rollBack();//错误 回滚事务
return LuoyeResponse::error(9001, '订单完成异常', $e->getMessage());
}
PHP 事务
最新推荐文章于 2024-05-04 14:24:06 发布