作者 赵彬吉

update

@@ -60,8 +60,8 @@ class InquiryFormData extends Base @@ -60,8 +60,8 @@ class InquiryFormData extends Base
60 unset($data['__amp_source_origin']); 60 unset($data['__amp_source_origin']);
61 } 61 }
62 $sign = md5(json_encode($sign_data)); 62 $sign = md5(json_encode($sign_data));
63 - //5分钟内是否有重复数据  
64 - $is_exist = self::where('sign', $sign)->where('created_at', '>', date('Y-m-d H:i:s', strtotime('-5 minute')))->first(); 63 + //30分钟内是否有重复数据
  64 + $is_exist = self::where('sign', $sign)->where('created_at', '>', date('Y-m-d H:i:s', strtotime('-30 minute')))->first();
65 if($is_exist){ 65 if($is_exist){
66 return 0; 66 return 0;
67 } 67 }
@@ -17,6 +17,7 @@ use App\Models\SyncSubmitTask\SyncSubmitTask; @@ -17,6 +17,7 @@ use App\Models\SyncSubmitTask\SyncSubmitTask;
17 use App\Models\Visit\Visit; 17 use App\Models\Visit\Visit;
18 use App\Models\Workchat\MessagePush; 18 use App\Models\Workchat\MessagePush;
19 use App\Utils\LogUtils; 19 use App\Utils\LogUtils;
  20 +use Illuminate\Support\Facades\Cache;
20 use Illuminate\Support\Facades\Http; 21 use Illuminate\Support\Facades\Http;
21 use Illuminate\Support\Facades\Log; 22 use Illuminate\Support\Facades\Log;
22 use Illuminate\Support\Facades\URL; 23 use Illuminate\Support\Facades\URL;
@@ -188,6 +189,22 @@ class SyncSubmitTaskService @@ -188,6 +189,22 @@ class SyncSubmitTaskService
188 */ 189 */
189 public function inquiry($data, $date, $task_id, $traffic = 0) 190 public function inquiry($data, $date, $task_id, $traffic = 0)
190 { 191 {
  192 + //ip 一分钟请求3次 就半小时内不写入这个ip了
  193 + $ip_cache_key = "inquiry_{$data['project_id']}_{$data['ip']}";
  194 + $ip_lock_cache_key = "inquiry_{$data['project_id']}_{$data['ip']}_lock";
  195 + if (!Cache::get($ip_cache_key)) {
  196 + Cache::put($ip_cache_key, 0, 60);
  197 + }
  198 + $num = Cache::increment($ip_cache_key);
  199 + if($num > 2){
  200 + //这个ip 锁半个小时
  201 + Cache::put($ip_lock_cache_key, 1, 1800);
  202 + }
  203 + if(Cache::get($ip_lock_cache_key)){
  204 + Log::channel('inquiry')->info($task_id . '询盘ip重复锁定', [$data]);
  205 + return true;
  206 + }
  207 +
191 //数组key转为小写 208 //数组key转为小写
192 $data['data'] = array_change_key_case($data['data'], CASE_LOWER); 209 $data['data'] = array_change_key_case($data['data'], CASE_LOWER);
193 210