diff --git a/app/Admin/Actions/Tools/DataReportOrder.php b/app/Admin/Actions/Tools/DataReportOrder.php index 67b8dee..28e8554 100644 --- a/app/Admin/Actions/Tools/DataReportOrder.php +++ b/app/Admin/Actions/Tools/DataReportOrder.php @@ -31,17 +31,15 @@ JS; public function render() { $options = [ - 'al'=>'全部', - 'online' => '外卖', - 'offline' => '当面付', + 'amount' => '金额', + 'num' => '单数', ]; $data = [ - 'al'=>'0', - 'online' => '1', - 'offline' => '2', + 'amount' => '1', + 'num' => '2', ]; diff --git a/app/Admin/Common/Order.php b/app/Admin/Common/Order.php index 1b58914..f2a9b9d 100644 --- a/app/Admin/Common/Order.php +++ b/app/Admin/Common/Order.php @@ -152,4 +152,7 @@ class Order ->toArray();//获取绑定社区的所有用户 return $uid; } + + + } diff --git a/app/Admin/Controllers/v3/DataReport.php b/app/Admin/Controllers/v3/DataReport.php index 5a0d2c4..412488a 100644 --- a/app/Admin/Controllers/v3/DataReport.php +++ b/app/Admin/Controllers/v3/DataReport.php @@ -16,11 +16,18 @@ use Dcat\Admin\Layout\Content; use Dcat\Admin\Layout\Row; use Dcat\Admin\Widgets\Card; use http\Message\Body; +use Illuminate\Support\Facades\DB; class DataReport { + /** + * 数据报表 + * @param Content $content + * @return Content + */ public function index(Content $content) { + return $content ->header('数据统计') ->body(function (Row $row){ @@ -85,7 +92,7 @@ class DataReport $card = new Card(); $card->title('订单图表'); $card->tool(new \App\Admin\Actions\Tools\DataReportOrder('data_report')); - $card->content(OrderBar::make()); + $card->content(OrderBar::make($this->orderData(['type'=>1]))); $column->row($card); }); $row->column(4,function (Column $column){ @@ -101,4 +108,26 @@ class DataReport }); }); } + + public function orderData($params=[]) + { + $where['type'] = $params['type']; + $data = DB::table('lanzu_order_main') + ->select('money') + ->selectRaw("FROM_UNIXTIME(created_at,'%Y-%m-%d') as add_time") + ->where($where) + ->get(); + $time = $num = $amount = []; + if ($data){ + $data = $data->groupBy('add_time')->toArray(); + foreach ($data as $key=>$val){ + $time[] = $key; + $num[] = intval(count($val)); + $amount[] = sprintf("%.2f",array_sum(array_column($val,'money'))); + } + return ['time'=>$time,'num'=>$num,'amount'=>$amount]; + } + return ['time'=>'','num'=>'','amount'=>'']; + + } } diff --git a/app/Admin/Extensions/Chart/Bar/OrderBar.php b/app/Admin/Extensions/Chart/Bar/OrderBar.php index 7af9014..097f379 100644 --- a/app/Admin/Extensions/Chart/Bar/OrderBar.php +++ b/app/Admin/Extensions/Chart/Bar/OrderBar.php @@ -7,10 +7,12 @@ use Dcat\Admin\Widgets\Metrics\Bar; class OrderBar extends Chart { - public function __construct($containerSelector = null, $options = []) + protected $_data; + public function __construct($data=[]) { - parent::__construct($containerSelector, $options); - + parent::__construct($containerSelector=null, $options=[]); + dump($data); + $this->_data = $data; $this->setUpOptions(); } @@ -20,14 +22,13 @@ class OrderBar extends Chart protected function setUpOptions() { $color = Admin::color(); - $colors = [$color->primary(), $color->primaryDarker()]; $this->options([ 'colors' => $colors, 'chart' => [ 'type' => 'bar', - 'height' => 430 + 'height' => 430, ], 'plotOptions' => [ 'bar' => [ @@ -61,17 +62,15 @@ class OrderBar extends Chart */ protected function buildData() { + $orderType = request()->input('order_type')??'amount'; // 执行你的数据查询逻辑 $data = [ [ - 'data' => [44, 55, 41, 64, 22, 43, 21] + 'name'=>'订单金额', + 'data' =>$orderType=='num'? $this->_data['num']:$this->_data['amount'] ], - [ - 'data' => [53, 32, 33, 52, 13, 44, 32] - ] ]; - $categories = [2001, 2002, 2003, 2004, 2005, 2006, 2007]; - + $categories = $this->_data['time']; $this->withData($data); $this->withCategories($categories); } diff --git a/resources/views/admin/tools/data_report_order.blade.php b/resources/views/admin/tools/data_report_order.blade.php index 065f5ed..373fb33 100644 --- a/resources/views/admin/tools/data_report_order.blade.php +++ b/resources/views/admin/tools/data_report_order.blade.php @@ -1,6 +1,6 @@