Browse Source

优化数据报表效率

master
lanzu_qinsheng 5 years ago
parent
commit
d84c492496
  1. 10
      app/Admin/Common/Order.php
  2. 18
      app/Admin/Controllers/v3/DataReport.php
  3. 8
      app/Providers/AppServiceProvider.php

10
app/Admin/Common/Order.php

@ -78,10 +78,16 @@ class Order
$result = DB::table('lanzu_order_main')
->whereIn('state', [3, 4, 5, 10,11])
->where('type',1)
->groupBy('user_id')->pluck('user_id')
->pluck('user_id')
->toArray();
$result = count($result);
$result = count(array_unique($result));
}elseif ($params['data_type']=='num'){
$result = $buildData->pluck('user_id');
if ($result){
$result = $result->toArray();
}
}
return $result;
}

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

@ -44,18 +44,12 @@ class DataReport
],$option);
$this->_number = Order::getOrderData([
'user_type'=>'market_service',//谁取数据 user_type 用户类型
'data_type'=>'number',//取什么数据 data_type 数据类型
'market_id'=>$marketId,//取哪个市场数据
'condition'=>1,//取数据维度 condition
'user_ids'=>null
],$option);
$this->_count_user = Order::getOrderData([
'user_type'=>'market_service',//谁取数据 user_type 用户类型
'data_type'=>'count_user',//取什么数据 data_type 数据类型
'data_type'=>'num',//取什么数据 data_type 数据类型
'market_id'=>$marketId,//取哪个市场数据
'condition'=>1,//取数据维度 condition
'user_ids'=>null
],$option);
$this->_count_user = count(array_unique($this->_number));
$this->_shipping = Order::getOrderData([
'user_type'=>'market_service',//谁取数据 user_type 用户类型
'data_type'=>'shipping',//取什么数据 data_type 数据类型
@ -107,7 +101,7 @@ class DataReport
->body(function (Row $row){
$row->column(2,function (Column $column){
$title = "订单数";
$value = $this->_number;
$value = count($this->_number);
$card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>");
$card->style('background-color:#4e9876');
$column->row($card);
@ -123,14 +117,14 @@ class DataReport
$row->column(2,function (Column $column) {
$title = "下单人数";
$value =$this->_count_user;
$value = $this->_count_user;
$card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>");
$card->style('background-color:#4e9876');
$column->row($card);
});
$row->column(2,function (Column $column){
$title = "人均单价(元)";
if ($this->_amount){
if ($this->_amount&&$this->_count_user){
$value = sprintf("%.2f",$this->_amount/$this->_count_user);
}else{
$value=0;
@ -174,7 +168,7 @@ class DataReport
});
$row->column(4,function (Column $column){
$column->row(new Shipping($this->_shipping));
$column->row(new Distance($this->_distance,$this->_number));
$column->row(new Distance($this->_distance,count($this->_number)));
$card3 = Card::make('送达时间(暂无)');
$card3->style("height:155px");
$column->row($card3);

8
app/Providers/AppServiceProvider.php

@ -2,6 +2,8 @@
namespace App\Providers;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
@ -25,5 +27,11 @@ class AppServiceProvider extends ServiceProvider
{
//
\Schema::defaultStringLength(191);
// DB::listen(function($query){
// $sql = $query->sql;
// $bingings = $query->bindings;
// $time = $query->time;
// Log::debug(compact('sql','bingings','time'));
// });
}
}
Loading…
Cancel
Save