Browse Source

数据报表

master
lanzu_qinsheng 5 years ago
parent
commit
008e5fdbcc
  1. 2
      app/Admin/Actions/Tools/DataReportTime.php
  2. 73
      app/Admin/Controllers/v3/DataReport.php
  3. 1
      app/Admin/Extensions/Chart/Bar/OrderBar.php
  4. 2
      resources/views/admin/tools/data_report_time.blade.php

2
app/Admin/Actions/Tools/DataReportTime.php

@ -31,7 +31,6 @@ JS;
public function render() public function render()
{ {
$options = [ $options = [
'all'=>'全部',
'today' => '今日', 'today' => '今日',
'yesterday' => '昨日', 'yesterday' => '昨日',
'week' => '本周', 'week' => '本周',
@ -42,7 +41,6 @@ JS;
]; ];
$data = [ $data = [
'all'=>'0',
'today' => '1', 'today' => '1',
'yesterday' => '-1', 'yesterday' => '-1',
'week' => 'w', 'week' => 'w',

73
app/Admin/Controllers/v3/DataReport.php

@ -7,8 +7,10 @@ namespace App\Admin\Controllers\v3;
use App\Admin\Actions\Tools\DataReportDate; use App\Admin\Actions\Tools\DataReportDate;
use App\Admin\Actions\Tools\DataReportOption; use App\Admin\Actions\Tools\DataReportOption;
use App\Admin\Common\Order;
use App\Admin\Extensions\Chart\Bar\OrderBar; use App\Admin\Extensions\Chart\Bar\OrderBar;
use App\Models\LanzuStore; use App\Models\LanzuStore;
use App\Models\v3\User;
use Dcat\Admin\Form; use Dcat\Admin\Form;
use Dcat\Admin\Grid; use Dcat\Admin\Grid;
use Dcat\Admin\Layout\Column; use Dcat\Admin\Layout\Column;
@ -25,9 +27,37 @@ class DataReport
* @param Content $content * @param Content $content
* @return Content * @return Content
*/ */
public function index(Content $content)
protected $_amount;
protected $_number;
protected $_count_user;
public function __construct()
{ {
$option = request()->get('option');
$this->_amount = Order::getOrderData([
'user_type'=>'market_service',//谁取数据 user_type 用户类型
'data_type'=>'amount',//取什么数据 data_type 数据类型
'market_id'=>'',//取哪个市场数据
'condition'=>1,//取数据维度 condition
'user_ids'=>null
],$option);
$this->_number = Order::getOrderData([
'user_type'=>'market_service',//谁取数据 user_type 用户类型
'data_type'=>'number',//取什么数据 data_type 数据类型
'market_id'=>'',//取哪个市场数据
'condition'=>1,//取数据维度 condition
'user_ids'=>null
],$option);
$this->_count_user = Order::getOrderData([
'user_type'=>'market_service',//谁取数据 user_type 用户类型
'data_type'=>'count_user',//取什么数据 data_type 数据类型
'market_id'=>'',//取哪个市场数据
'condition'=>1,//取数据维度 condition
'user_ids'=>null
],$option);
}
public function index(Content $content)
{
return $content return $content
->header('数据统计') ->header('数据统计')
->body(function (Row $row){ ->body(function (Row $row){
@ -45,42 +75,47 @@ class DataReport
})->body('<hr />') })->body('<hr />')
->body(function (Row $row){ ->body(function (Row $row){
$row->column(2,function (Column $column){ $row->column(2,function (Column $column){
$title = "营业总额(元)";
$value = 0;
$title = "订单总额(元)";
$value = $this->_amount;
$card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>"); $card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>");
$card->style('background-color:#4e9876'); $card->style('background-color:#4e9876');
$column->row($card); $column->row($card);
}); });
$row->column(2,function (Column $column){ $row->column(2,function (Column $column){
$title = "总入账(元)";
$value = 0;
$title = "订单数";
$value = $this->_number;
$card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>"); $card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>");
$card->style('background-color:#4e9876'); $card->style('background-color:#4e9876');
$column->row($card); $column->row($card);
}); });
$row->column(2,function (Column $column){
$title = "商户实际收";
$value = 0;
$row->column(2,function (Column $column) {
$title = "下单人数";
$value =$this->_count_user;
$card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>"); $card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>");
$card->style('background-color:#4e9876'); $card->style('background-color:#4e9876');
$column->row($card); $column->row($card);
}); });
$row->column(2,function (Column $column){ $row->column(2,function (Column $column){
$title = "有效订单量";
$value = 0;
$title = "人均单价(元)";
if ($this->_amount){
$value = sprintf("%.2f",$this->_amount/$this->_count_user);
}else{
$value=0;
}
$card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>"); $card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>");
$card->style('background-color:#4e9876'); $card->style('background-color:#4e9876');
$column->row($card); $column->row($card);
}); });
$row->column(2,function (Column $column){ $row->column(2,function (Column $column){
$title = "无效订单量";
$value = 0;
$title = "有效用户总数";
$value = User::where('nick_name','!=','')->count();
$card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>"); $card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>");
$card->style('background-color:#4e9876'); $card->style('background-color:#4e9876');
$column->row($card); $column->row($card);
}); });
$row->column(2,function (Column $column){ $row->column(2,function (Column $column){
$title = "佣金收入";
$title = "佣金收入(元)";
$value = 0; $value = 0;
$card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>"); $card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>");
$card->style('background-color:#4e9876'); $card->style('background-color:#4e9876');
@ -109,6 +144,11 @@ class DataReport
}); });
} }
/**
* 订单数据
* @param array $params
* @return array[]|string[]
*/
public function orderData($params=[]) public function orderData($params=[])
{ {
$where['type'] = $params['type']; $where['type'] = $params['type'];
@ -130,4 +170,11 @@ class DataReport
return ['time'=>'','num'=>'','amount'=>'']; return ['time'=>'','num'=>'','amount'=>''];
} }
public function getOrderData()
{
}
} }

1
app/Admin/Extensions/Chart/Bar/OrderBar.php

@ -11,7 +11,6 @@ class OrderBar extends Chart
public function __construct($data=[]) public function __construct($data=[])
{ {
parent::__construct($containerSelector=null, $options=[]); parent::__construct($containerSelector=null, $options=[]);
dump($data);
$this->_data = $data; $this->_data = $data;
$this->setUpOptions(); $this->setUpOptions();
} }

2
resources/views/admin/tools/data_report_time.blade.php

@ -1,6 +1,6 @@
<div class="btn-group btn-group-toggle" data-toggle="buttons"> <div class="btn-group btn-group-toggle" data-toggle="buttons">
@foreach($options as $option => $label) @foreach($options as $option => $label)
<label class="btn btn-outline-primary {{request()->get('t','all')==$option? 'active':''}}">
<label class="btn btn-outline-primary {{request()->get('type','today')==$option? 'active':''}}">
<input type="radio" name="options" id="{{$option}}"> {{$label}} <input type="radio" name="options" id="{{$option}}"> {{$label}}
</label> </label>
@endforeach @endforeach

Loading…
Cancel
Save