Browse Source

防虫点击

sunhao 5 years ago
parent
commit
3a8da7eb37
2 changed files with 50 additions and 0 deletions
  1. 12 0
      app/Http/Controllers/Admin/OrderController.php
  2. 38 0
      app/RedisModel.php

+ 12 - 0
app/Http/Controllers/Admin/OrderController.php

@@ -11,6 +11,7 @@ use App\Http\Controllers\Controller;
11 11
 use App\Logs;
12 12
 use App\Order;
13 13
 use App\Oplog;
14
+use App\RedisModel;
14 15
 use Illuminate\Http\Request;
15 16
 use Illuminate\Support\Facades\DB;
16 17
 
@@ -451,6 +452,17 @@ class OrderController extends Controller
451 452
             'warehouse.required'           => '仓库必须选择',                   
452 453
             'warehouse.min'           => '仓库必须选择',                   
453 454
         ]);
455
+
456
+        //redis防重复数据
457
+        $phone = $request->input('receiverMobile');
458
+        $redisKey = 'seafood.order_phone_add.'.$phone;
459
+        $res = RedisModel::setnx($redisKey, 1);
460
+        if( $res == 0 ){
461
+            $msg = '操作过于频繁,请一分钟后继续操作';
462
+            return redirect('/admin/order/index')->with('info', $msg);
463
+        }
464
+        $res = RedisModel::expire( $redisKey, 60 );
465
+
454 466
         //数据库-新增数据
455 467
         $order = array();
456 468
         $order['eshopCode'] = '99|34881'; //默认

+ 38 - 0
app/RedisModel.php

@@ -0,0 +1,38 @@
1
+<?php
2
+
3
+namespace App;
4
+
5
+use Illuminate\Database\Eloquent\Model;
6
+use Redis;
7
+
8
+class RedisModel extends Model
9
+{
10
+    public static $redis;
11
+    private static function _init(){
12
+        if( empty(self::$redis ) ){
13
+            self::$redis = new Redis();
14
+            self::$redis->connect(config('constants.REDIS_IP'),config('constants.REDIS_PORT'));//链接
15
+            self::$redis->auth(config('constants.REDIS_PASSWORD'));//密码
16
+        }
17
+        return self::$redis ;
18
+    }
19
+    public static function get( $key ){
20
+        $redis = self::_init();
21
+        return $redis->get($key);
22
+    }
23
+
24
+    public static function set( $key, $data){
25
+        $redis = self::_init();
26
+        return $redis->set( $key, $data);
27
+    }
28
+
29
+    public static function expire( $key, $time = 60 ){
30
+        $redis = self::_init();
31
+        return $redis->expire( $key, $time );
32
+    }
33
+
34
+    public static function setnx( $key, $data){
35
+        $redis = self::_init();
36
+        return $redis->setnx( $key, $data);
37
+    }
38
+}