xiaogang 4 年之前
父節點
當前提交
645aba11df
共有 3 個文件被更改,包括 41 次插入0 次删除
  1. 27 0
      app/Http/Controllers/Api/UserController.php
  2. 13 0
      app/Models/UserPhotoDestroy.php
  3. 1 0
      routes/api.php

+ 27 - 0
app/Http/Controllers/Api/UserController.php

xqd xqd
@@ -6,11 +6,13 @@ use App\Http\Params\ProblemParam;
 use App\Models\User;
 use App\Models\UserInfoModel;
 use App\Models\UserInviteLog;
+use App\Models\UserPhotoDestroy;
 use App\Models\UserVipLogModel;
 use App\Models\VipConfig;
 use App\Models\VipModel;
 use App\Services\UserService;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Validator;
 use PHPUnit\Util\Exception;
@@ -266,6 +268,31 @@ class UserController extends Controller
         return response()->json(['message'=>'删除成功']);
     }
 
+    /**
+     * 阅后即焚
+     */
+    public function photo_destroy(Request $request){
+        try {
+            if(empty($request->url)){
+                throw new Exception("参数错误");
+            }
+            $user = auth('api')->user();
+
+            $lock = Cache::lock('photo_destroy'.$user->id, 1);
+            if ($lock->get()) {
+                if(!UserPhotoDestroy::query()->where(['user_id'=>$user->id,'url'=>$request->url])->first()){
+                    UserPhotoDestroy::query()->create(['user_id'=>$user->id,'url'=>$request->url,'atime'=>date("Y-m-d H:i:s")]);
+                }
+                $lock->release();
+            }else{
+                throw new Exception("请求太频繁");
+            }
+        }catch (\Exception $exception){
+            return $this->response->errorForbidden($exception->getMessage());
+        }
+        return response()->json(['message'=>'已销毁']);
+    }
+
 
 
     /**

+ 13 - 0
app/Models/UserPhotoDestroy.php

xqd
@@ -0,0 +1,13 @@
+<?php
+
+
+namespace App\Models;
+
+
+class UserPhotoDestroy extends BaseModel
+{
+    protected $table = 'users_photo_destroy';
+    public $timestamps = false;
+    protected $fillable = ['user_id', 'url','atime'];
+
+}

+ 1 - 0
routes/api.php

xqd
@@ -116,6 +116,7 @@ $api->version('v1', [
             $api->post('/get_invite_list', 'UserController@get_invite_list')->name('user.get_invite_list');
             $api->get('/receive_day', 'UserController@receive_day')->name('user.receive_day');
             $api->post('/del_file', 'UserController@del_file')->name('user.del_file');
+            $api->post('/photo_destroy', 'UserController@photo_destroy')->name('user.photo_destroy');
         });
 
         /*