芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/www/portal.pulsehost.co.uk/modules/widgets/Overview.php
startOfDay()->toDateString(); $month = Carbon::today()->subMonth()->startOfDay()->toDateString(); $year = Carbon::today()->subYear()->startOfMonth()->startOfDay()->toDateString(); $dates = [ 'today' => '%k', 'month' => '%e %M', 'year' => '%M %Y', ]; $orderData = $completeOrderData = array(); foreach ($dates as $dateType => $format) { $data = Order::where('date', '>', $$dateType) ->select( [ Capsule::raw('date_format(date, \'' . $format . '\') as format_date'), Capsule::raw('COUNT(id) as id_count'), 'status', ] ) ->groupBy('format_date', 'status') ->get(); $xAxisData = $data->pluck('format_date'); $todayData = $completedData = []; foreach ($xAxisData as $xAxisDatum) { $todayData[$xAxisDatum] = $data->where('format_date', $xAxisDatum) ->sum('id_count'); $completedData[$xAxisDatum] = $data->where('format_date', $xAxisDatum) ->where('status', 'Active') ->sum('id_count'); } $orderData[$dateType] = $todayData; $completeOrderData[$dateType] = $completedData; } $incomeData = array(); $results = Capsule::table('tblaccounts') ->select( Capsule::raw("DATE_FORMAT(date, '%k') AS dateTime"), Capsule::raw('SUM(amountin/rate) AS amountIn') ) ->where('date', '>', $today) ->groupBy(Capsule::raw("DATE_FORMAT(date, '%k')")) ->get() ->all(); foreach ($results as $result) { $incomeData['today'][$result->dateTime] = $result->amountIn; } $results = Capsule::table('tblaccounts') ->select( Capsule::raw("DATE_FORMAT(date, '%e %M') AS dateTime"), Capsule::raw('SUM(amountin/rate) AS amountIn') ) ->where('date', '>', $month) ->groupBy(Capsule::raw("DATE_FORMAT(date, '%e %M')")) ->get() ->all(); foreach ($results as $result) { $incomeData['month'][$result->dateTime] = $result->amountIn; } $results = Capsule::table('tblaccounts') ->select( Capsule::raw("DATE_FORMAT(date, '%M %Y') AS dateTime"), Capsule::raw('SUM(amountin/rate) AS amountIn') ) ->where('date', '>', $year) ->groupBy(Capsule::raw("date_format(date, '%M %Y')")) ->get() ->all(); foreach ($results as $result) { $incomeData['year'][$result->dateTime] = $result->amountIn; } return array( 'orders' => array( 'new' => $orderData, 'complete' => $completeOrderData, ), 'revenue' => array( 'income' => $incomeData, ), ); } public function generateOutput($data) { $viewPeriod = App::getFromRequest('viewperiod'); if (!in_array($viewPeriod, array('today', 'month', 'year'))) { $viewPeriod = 'today'; } $orderData = (isset($data['orders']['new'][$viewPeriod])) ? $data['orders']['new'][$viewPeriod] : []; $completedOrderData = []; if (isset($data['orders']['complete'][$viewPeriod])) { $completedOrderData = $data['orders']['complete'][$viewPeriod]; } $incomeData = (isset($data['revenue']['income'][$viewPeriod]))? $data['revenue']['income'][$viewPeriod] : []; $graphLabels = $graphData = $graphData2 = $graphData3 = array(); if ($viewPeriod == 'today') { for ($i = 0; $i <= date("H"); $i++) { $graphLabels[] = date("ga", mktime($i, date("i"), date("s"), date("m"), date("d"), date("Y"))); $graphData[] = isset($orderData[$i]) ? $orderData[$i] : 0; $graphData2[] = isset($incomeData[$i]) ? $incomeData[$i] : 0; $graphData3[] = isset($completedOrderData[$i]) ? $completedOrderData[$i] : 0; } } elseif ($viewPeriod == 'month') { for ($i = 0; $i < 30; $i++) { $time = mktime(0, 0, 0, date("m"), date("d") - $i, date("Y")); $graphLabels[] = date("jS", $time); $graphData[] = isset($orderData[date("j F", $time)]) ? $orderData[date("j F", $time)] : 0; $graphData2[] = isset($incomeData[date("j F", $time)]) ? $incomeData[date("j F", $time)] : 0; $graphData3[] = isset($completedOrderData[date("j F", $time)]) ? $completedOrderData[date("j F", $time)] : 0; } $graphLabels = array_reverse($graphLabels); $graphData = array_reverse($graphData); $graphData2 = array_reverse($graphData2); $graphData3 = array_reverse($graphData3); } elseif ($viewPeriod == 'year') { for ($i = 0; $i < 12; $i++) { $time = mktime(0, 0, 0, date("m") - $i, 1, date("Y")); $graphLabels[] = date("F y", $time); $graphData[] = isset($orderData[date("F Y", $time)]) ? $orderData[date("F Y", $time)] : 0; $graphData2[] = isset($incomeData[date("F Y", $time)]) ? $incomeData[date("F Y", $time)] : 0; $graphData3[] = isset($completedOrderData[date("F Y", $time)]) ? $completedOrderData[date("F Y", $time)] : 0; } $graphLabels = array_reverse($graphLabels); $graphData = array_reverse($graphData); $graphData2 = array_reverse($graphData2); $graphData3 = array_reverse($graphData3); } $graphLabels = '"' . implode('","', $graphLabels) . '"'; $graphData = implode(',', $graphData); $graphData2 = implode(',', $graphData2); $graphData3 = implode(',', $graphData3); $activeToday = ($viewPeriod == 'today') ? ' active' : ''; $activeThisMonth = ($viewPeriod == 'month') ? ' active' : ''; $activeThisYear = ($viewPeriod == 'year') ? ' active' : ''; $langToday = AdminLang::trans('billing.incometoday'); $langActiveThisMonth = AdminLang::trans('billing.incomethismonth'); $langActiveThisYear = AdminLang::trans('billing.incomethisyear'); $langNewOrders = AdminLang::trans('home.newOrders'); $langActivatedOrders = AdminLang::trans('home.activatedOrders'); $langIncome = AdminLang::trans('billing.income'); $langOrders = AdminLang::trans('orders.title'); return <<
{$langToday}
{$langActiveThisMonth}
{$langActiveThisYear}
EOF; } }