| 
...
 | 
...
 | 
@@ -11,9 +11,8 @@ | 
| 
 | 
 | 
 use Illuminate\Http\Exceptions\HttpResponseException;
 | 
| 
 | 
 | 
 use Illuminate\Http\JsonResponse;
 | 
| 
 | 
 | 
 use Illuminate\Http\Request;
 | 
| 
 | 
 | 
 use Illuminate\Support\Facades\Log;
 | 
| 
 | 
 | 
 use RecursiveDirectoryIterator;
 | 
| 
 | 
 | 
 use RecursiveIteratorIterator;
 | 
| 
 | 
 | 
 use Illuminate\Support\Facades\Cache;
 | 
| 
 | 
 | 
 use Illuminate\Support\Facades\Validator;
 | 
| 
 | 
 | 
 use ZipArchive;
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 /**
 | 
| 
...
 | 
...
 | 
@@ -52,15 +51,37 @@ protected function error($message = 'error', $status = 400, $data = []) | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     /**
 | 
| 
 | 
 | 
      * 响应response
 | 
| 
 | 
 | 
      * @param array $data
 | 
| 
 | 
 | 
      * @param int $code
 | 
| 
 | 
 | 
      * @param string $msg
 | 
| 
 | 
 | 
      * @param int $result_code
 | 
| 
 | 
 | 
      * @param string $type
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
     public function responseA($data = [], $code = 200, $msg = 'success', $result_code = 200, $type = 'application/json')
 | 
| 
 | 
 | 
     {
 | 
| 
 | 
 | 
         $result = [
 | 
| 
 | 
 | 
             'msg' => $msg,
 | 
| 
 | 
 | 
             'code' => $code,
 | 
| 
 | 
 | 
             'data' => $data,
 | 
| 
 | 
 | 
         ];
 | 
| 
 | 
 | 
         $header = [
 | 
| 
 | 
 | 
             'Content-Type' => $type,
 | 
| 
 | 
 | 
         ];
 | 
| 
 | 
 | 
         $response =  response($result, $result_code, $header);
 | 
| 
 | 
 | 
         throw new HttpResponseException($response);
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     /**
 | 
| 
 | 
 | 
      * 响应
 | 
| 
 | 
 | 
      * @param null $msg
 | 
| 
 | 
 | 
      * @param string $code
 | 
| 
 | 
 | 
      * @param int $code
 | 
| 
 | 
 | 
      * @param array $data
 | 
| 
 | 
 | 
      * @param int $result_code
 | 
| 
 | 
 | 
      * @param string $type
 | 
| 
 | 
 | 
      * @return JsonResponse
 | 
| 
 | 
 | 
      * @return void
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
     public function response($msg = null,string $code = self::SUCCESS,$data = [],$result_code = 200,$type = 'application/json'): JsonResponse
 | 
| 
 | 
 | 
     public function response($msg = null,$code = self::SUCCESS,$data = [],$result_code = 200,$type = 'application/json')
 | 
| 
 | 
 | 
     {
 | 
| 
 | 
 | 
         $result = [
 | 
| 
 | 
 | 
             'msg' => $msg,
 | 
| 
...
 | 
...
 | 
@@ -98,8 +119,10 @@ public function curlGet($url){ | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     /**
 | 
| 
 | 
 | 
      * A端上传验证代码
 | 
| 
 | 
 | 
      * @param Request $request
 | 
| 
 | 
 | 
      * @return string
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
         public function uploadVerifyFile(Request $request): string
 | 
| 
 | 
 | 
         public function uploadVerifyFile(Request $request)
 | 
| 
 | 
 | 
     {
 | 
| 
 | 
 | 
         $domain = $request->getHost();
 | 
| 
 | 
 | 
         $files = $request->allFiles();
 | 
| 
...
 | 
...
 | 
@@ -117,7 +140,7 @@ public function uploadVerifyFile(Request $request): string | 
| 
 | 
 | 
      * @param Request $request
 | 
| 
 | 
 | 
      * @return string
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
     public function uploadAmpVerifyFile(Request $request): string
 | 
| 
 | 
 | 
     public function uploadAmpVerifyFile(Request $request)
 | 
| 
 | 
 | 
     {
 | 
| 
 | 
 | 
         $domain = $request->getHost();
 | 
| 
 | 
 | 
 
 | 
| 
...
 | 
...
 | 
@@ -156,7 +179,6 @@ public function websiteHtml(Request $request){ | 
| 
 | 
 | 
         $requestUrl = $apiUrl."?domain=".$domain."&token=".$token;
 | 
| 
 | 
 | 
         @file_put_contents(storage_path('logs/notify_get_url.log'), date('Y-m-d H:i:s') . "接收到通知:". $requestUrl . PHP_EOL, FILE_APPEND);
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         try {
 | 
| 
 | 
 | 
             $res = $this->curlGet($requestUrl);
 | 
| 
 | 
 | 
             $url = isset($res["data"]["url"]) && !empty($res["data"]["url"]) ? urldecode($res["data"]["url"]) : "";
 | 
| 
...
 | 
...
 | 
@@ -170,9 +192,10 @@ public function websiteHtml(Request $request){ | 
| 
 | 
 | 
         return $this->websiteHtmlHandle($url,$domain);
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 /**
 | 
| 
 | 
 | 
     /**
 | 
| 
 | 
 | 
      * 网站html解压
 | 
| 
 | 
 | 
      * @param $url
 | 
| 
 | 
 | 
      * @param $domain
 | 
| 
 | 
 | 
      * @return string
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
 public function websiteHtmlHandle($url,$domain)
 | 
| 
...
 | 
...
 | 
@@ -237,7 +260,7 @@ public function downLoadFile($url){ | 
| 
 | 
 | 
      * @param $path
 | 
| 
 | 
 | 
      * @return bool
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
     public function deleteDirectory($path): bool
 | 
| 
 | 
 | 
     public function deleteDirectory($path)
 | 
| 
 | 
 | 
     {
 | 
| 
 | 
 | 
         if (!is_dir($path)) {
 | 
| 
 | 
 | 
             try {
 | 
| 
...
 | 
...
 | 
@@ -265,31 +288,156 @@ public function deleteDirectory($path): bool | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     /**
 | 
| 
 | 
 | 
      * 客户访问埋点接口
 | 
| 
 | 
 | 
      * @param Request $request
 | 
| 
 | 
 | 
      * @return JsonResponse
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
     public function customerVisit(Request $request)
 | 
| 
 | 
 | 
     {
 | 
| 
 | 
 | 
         $data = $request->all();
 | 
| 
 | 
 | 
         $data["referrer_url"] = !empty($data["referrer_url"]) ? $data["referrer_url"] : "";
 | 
| 
 | 
 | 
         $data["url"] = !empty($data["url"]) ? $data["url"] : "";
 | 
| 
 | 
 | 
         $data["domain"] = !empty($data["domain"]) ? $data["domain"] : "";
 | 
| 
 | 
 | 
         $data["ip"] = $request->getClientIp();
 | 
| 
 | 
 | 
         $data["user_agent"] = $request->userAgent();
 | 
| 
 | 
 | 
         if (empty($data["referrer_url"]) || empty($data["url"]) || empty($data["domain"])){
 | 
| 
 | 
 | 
             return response()->json([
 | 
| 
 | 
 | 
                 'code' => self::SUCCESS,
 | 
| 
 | 
 | 
                 'msg' => 'success',
 | 
| 
 | 
 | 
             ]);
 | 
| 
 | 
 | 
         }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         //转发data
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         //埋点成功
 | 
| 
 | 
 | 
         return response()->json([
 | 
| 
 | 
 | 
             'code' => self::SUCCESS,
 | 
| 
 | 
 | 
             'msg' => 'success',
 | 
| 
 | 
 | 
         ]);
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     /**
 | 
| 
 | 
 | 
      * 接口
 | 
| 
 | 
 | 
      * @param Request $request
 | 
| 
 | 
 | 
      * @return string
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
     public function trafficVisit(Request $request)
 | 
| 
 | 
 | 
     {
 | 
| 
 | 
 | 
         //获取参数
 | 
| 
 | 
 | 
         $data = $request->all();
 | 
| 
 | 
 | 
         $data["id"] = $request->input('ip');
 | 
| 
 | 
 | 
         $data["url"] = $request->input('url');
 | 
| 
 | 
 | 
         $data["device_port"] = intval($request->input('device_port'));
 | 
| 
 | 
 | 
         $data["referrer_url"] = $request->input('referrer_url');
 | 
| 
 | 
 | 
         $data["user_agent"] = $request->input('user_agent');
 | 
| 
 | 
 | 
         if (empty($data["id"]) || empty($data["url"]) || empty($data["referrer_url"]) || empty($data["user_agent"])){
 | 
| 
 | 
 | 
             return response()->json([
 | 
| 
 | 
 | 
                 'code' => self::SUCCESS,
 | 
| 
 | 
 | 
                 'msg' => 'success',
 | 
| 
 | 
 | 
             ]);
 | 
| 
 | 
 | 
         }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         //转发data
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         //成功
 | 
| 
 | 
 | 
         return response()->json([
 | 
| 
 | 
 | 
             'code' => self::SUCCESS,
 | 
| 
 | 
 | 
             'msg' => 'success',
 | 
| 
 | 
 | 
         ]);
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     /**
 | 
| 
 | 
 | 
      * C端表单提交 询盘信息
 | 
| 
 | 
 | 
      * @param Request $request
 | 
| 
 | 
 | 
      * @return mixed
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
     public function inquiry(Request $request)
 | 
| 
 | 
 | 
     {
 | 
| 
 | 
 | 
         $data = $request->all();
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         $black_ips = ['203.86.233.27', '37.19.221.202'];
 | 
| 
 | 
 | 
         if(in_array(request()->getClientIp(), $black_ips)){
 | 
| 
 | 
 | 
             $this->success();
 | 
| 
 | 
 | 
         }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         //同一ip 5秒内超过5次 限制1小时
 | 
| 
 | 
 | 
         $ip = $request->ip();
 | 
| 
 | 
 | 
         $lock_key = 'lock_ip_' . $ip;
 | 
| 
 | 
 | 
         $rate_key = 'rate_limit:' . $ip;
 | 
| 
 | 
 | 
         if(Cache::has($lock_key)){
 | 
| 
 | 
 | 
             $this->success();
 | 
| 
 | 
 | 
         }
 | 
| 
 | 
 | 
         if (Cache::has($rate_key)) {
 | 
| 
 | 
 | 
             $count = Cache::get($rate_key);
 | 
| 
 | 
 | 
             if ($count >= 5) {
 | 
| 
 | 
 | 
                 Cache::put($lock_key, 1, 3600);
 | 
| 
 | 
 | 
                 $this->success();
 | 
| 
 | 
 | 
             }
 | 
| 
 | 
 | 
             Cache::increment($rate_key);
 | 
| 
 | 
 | 
         } else {
 | 
| 
 | 
 | 
             Cache::put($rate_key, 1, 5);
 | 
| 
 | 
 | 
         }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         $data["files"] = $request->allFiles();
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         //转发data
 | 
| 
 | 
 | 
         //返回数据
 | 
| 
 | 
 | 
         $res = "";
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         return $this->responseA($res);
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     /**
 | 
| 
 | 
 | 
      * 收集邮箱或者手机号等其他信息
 | 
| 
 | 
 | 
      * @param Request $request
 | 
| 
 | 
 | 
      * @return mixed
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
     public function inquiryOtherInfo(Request $request)
 | 
| 
 | 
 | 
     {
 | 
| 
 | 
 | 
         return $this->inquiry($request);
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     /**
 | 
| 
 | 
 | 
      * 起点表单询盘
 | 
| 
 | 
 | 
      * @param Request $request
 | 
| 
 | 
 | 
      * @return void
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
     public function inquiryQd(Request $request){
 | 
| 
 | 
 | 
         $data = $request->post();
 | 
| 
 | 
 | 
         $data['submit_ip'] = $data['submit_ip'] ? $data['submit_ip'] : '';
 | 
| 
 | 
 | 
         $data['submit_time'] = $data['submit_time'] ? $data['submit_time'] : '';
 | 
| 
 | 
 | 
         $data['refer'] = $data['refer'] ? $data['refer'] : '';
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         //转发data
 | 
| 
 | 
 | 
         //返回数据
 | 
| 
 | 
 | 
         $res = "";
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         return $this->responseA($res);
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
     /**
 | 
| 
 | 
 | 
      * 搜索
 | 
| 
 | 
 | 
      * @param Request $request
 | 
| 
 | 
 | 
      */
 | 
