'system_config'])->value('value'); $config = json_decode($config, true); return view("index", ['logo' => $config['logo']]); } public function header(Request $request): Response { $connection = $request->connection; $id = Timer::add(1, function () use ($connection, &$id) { if ($connection->getStatus() != TcpConnection::STATUS_ESTABLISHED) { Timer::del($id); } $connection->send(new ServerSentEvents(["data" => json_encode(['date'=>date('Y-m-d H:i:s')])])); }); return \response("", 200, [ 'Content-Type' => 'text/event-stream', 'Cache-Control' => 'no-cache', 'Connection' => 'keep-alive', ]); } public function sse() { return view("sse"); } //获取配置参数 public function getOptions(): Response { $options = Option::where(['name' => 'system_config'])->value('value'); $config = json_decode($options, true); $logo = $config['logo']; unset($logo["title"]); $config['banner'] = ImgSrcByArr($config['banner']); foreach ($config['banner'] as &$banner) { $banner = explode(",", $banner); } $link = Link::orderBy("id", "asc")->select(["title", "url"])->get(); return Success(['options' => ImgSrcByArr($logo), 'banner' => $config['banner'], 'link' => $link]); } //产品分类 && 重磅新品 public function getProductCate(): Response { $cate = ProductCate::where(['pid' => 0])->orderBy("id")->select(["id", "title", "e_title"])->get()->toArray(); $firstCate = reset($cate); $productList = Product::where(['cid' => $firstCate['id']])->select(["cover", "name", "label", "new", "url", "property", "corner_mark"])->get(); $childrenCate = ProductCate::whereIn("pid", array_column($cate, 'id'))->select(["id", "title", "pid", "e_title"])->orderBy("id")->get(); $childrenList = []; foreach ($childrenCate as $item) { $childrenList[$item['pid']][] = $item; } foreach ($productList as $product) { $cover = explode(",", $product->cover); foreach ($cover as &$item) { $item = ImgSrc($item); } $product->cover = $cover; } foreach ($cate as &$c) { $c['children'] = $childrenList[$c['id']] ?? []; } return Success(['cate' => $cate, 'productList' => $productList]); } //产品列表0 public function getProductList(Request $request): Response { $cid = $request->get('cid', 0); $cate = ProductCate::where(['id' => $cid])->first(); if (!$cate) return Error("参数异常!"); $cateList = []; if ($cate->pid == 0) { $cateList = ProductCate::where(['pid' => $cate->id])->pluck("id")->toArray(); } $cateList[] = $cate->id; $projectList = Product::whereIn("cid", $cateList)->select(["cover", "name", "label", "new", "url", "property", "corner_mark"])->orderBy("id", "desc")->paginate($request->get("per_page", 6)); foreach ($projectList->items() as &$item) { $item->cover = ImgSrc($item->cover); $item->cover = explode(",", $item->cover); } return Success([ 'data' => $projectList->items(), 'total' => $projectList->total(), 'current_page' => $projectList->currentPage(), 'last_page' => $projectList->lastPage(), ]); } }