xiaogang %!s(int64=4) %!d(string=hai) anos
pai
achega
f0b801b133
Modificáronse 1 ficheiros con 11 adicións e 6 borrados
  1. 11 6
      app/Http/Controllers/Api/DynamicController.php

+ 11 - 6
app/Http/Controllers/Api/DynamicController.php

xqd xqd
@@ -10,6 +10,7 @@ use App\Http\Params\UserReportParam;
 use App\Models\Banner;
 use App\Services\DynamicService;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Validator;
 
@@ -133,14 +134,18 @@ class DynamicController extends Controller
      * 动态点赞
      */
     public function zan(Request $request){
-        DB::beginTransaction();
         try {
             $user = auth('api')->user();
-            $dynamic_zan_param = new DynamicZanParam();
-            $dynamic_zan_param->user_id = $user->id;
-            $dynamic_zan_param->dynamic_id = $request->id;
-            $zan = $this->dynamicService->zan($dynamic_zan_param);
-            DB::commit();
+            $lock = Cache::lock('dynamic-zan'.$user->id, 1);
+            if ($lock->get()) {
+                DB::beginTransaction();
+                $dynamic_zan_param = new DynamicZanParam();
+                $dynamic_zan_param->user_id = $user->id;
+                $dynamic_zan_param->dynamic_id = $request->id;
+                $zan = $this->dynamicService->zan($dynamic_zan_param);
+                DB::commit();
+                $lock->release();
+            }
         }catch (\Exception $exception){
             DB::rollBack();
             return $this->response->errorForbidden($exception->getMessage());