file('file'); if (!$file) { return response()->json(['message' => '没有上传文件'], 422); } $name = strtolower(str_replace(' ', '-', $file->getClientOriginalName())); $array = explode('.', $name); if (!count($array) || count($array) > 2) { return response()->json(['message' => '命名格式不对,不允许文件名中出现 "."'], 422); } $fileName = $array[0] . '_' . date('YmdHis'); $name = $fileName . '.' . $array[1]; $fileData['file_url'] = $file->storeAs(date('Ym'), $name, 'public'); $fileData['file_url'] = $request->input('notAsset') ? sprintf('/storage/%s', $fileData['file_url']) : asset('storage/' . $fileData['file_url']); $fileData['original_name'] = $file->getClientOriginalName(); $fileData['time'] = date('Y-m-d H:i:s'); return response()->json(['message' => '上传成功', 'data' => $fileData]); } public function excelUpload(Request $request) { $file = $request->file('file'); if (!$file) return response()->json(['message' => '没有上传文件'], 422); $name = sprintf('%s.%s', Str::random(40), $file->getClientOriginalExtension()); $fileData['file_url'] = $file->storeAs(date('Ym') . '/' . $file->getClientOriginalExtension(), $name, 'public'); $fileData['original_name'] = $file->getClientOriginalName(); $fileData['time'] = time(); return response()->json(['message' => '上传成功', 'data' => $fileData]); } public function download(Request $request) { $path = str_replace(config('app.url'), '', $request->input('file_url')); if (!file_exists(public_path($path))) { abort(404, '文件不存在'); } return response()->download(public_path($path)); } public function clearProcess($siteId) { SiteProcess::query()->where([ 'site_id' => $siteId ])->whereNotIn('process_id', [1, 2, 12, 7])->delete(); SiteProcess::query()->where(['site_id' => $siteId, 'process_id' => 1])->update([ 'active' => 1 ]); SiteProcess::query()->where(['site_id' => $siteId, 'process_id' => 2])->update([ 'active' => 2 ]); SiteProcess::query()->where(['site_id' => $siteId, 'process_id' => 12])->update([ 'active' => 2 ]); SiteProcess::query()->where(['site_id' => $siteId, 'process_id' => 7])->update([ 'active' => 2 ]); dd('success'); } public function resetTask(Request $request) { $taskId = 63; $task = LinkTask::query()->where(['id' => $taskId])->first(); dd($task); $task->status = 3; $task->save(); LinkTaskDetail::query()->where(['task_id' => $task->id])->update(['status' => 3]); dd('success'); } public function generateReport() { ignore_user_abort(true); set_time_limit(0); $projectYm = date('Ym', strtotime('first day of -1 month')); $rankConn = DB::connection('rank'); $projectIds = $rankConn->table('webmaster_flow')->select(['project_id'])->where(['flow_ym' => $projectYm, 'status' => 1])->pluck('project_id')->toArray(); $taskUrls = []; foreach ($projectIds as $item) { $taskUrls[] = sprintf("https://rank.yinqingli.cn/webmaster/report?projectId=%s", base64_encode($item)); } $client = new Client([ 'verify' => false, 'timeout' => 30 ]); //并发请求链接地址 $requests = function () use ($client, $taskUrls) { foreach ($taskUrls as $item) { if (empty($item)) continue; yield new \GuzzleHttp\Psr7\Request('GET', $item); } }; $result = []; $fails = []; $pool = new Pool($client, $requests(), [ 'concurrency' => 10, //同时并发抓取几个 'fulfilled' => function (Response $response, $index) use (&$result) { $result[] = $index; }, 'rejected' => function (\Throwable $throwable, $index) use (&$fails) { $fails[] = $index; }, ]); $promise = $pool->promise(); $promise->wait(); return response()->json(['message' => '操作成功']); } public function rmCacheKey() { $cacheList = [ CacheConstant::NOW_MONTH_KEY_WORDS_CACHE_KEY, CacheConstant::LAST_MONTH_KEY_WORDS_CACHE_KEY, CacheConstant::LAST_MONTH_BQ_KEY_WORDS_CACHE_KEY, CacheConstant::NOW_MONTH_INQUIRE_CACHE_KEY, CacheConstant::LAST_MONTH_INQUIRE_CACHE_KEY, CacheConstant::LAST_MONTH_BQ_INQUIRE_CACHE_KEY, CacheConstant::NOW_MONTH_FLOW_CACHE_KEY, CacheConstant::LAST_MONTH_FLOW_CACHE_KEY, CacheConstant::LAST_MONTH_BQ_FLOW_CACHE_KEY, ]; foreach ($cacheList as $value) { Cache::forget($value); } return response()->json(['message' => '操作成功']); } public function bulkUpload(Request $request) { $images = []; if ($request->hasFile('files')) { foreach ($request->file('files') as $file) { $name = sprintf('%s.%s', Str::random(40), $file->getClientOriginalExtension()); $fileData['file_url'] = $file->storeAs(date('Ym') . '/' . $file->getClientOriginalExtension(), $name, 'public'); $fileData['file_url'] = $request->input('notAsset') ? sprintf('/storage/%s', $fileData['file_url']) : asset('storage/' . $fileData['file_url']); $fileData['original_name'] = $file->getClientOriginalName(); $fileData['time'] = time(); $images[] = $fileData; } } return response()->json(['message' => '上传成功', 'data' => $images]); } }