title('订单统计'); $this->height(400); $this->chartHeight(300); } /** * 处理请求 * * @param Request $request * * @return mixed|void */ public function handle(Request $request) { //总订单数 $count = Order::query()->where('agent_id',Admin::user()->id)->count(); // 卡片内容 $this->withContent($count); // 卡片底部 //今日订单 $countToday = Order::query()->where('agent_id',Admin::user()->id)->whereDate('created_at',Carbon::today())->count(); $countYesterday = Order::query()->where('agent_id',Admin::user()->id)->whereDate('created_at',Carbon::yesterday())->count(); $price = Order::query()->where('agent_id',Admin::user()->id)->whereDate('created_at',Carbon::today())->sum('price'); $this->withFooter($countToday, $countYesterday, $price); $order = Order::query() ->select('*') ->addSelect(DB::raw("COUNT(id) as count_id,CONCAT(YEAR(created_at),'-',MONTH(created_at),'-',DAY(created_at)) AS statistics_time")) ->where('agent_id',Admin::user()->id) ->limit(30) ->orderBy('created_at', 'asc') ->groupBy('statistics_time') ->get() ->toArray(); $categories = Arr::pluck($order,'statistics_time'); // 图表数据 $data = Arr::pluck($order,'count_id'); $this->withChart($data,$categories); } /** * 设置图表数据. * * @param int $data * * @return $this */ public function withChart(array $data,array $categories) { return $this->chart([ 'series' => [ [ 'name' => '订单量', 'data' => $data ] ], 'chart' => [ 'type' => 'line', 'zoom' => [ 'enabled' => false ], 'toolbar' => [ 'show' => false ], ], 'colors' => [ Admin::color()->green(), ], 'dataLabels' => [ 'enabled' => false ], 'stroke' => [ 'curve' => 'smooth' ], 'legend' => [ 'position' =>'top', //'horizontalAlign' => 'right' ], 'fill' => [ 'opacity' => 1, 'type' => 'solid', ], 'xaxis' => [ 'categories' => $categories, ] ]); } /** * 卡片内容 * * @param string $content * * @return $this */ public function withContent($content) { return $this->content( <<

{$content}

总订单数 HTML ); } /** * 卡片底部内容. * * @param string $new * @param string $open * @param string $response * * @return $this */ public function withFooter($new, $open, $response) { return $this->footer( <<

今日订单

{$new}

昨日订单

{$open}

今日成交(元)

{$response}
HTML ); } }