add 第二页时间范围订单统计条状图
This commit is contained in:
parent
5bbc214663
commit
abd9f40165
@ -214,4 +214,129 @@ class Order extends BaseController
|
||||
|
||||
return app('json')->success(compact('townList'));
|
||||
}
|
||||
|
||||
// 第二页 时间段订单统计
|
||||
public function dateRangeOrderCount()
|
||||
{
|
||||
$list = [];
|
||||
// 00:00-02:00
|
||||
$startTime0 = strtotime(date('Y-m-d', time()));
|
||||
$endTime2 = strtotime(date('Y-m-d 02:00:00'));
|
||||
$list[] = $this->getTimeRangeOrderCount([$startTime0, $endTime2]);
|
||||
|
||||
// 02:00-04:00
|
||||
$startTime2 = strtotime(date('Y-m-d 02:00:00'));
|
||||
$endTime4 = strtotime(date('Y-m-d 04:00:00'));
|
||||
$list[] = $this->getTimeRangeOrderCount([$startTime2, $endTime4]);
|
||||
|
||||
// 04:00-06:00
|
||||
$startTime4 = strtotime(date('Y-m-d 04:00:00'));
|
||||
$endTime6 = strtotime(date('Y-m-d 06:00:00'));
|
||||
$list[] = $this->getTimeRangeOrderCount([$startTime4, $endTime6]);
|
||||
|
||||
// 06:00-08:00
|
||||
$startTime6 = strtotime(date('Y-m-d 06:00:00'));
|
||||
$endTime8 = strtotime(date('Y-m-d 08:00:00'));
|
||||
$list[] = $this->getTimeRangeOrderCount([$startTime6, $endTime8]);
|
||||
|
||||
// 08:00-10:00
|
||||
$startTime8 = strtotime(date('Y-m-d 08:00:00'));
|
||||
$endTime10 = strtotime(date('Y-m-d 10:00:00'));
|
||||
$list[] = $this->getTimeRangeOrderCount([$startTime8, $endTime10]);
|
||||
|
||||
// 10:00-12:00
|
||||
$startTime10 = strtotime(date('Y-m-d 10:00:00'));
|
||||
$endTime12 = strtotime(date('Y-m-d 12:00:00'));
|
||||
$list[] = $this->getTimeRangeOrderCount([$startTime10, $endTime12]);
|
||||
|
||||
// 12:00-14:00
|
||||
$startTime12 = strtotime(date('Y-m-d 12:00:00'));
|
||||
$endTime14 = strtotime(date('Y-m-d 14:00:00'));
|
||||
$list[] = $this->getTimeRangeOrderCount([$startTime12, $endTime14]);
|
||||
|
||||
// 14:00-16:00
|
||||
$startTime14 = strtotime(date('Y-m-d 14:00:00'));
|
||||
$endTime16 = strtotime(date('Y-m-d 16:00:00'));
|
||||
$list[] = $this->getTimeRangeOrderCount([$startTime14, $endTime16]);
|
||||
|
||||
// 16:00-18:00
|
||||
$startTime16 = strtotime(date('Y-m-d 16:00:00'));
|
||||
$endTime18 = strtotime(date('Y-m-d 18:00:00'));
|
||||
$list[] = $this->getTimeRangeOrderCount([$startTime16, $endTime18]);
|
||||
|
||||
// 18:00-20:00
|
||||
$startTime18 = strtotime(date('Y-m-d 18:00:00'));
|
||||
$endTime20 = strtotime(date('Y-m-d 20:00:00'));
|
||||
$list[] = $this->getTimeRangeOrderCount([$startTime18, $endTime20]);
|
||||
|
||||
// 20:00-22:00
|
||||
$startTime20 = strtotime(date('Y-m-d 20:00:00'));
|
||||
$endTime22 = strtotime(date('Y-m-d 22:00:00'));
|
||||
$list[] = $this->getTimeRangeOrderCount([$startTime20, $endTime22]);
|
||||
|
||||
// 22:00-24:00
|
||||
$startTime22 = strtotime(date('Y-m-d 22:00:00'));
|
||||
$endTime24 = strtotime(date('Y-m-d 24:00:00'));
|
||||
$list[] = $this->getTimeRangeOrderCount([$startTime22, $endTime24]);
|
||||
halt($list);
|
||||
return app('json')->success($list);
|
||||
}
|
||||
private function getTimeRangeOrderCount($timeRange)
|
||||
{
|
||||
$hourOrderCountQuery = Db::name('store_order')->alias('o')
|
||||
->field(['o.order_sn', 'o.real_name', 'o.user_phone', 'o.user_address', 'o.user_address_code', 'p.store_name', 'm.mer_name', 'o.create_time', 'o.status'])
|
||||
->leftJoin('product_order_log og', 'o.order_id = og.order_id')
|
||||
->leftJoin('merchant m', 'o.mer_id = m.mer_id')
|
||||
->leftJoin('store_order_product op', 'o.order_id = op.order_id')
|
||||
->leftJoin('product_library p', 'op.product_id = p.id')
|
||||
->whereTime('og.create_time', 'between', $timeRange) // whereTime('create_time', 'between', [$a[0],$a[1]]);
|
||||
->where('o.paid', 1)
|
||||
->whereNotNull('o.pay_time');
|
||||
|
||||
// 待取货订单数统计query 订单待发货
|
||||
$pendingPickupOrderCountQuery = Db::name('store_order')->alias('o')
|
||||
->leftJoin('product_order_log og', 'o.order_id = og.order_id')
|
||||
->whereTime('og.create_time', 'between', $timeRange)
|
||||
->where('o.status', 0)
|
||||
->where('o.paid', 1)
|
||||
->whereNotNull('o.pay_time');;
|
||||
|
||||
// 未配送订单数统计query 订单待收货
|
||||
$undeliveredOrderCountQuery = Db::name('store_order')->alias('o')
|
||||
->leftJoin('product_order_log og', 'o.order_id = og.order_id')
|
||||
->whereTime('og.create_time', 'between', $timeRange)
|
||||
->where('o.status', 1)
|
||||
->where('o.paid', 1)
|
||||
->whereNotNull('o.pay_time');;
|
||||
|
||||
// 已完成订单数统计query 订单已完成
|
||||
$doneOrderCountQuery = Db::name('store_order')->alias('o')
|
||||
->leftJoin('product_order_log og', 'o.order_id = og.order_id')
|
||||
->whereTime('og.create_time', 'between', $timeRange)
|
||||
->whereIn('o.status', [2,3])
|
||||
->where('o.paid', 1)
|
||||
->whereNotNull('o.pay_time');
|
||||
|
||||
if ($this->areaCode != '') {
|
||||
$hourOrderCountQuery->where('og.district_code', $this->areaCode);
|
||||
$pendingPickupOrderCountQuery->where('og.district_code', $this->areaCode);
|
||||
$undeliveredOrderCountQuery->where('og.district_code', $this->areaCode);
|
||||
$doneOrderCountQuery->where('og.district_code', $this->areaCode);
|
||||
} else if ($this->streetCode != '') {
|
||||
$hourOrderCountQuery->where('og.street_code', $this->streetCode);
|
||||
$pendingPickupOrderCountQuery->where('og.street_code', $this->streetCode);
|
||||
$undeliveredOrderCountQuery->where('og.street_code', $this->streetCode);
|
||||
$doneOrderCountQuery->where('og.street_code', $this->streetCode);
|
||||
}
|
||||
|
||||
// 今日订单数
|
||||
$hourOrderCount = $hourOrderCountQuery->count();
|
||||
// 待取货订单数
|
||||
$pendingOrderCount = $pendingPickupOrderCountQuery->count();
|
||||
// 未配送订单数
|
||||
$undeliveredOrderCount = $undeliveredOrderCountQuery->count();
|
||||
// 已完成订单数
|
||||
$doneOrderCount = $doneOrderCountQuery->count();
|
||||
return compact('hourOrderCount', 'pendingOrderCount', 'undeliveredOrderCount', 'doneOrderCount');
|
||||
}
|
||||
}
|
@ -721,6 +721,9 @@ Route::group('api/', function () {
|
||||
Route::get('order_ranking', 'Order/orderRanking');
|
||||
Route::get('delivered_product_ranking', 'Order/deliveredProductRanking');
|
||||
Route::get('town_map_count', 'Order/townMapCount');
|
||||
Route::get('date_range_order_count', 'Order/dateRangeOrderCount');
|
||||
|
||||
|
||||
Route::get('vehicle_list', 'Logistics/vehicleList');
|
||||
Route::get('latest_logistics', 'Logistics/latestLogistics');
|
||||
Route::get('logistics_count', 'Logistics/logisticsCount');
|
||||
|
Loading…
x
Reference in New Issue
Block a user