xiaogang 4 年之前
父节点
当前提交
8c6dcc6d76
共有 1 个文件被更改,包括 19 次插入13 次删除
  1. 19 13
      app/Http/Controllers/Api/DynamicController.php

+ 19 - 13
app/Http/Controllers/Api/DynamicController.php

xqd
@@ -52,19 +52,25 @@ class DynamicController extends Controller
         DB::beginTransaction();
         try {
             $user = auth('api')->user();
-            $dynamicParam = new DynamicParam();
-            $dynamicParam->user_id = $user->id;
-            $dynamicParam->content = htmlspecialchars($request->post('content'));
-            $dynamicParam->img_url = $request->post('img_url');
-            $dynamicParam->type = $request->post('type');
-            $dynamicParam->status = 1;
-            $dynamicParam->zan_num = 0;
-            $dynamicParam->tag = $request->post('tag');
-            $dynamicParam->city = $request->post('city');
-            $dynamicParam->latitude = $request->post('latitude');
-            $dynamicParam->longitude = $request->post('longitude');
-            $this->dynamicService->release($dynamicParam);
-            DB::commit();
+            $lock = Cache::lock('dynamic-release'.$user->id, 1);
+            if ($lock->get()) {
+                $dynamicParam = new DynamicParam();
+                $dynamicParam->user_id = $user->id;
+                $dynamicParam->content = htmlspecialchars($request->post('content'));
+                $dynamicParam->img_url = $request->post('img_url');
+                $dynamicParam->type = $request->post('type');
+                $dynamicParam->status = 1;
+                $dynamicParam->zan_num = 0;
+                $dynamicParam->tag = $request->post('tag');
+                $dynamicParam->city = $request->post('city');
+                $dynamicParam->latitude = $request->post('latitude');
+                $dynamicParam->longitude = $request->post('longitude');
+                $this->dynamicService->release($dynamicParam);
+                DB::commit();
+                $lock->release();
+            }else{
+                throw new Exception("请求太频繁");
+            }
         }catch (\Exception $exception){
             DB::rollBack();
             return $this->response->errorForbidden($exception->getMessage());