HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.ankua.asia/beike/Admin/Http/Controllers/HomeController.php
<?php

namespace Beike\Admin\Http\Controllers;

use App\Http\Controllers\Controller;
use Beike\Admin\Repositories\DashboardRepo;
use Beike\Admin\Repositories\Report\OrderReportRepo;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Str;

class HomeController extends Controller
{
    /**
     * @throws \Exception
     */
    public function index(): mixed
    {
        $data = [
            'products'     => DashboardRepo::getProductData(),
            'orders'       => DashboardRepo::getOrderData(),
            'customers'    => DashboardRepo::getCustomerData(),
            'order_totals' => DashboardRepo::getTotalData(),
            'order_trends' => [
                'latest_month' => OrderReportRepo::getLatestMonth(),
                'latest_week'  => OrderReportRepo::getLatestWeek(),
                'latest_year'  => OrderReportRepo::getLatestYear(),
            ],
        ];

        return view('admin::pages.home', $data);
    }

    /**
     * 通过关键字搜索菜单
     *
     * @return array
     */
    public function menus()
    {
        $keyword = trim(request('keyword'));
        $menus   = [];
        $routes  = Route::getRoutes();
        foreach ($routes as $route) {
            $routeName = $route->getName();
            if (! Str::startsWith($routeName, 'admin')) {
                continue;
            }

            $method = $route->methods()[0];
            if ($method != 'GET') {
                continue;
            }

            $routeName       = str_replace('admin.', '', $routeName);
            $permissionRoute = str_replace('.', '_', $routeName);

            try {
                $url = admin_route($routeName);
            } catch (\Exception $e) {
                $url = '';
            }
            if (empty($url)) {
                continue;
            }

            $title = trans("admin/common.{$permissionRoute}");
            if (stripos($title, 'admin/common.') !== false) {
                continue;
            }

            if ($keyword && stripos($title, $keyword) !== false) {
                $menus[] = [
                    'route' => $routeName,
                    'url'   => admin_route($routeName),
                    'title' => $title,
                ];
            }
        }

        return $menus;
    }
}