Browse Source

用户消耗关系卡bug

lizhen_gitee 1 year ago
parent
commit
00be2ea701
1 changed files with 8 additions and 6 deletions
  1. 8 6
      application/api/controller/Relation.php

+ 8 - 6
application/api/controller/Relation.php

@@ -75,11 +75,6 @@ class Relation extends Api
         }
         $relation_name = $relation['name'];
 
-        //检查关系卡数量
-        $cardnum = Db::name('user_decorate_relation')->where('user_id',$this->auth->id)->where('is_using',0)->find();
-        if(empty($cardnum)){
-            $this->error('关系卡数量不足');
-        }
 
 
         //检查这两个人的已有关系
@@ -150,8 +145,15 @@ class Relation extends Api
 
         Db::startTrans();
 
+        //检查关系卡数量
+        $cardnum = Db::name('user_decorate_relation')->where('user_id',$this->auth->id)->where('is_using',0)->order('id desc')->lock(true)->find();
+        if(empty($cardnum)){
+            Db::rollback();
+            $this->error('关系卡数量不足');
+        }
+
         //扣掉一个关系卡
-        $use_card = Db::name('user_decorate_relation')->where('user_id',$this->auth->id)->where('is_using',0)->update(['is_using'=>1,'updatetime'=>time()]);
+        $use_card = Db::name('user_decorate_relation')->where('id',$cardnum['id'])->update(['is_using'=>1,'updatetime'=>time()]);
         if(!$use_card){
             Db::rollback();
             $this->error('关系申请失败');