You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							84 lines
						
					
					
						
							2.3 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							84 lines
						
					
					
						
							2.3 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								namespace App\AdminAgent\Controllers;
							 | 
						|
								
							 | 
						|
								use App\AdminAgent\Metrics\Examples\FinanceStatistics;
							 | 
						|
								use App\AdminAgent\Metrics\Examples\OrderStatistics;
							 | 
						|
								use App\Common\OrderStatus;
							 | 
						|
								use App\Models\Order;
							 | 
						|
								use App\Models\OrderProductItem;
							 | 
						|
								use Dcat\Admin\Admin;
							 | 
						|
								use Dcat\Admin\Layout\Column;
							 | 
						|
								use Dcat\Admin\Layout\Content;
							 | 
						|
								use Dcat\Admin\Layout\Row;
							 | 
						|
								use Dcat\Admin\Http\Controllers\AdminController;
							 | 
						|
								use Dcat\Admin\Widgets\Card;
							 | 
						|
								use Illuminate\Support\Arr;
							 | 
						|
								
							 | 
						|
								class OrderStatisticsController extends AdminController
							 | 
						|
								{
							 | 
						|
									public function index(Content $content)
							 | 
						|
									{
							 | 
						|
										Admin::style(
							 | 
						|
											<<<CSS
							 | 
						|
								            .col-sm-12.d-flex{
							 | 
						|
								                    display: inline-block !important;
							 | 
						|
								            }
							 | 
						|
								            CSS
							 | 
						|
										);
							 | 
						|
								
							 | 
						|
										//数据
							 | 
						|
								
							 | 
						|
										//订单
							 | 
						|
								
							 | 
						|
								
							 | 
						|
										return $content
							 | 
						|
											->body(
							 | 
						|
												<<<HTML
							 | 
						|
								                    <div class="content-header">
							 | 
						|
								                                <section class="content-header breadcrumbs-top">
							 | 
						|
								                                        <h1 class=" float-left">
							 | 
						|
								                                    <span class="text-capitalize">订单统计</span>
							 | 
						|
								
							 | 
						|
								                                </h1>
							 | 
						|
								                    <div class="clearfix"></div>
							 | 
						|
								
							 | 
						|
								                        </section>
							 | 
						|
								                        </div>
							 | 
						|
								                HTML
							 | 
						|
								
							 | 
						|
											)
							 | 
						|
											->body(function (Row $row) {
							 | 
						|
												$orders = Order::query()->where('agent_id',Admin::user()->id)->select('*')->selectRaw("count(id) as count_id")->groupBy('status')->get();
							 | 
						|
												$count =  Order::query()->where('agent_id',Admin::user()->id)->count();
							 | 
						|
								
							 | 
						|
												$row->column(3, function (Column $column) use ($count) {
							 | 
						|
													$column->row(Card::make('总数', function () use ($count) {
							 | 
						|
														return <<<HTML
							 | 
						|
								<div class="d-flex justify-content-between align-items-center mt-1" style="margin-bottom: 2px">
							 | 
						|
								    <h2 class="ml-1 font-large-1 text-primary">$count</h2>
							 | 
						|
								</div>
							 | 
						|
								HTML;
							 | 
						|
													}));
							 | 
						|
												});
							 | 
						|
								
							 | 
						|
												$arr = OrderStatus::array();
							 | 
						|
												foreach ($orders as $order) {
							 | 
						|
													$row->column(3, function (Column $column) use ($order,$arr) {
							 | 
						|
														$column->row(Card::make($arr[$order->status], function () use ($order) {
							 | 
						|
															return <<<HTML
							 | 
						|
								<div class="d-flex justify-content-between align-items-center mt-1" style="margin-bottom: 2px">
							 | 
						|
								    <h2 class="ml-1 font-large-1 text-primary">$order->count_id</h2>
							 | 
						|
								</div>
							 | 
						|
								HTML;
							 | 
						|
														}));
							 | 
						|
													});
							 | 
						|
												}
							 | 
						|
								
							 | 
						|
											})
							 | 
						|
											->body(function (Row $row){
							 | 
						|
												$row->column(12,new OrderStatistics()
							 | 
						|
											);
							 | 
						|
										});
							 | 
						|
								    }
							 | 
						|
								}
							 |