| 
 | 
 | 
     public function search(Request $request)
 | 
| 
 | 
 | 
     {
 | 
| 
 | 
 | 
         $project = $request->get('project');
 | 
| 
 | 
 | 
         $data = $request->all();
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         //获取搜索参数
 | 
| 
 | 
 | 
         $searchContent = '';
 | 
| 
 | 
 | 
         $data["search_content"] = '';
 | 
| 
 | 
 | 
         if (isset($data['s'])) {
 | 
| 
 | 
 | 
             $searchContent = $data['s'];
 | 
| 
 | 
 | 
             $data["search_content"] = $searchContent = $data['s'];
 | 
| 
 | 
 | 
         }
 | 
| 
 | 
 | 
         if (isset($data['search'])) {
 | 
| 
 | 
 | 
             $searchContent = $data['search'];
 | 
| 
 | 
 | 
             $data["search_content"] = $data['search'];
 | 
| 
 | 
 | 
         }
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
         $page = 1;
 | 
| 
 | 
 | 
         if (isset($data['page']) && (int)$data['page'] > 1) {
 | 
| 
 | 
 | 
             $page = (int)$data['page'];
 | 
| 
 | 
 | 
         }
 | 
| 
 | 
 | 
         $data["page"] = isset($data['page']) && (int)$data['page'] > 1 ? (int)$data['page'] : 1;
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 //        $htmlService = new HtmlService();
 | 
| 
 | 
 | 
         //转发data
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 
 | 
| 
 | 
 | 
 //        return $htmlService->getSearchHtml($project, $data, $searchContent, $page);
 | 
| 
 | 
 | 
     }
 | 
| 
 | 
 | 
 } | 
...
 | 
...
 | 
 |