diff --git a/app/controller/api/dataview/Order.php b/app/controller/api/dataview/Order.php index a40535e9..cf3cc78b 100755 --- a/app/controller/api/dataview/Order.php +++ b/app/controller/api/dataview/Order.php @@ -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() { diff --git a/route/api.php b/route/api.php index 01a52b35..f7593047 100644 --- a/route/api.php +++ b/route/api.php @@ -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');