From 02df227bbf0e63fcee3c049bbdd868f61f5ce78c Mon Sep 17 00:00:00 2001
From: lanzu_qinsheng <334039090@qq.com>
Date: Tue, 20 Oct 2020 11:43:17 +0800
Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8A=A5=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/Admin/Actions/Metrics/Distance.php | 20 +++++++++----
app/Admin/Actions/Metrics/Shipping.php | 28 ++++++++++++++++---
app/Admin/Common/Order.php | 16 +++++++++--
app/Admin/Controllers/v3/DataReport.php | 20 +++++++------
app/Admin/Extensions/Chart/Bar/OrderBar.php | 2 +-
.../admin/tools/data_report_time.blade.php | 2 +-
6 files changed, 66 insertions(+), 22 deletions(-)
diff --git a/app/Admin/Actions/Metrics/Distance.php b/app/Admin/Actions/Metrics/Distance.php
index 1697318..54d23b8 100644
--- a/app/Admin/Actions/Metrics/Distance.php
+++ b/app/Admin/Actions/Metrics/Distance.php
@@ -26,7 +26,7 @@ class Distance extends Round
parent::init();
$this->height = 160;
$this->style('padding-top:0');
- $this->chartLabels(['1km以内', '1-3km', '3km以上']);
+ $this->chartLabels(['1km以内', '1-3km', '3-5km','5km以上']);
}
@@ -57,16 +57,17 @@ JS;
*/
public function fill()
{
- $this->withContent($this->distance[0], $this->distance[1],$this->distance[2]);
+ $this->withContent($this->distance[0], $this->distance[1],$this->distance[2],$this->distance[3]);
// 图表数据
$this->withChart([
$this->distance[0]>0?sprintf("%.2f",($this->distance[0]/$this->number)*100):0,
$this->distance[0]>0?sprintf("%.2f",($this->distance[1]/$this->number)*100):0,
$this->distance[0]>0?sprintf("%.2f",($this->distance[2]/$this->number)*100):0,
+ $this->distance[0]>0?sprintf("%.2f",($this->distance[3]/$this->number)*100):0,
]);
// 总数
- $this->chartTotal('总数', $this->number);
+ $this->chartTotal('订单数', $this->number);
}
@@ -96,7 +97,7 @@ JS;
*
* @return $this
*/
- public function withContent($d1, $d2, $d3)
+ public function withContent($d1, $d2, $d3,$d4)
{
return $this->content(
<<
- 3km以上
+ 3-5km
{$d3}
+
+
+
+ 5km以上
+
+
+ {$d4}
+
+
HTML
);
diff --git a/app/Admin/Actions/Metrics/Shipping.php b/app/Admin/Actions/Metrics/Shipping.php
index 324a553..a22079d 100644
--- a/app/Admin/Actions/Metrics/Shipping.php
+++ b/app/Admin/Actions/Metrics/Shipping.php
@@ -1,4 +1,5 @@
shipping = $shipping;
- parent::__construct($title=null, $icon=null);
+ parent::__construct($title = null, $icon = null);
}
public function init()
@@ -45,9 +47,14 @@ class Shipping extends Donut
*/
public function fill()
{
+ $total = array_sum($this->shipping);
+ $s3 = $this->shipping[0]>0?sprintf("%.1f", ($this->shipping[0] / $total) * 100) . '%':'0%';
+ $s4 = $this->shipping[0]>0?sprintf("%.1f", ($this->shipping[1] / $total) * 100) . '%':'0%';
// 图表数据
+
$this->withChart($this->shipping);
- $this->withContent($this->shipping[0], $this->shipping[1]);
+
+ $this->withContent($this->shipping[0], $this->shipping[1], $s3, $s4);
}
/**
@@ -72,7 +79,7 @@ class Shipping extends Donut
*
* @return $this
*/
- protected function withContent($s1, $s2)
+ protected function withContent($s1, $s2, $s3, $s4)
{
$blue = Admin::color()->alpha('blue2', 0.5);
@@ -93,6 +100,19 @@ class Shipping extends Donut
{$s2}
+
+
+
+ {$this->labels[2]}
+
+
{$s3}
+
+
+
+ {$this->labels[3]}
+
+
{$s4}
+
HTML
);
}
diff --git a/app/Admin/Common/Order.php b/app/Admin/Common/Order.php
index f00e15e..7d0e434 100644
--- a/app/Admin/Common/Order.php
+++ b/app/Admin/Common/Order.php
@@ -6,6 +6,7 @@ namespace App\Admin\Common;
use App\Models\ImsCjdcOrderMain;
use App\Models\LanzuUserRelationBind;
+use Illuminate\Support\Facades\DB;
class Order
{
@@ -67,10 +68,19 @@ class Order
$build1 = clone $buildData;
$build2 = clone $buildData;
$build3 = clone $buildData;
+ $build4 = clone $buildData;
$d1 = $build1->where('delivery_distance','<',1000)->count();
- $d2 = $build2->where('delivery_distance','>',[1000,3000])->count();
- $d3 = $build3->where('delivery_distance','>',3000)->count();
- $result = [$d1,$d2,$d3];
+ $d2 = $build2->whereBetween('delivery_distance',[1000,3000])->count();
+ $d3 = $build3->whereBetween('delivery_distance',[3000,5000])->count();
+ $d4 = $build4->where('delivery_distance','>',5000)->count();
+ $result = [$d1,$d2,$d3,$d4];
+ }elseif ($params['data_type']=='order_count_user'){
+ $result = DB::table('lanzu_order_main')
+ ->whereIn('state', [3, 4, 5, 10,11])
+ ->where('type',1)
+ ->groupBy('user_id')->pluck('user_id')
+ ->toArray();
+ $result = count($result);
}
return $result;
}
diff --git a/app/Admin/Controllers/v3/DataReport.php b/app/Admin/Controllers/v3/DataReport.php
index f7a7d2d..f9ac2e0 100644
--- a/app/Admin/Controllers/v3/DataReport.php
+++ b/app/Admin/Controllers/v3/DataReport.php
@@ -3,24 +3,19 @@
namespace App\Admin\Controllers\v3;
-
-
use App\Admin\Actions\Metrics\Distance;
use App\Admin\Actions\Metrics\Shipping;
use App\Admin\Actions\Tools\DataReportDate;
use App\Admin\Actions\Tools\DataReportOption;
use App\Admin\Common\Order;
use App\Admin\Extensions\Chart\Bar\OrderBar;
+use App\Admin\Extensions\Chart\PolarArea\Market;
use App\Models\ImsCjdcMarket;
-use App\Models\LanzuStore;
use App\Models\v3\User;
-use Dcat\Admin\Form;
-use Dcat\Admin\Grid;
use Dcat\Admin\Layout\Column;
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
@@ -35,6 +30,7 @@ class DataReport
protected $_count_user;
protected $_shipping;
protected $_distance;
+ protected $_order_count_user;
public function __construct()
{
$option = request()->get('option',1);
@@ -74,6 +70,13 @@ class DataReport
'condition'=>1,//取数据维度 condition
'user_ids'=>null
],$option);
+ $this->_order_count_user = Order::getOrderData([
+ 'user_type'=>'market_service',//谁取数据 user_type 用户类型
+ 'data_type'=>'order_count_user',//取什么数据 data_type 数据类型
+ 'market_id'=>$marketId,//取哪个市场数据
+ 'condition'=>1,//取数据维度 condition
+ 'user_ids'=>null
+ ],$option);
}
public function index(Content $content)
@@ -146,7 +149,7 @@ class DataReport
});
$row->column(2,function (Column $column){
$title = "下过单的用户数";
- $value = 0;
+ $value = $this->_order_count_user;
$card = Card::make("{$title}","{$value}");
$card->style('background-color:#4e9876');
$column->row($card);
@@ -172,7 +175,7 @@ class DataReport
$row->column(4,function (Column $column){
$column->row(new Shipping($this->_shipping));
$column->row(new Distance($this->_distance,$this->_number));
- $card3 = Card::make('222');
+ $card3 = Card::make('送达时间(暂无)');
$card3->style("height:155px");
$column->row($card3);
});
@@ -193,6 +196,7 @@ class DataReport
$data = DB::table('lanzu_order_main')
->select('money')
->selectRaw("FROM_UNIXTIME(created_at,'%Y-%m-%d') as add_time")
+ ->whereIn('state', [3, 4, 5, 10,11])
->where($where)
->whereBetween('created_at',$params['date_time'])
->get();
diff --git a/app/Admin/Extensions/Chart/Bar/OrderBar.php b/app/Admin/Extensions/Chart/Bar/OrderBar.php
index f2b6f52..0f3029c 100644
--- a/app/Admin/Extensions/Chart/Bar/OrderBar.php
+++ b/app/Admin/Extensions/Chart/Bar/OrderBar.php
@@ -65,7 +65,7 @@ class OrderBar extends Chart
// 执行你的数据查询逻辑
$data = [
[
- 'name'=>'订单金额',
+ 'name'=>$orderType=='num'?'订单数':'订单金额',
'data' =>$orderType=='num'? $this->_data['num']:$this->_data['amount']
],
];
diff --git a/resources/views/admin/tools/data_report_time.blade.php b/resources/views/admin/tools/data_report_time.blade.php
index 2e33c54..cb325b7 100644
--- a/resources/views/admin/tools/data_report_time.blade.php
+++ b/resources/views/admin/tools/data_report_time.blade.php
@@ -1,6 +1,6 @@
@foreach($options as $option => $label)
-