update 数据之眼-首页-镇/街道 当日订单金额

This commit is contained in:
chenbo 2023-12-07 19:07:46 +08:00
parent 58ddee111a
commit 71c727e262
2 changed files with 80 additions and 13 deletions

View File

@ -220,62 +220,62 @@ class Order extends BaseController
$list = [];
// 00:00-02:00
$startTime0 = strtotime(date('Y-m-d', time()));
$endTime2 = strtotime(date('Y-m-d 02:00:00'));
$endTime2 = strtotime(date('Y-m-d 01:59:59'));
$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'));
$endTime4 = strtotime(date('Y-m-d 03:59:59'));
$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'));
$endTime6 = strtotime(date('Y-m-d 05:59:59'));
$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'));
$endTime8 = strtotime(date('Y-m-d 07:59:59'));
$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'));
$endTime10 = strtotime(date('Y-m-d 09:59:59'));
$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'));
$endTime12 = strtotime(date('Y-m-d 11:59:59'));
$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'));
$endTime14 = strtotime(date('Y-m-d 13:59:59'));
$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'));
$endTime16 = strtotime(date('Y-m-d 15:59:59'));
$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'));
$endTime18 = strtotime(date('Y-m-d 17:59:59'));
$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'));
$endTime20 = strtotime(date('Y-m-d 19:59:59'));
$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'));
$endTime22 = strtotime(date('Y-m-d 21:59:59'));
$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'));
$endTime24 = strtotime(date('Y-m-d 23:59:59'));
$list[] = $this->getTimeRangeOrderCount([$startTime22, $endTime24]);
return app('json')->success($list);
@ -339,7 +339,7 @@ class Order extends BaseController
return compact('hourOrderCount', 'pendingOrderCount', 'undeliveredOrderCount', 'doneOrderCount');
}
// 订单数据统计
// 区县订单数据统计
public function orderStatistics()
{
$list = [];
@ -376,6 +376,72 @@ class Order extends BaseController
return \app('json')->success(compact('list'));
}
// 镇/街道 当日订单金额
public function streetCurrDayOrderCount()
{
if ($this->streetCode == '') {
return app('json')->fail('请选择镇/街道');
}
$list = [];
// 00:00-04:00
$startTime = strtotime(date('Y-m-d 00:00:00'));
$endTime = strtotime(date('Y-m-d 03:59:59'));
$list[] = $this->getTimeRangeOrderAmount([$startTime, $endTime]);
// 04:00-08:00
$startTime = strtotime(date('Y-m-d 04:00:00'));
$endTime = strtotime(date('Y-m-d 07:59:59'));
$list[] = $this->getTimeRangeOrderAmount([$startTime, $endTime]);
// 08:00-12:00
$startTime = strtotime(date('Y-m-d 08:00:00'));
$endTime = strtotime(date('Y-m-d 11:59:59'));
$list[] = $this->getTimeRangeOrderAmount([$startTime, $endTime]);
// 12:00-16:00
$startTime = strtotime(date('Y-m-d 12:00:00'));
$endTime = strtotime(date('Y-m-d 15:59:59'));
$list[] = $this->getTimeRangeOrderAmount([$startTime, $endTime]);
// 16:00-20:00
$startTime = strtotime(date('Y-m-d 16:00:00'));
$endTime = strtotime(date('Y-m-d 19:59:59'));
$list[] = $this->getTimeRangeOrderAmount([$startTime, $endTime]);
// 20:00-24:00
$startTime = strtotime(date('Y-m-d 20:00:00'));
$endTime = strtotime(date('Y-m-d 23:59:59'));
$list[] = $this->getTimeRangeOrderAmount([$startTime, $endTime]);
return app('json')->success($list);
}
public function getTimeRangeOrderAmount($timeRange=[])
{
$todayAmount = 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')
->where('o.paid', 1)
->whereNotNull('o.pay_time')
->whereTime('o.create_time', 'between', $timeRange)
->where('og.street_code', $this->streetCode)
->sum('o.total_price');
$yesterdayStartTime = strtotime('-1 days', $timeRange[0]);
$yesterdayEndTime = strtotime('-1 days', $timeRange[1]);
$yesterdayAmount = 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')
->where('o.paid', 1)
->whereNotNull('o.pay_time')
->whereTime('o.create_time', 'between', [$yesterdayStartTime, $yesterdayEndTime])
->where('og.street_code', $this->streetCode)
->sum('o.total_price');
return compact('todayAmount', 'yesterdayAmount');
}
// 平台商品/店铺销量排行
public function salesRanking()
{

View File

@ -741,6 +741,7 @@ Route::group('api/', function () {
Route::get('refund_order_list', 'Order/refundOrderList');
Route::get('take_order_list', 'Order/takeOrderList');
Route::get('take_order_count_title', 'Order/takeOrderCountTitle');
Route::get('street_currday_order_count', 'Order/streetCurrDayOrderCount');
// api.dataview.User
Route::get('user_merchat_count', 'User/userMerchantCount');