xieruidong 2 年之前
父节点
当前提交
1c8e39e3de
共有 2 个文件被更改,包括 4 次插入1 次删除
  1. 3 1
      application/api/controller/mall/Orders.php
  2. 1 0
      thinkphp/library/think/Model.php

+ 3 - 1
application/api/controller/mall/Orders.php

@@ -243,15 +243,17 @@ class Orders extends Api
             'order_info_id|订单'=>['require','integer','gt:0'],
         ]);
         $user=$this->auth->getUser();
-        $orderInfo=$user->orderInfo()->findOrFail($data['order_info_id']);
         Db::startTrans();
+        $orderInfo=$user->orderInfo()->lock(true)->findOrFail($data['order_info_id']);
         $order= Order::lock(true)->where('id',$orderInfo['order_id'])->find();
         if(!$order){
+            Db::rollback();
             $this->error('订单不存在');
         }
         $order->allowRefund();
         $refund=$orderInfo->refund;
         if($refund){
+            Db::rollback();
             $this->error('您已提交,不能再次提交');
         }
         $this->_validate([

+ 1 - 0
thinkphp/library/think/Model.php

@@ -35,6 +35,7 @@ use think\model\relation\MorphTo;
  * @method static Query|static alias($alias)
  * @method static static find($data = null)
  * @method static Query|static with($with)
+ * @method static Query|static lock($lock=false)
  * @method static static|Query findOrFail($data = null)
  * @method static static|Query order($field, $order = null)
  * @method static static|Query whereBetween($field, $data)