|
@@ -0,0 +1,96 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace app\admin\service\statistics;
|
|
|
+
|
|
|
+use app\model\Order;
|
|
|
+use app\model\OrderReturn;
|
|
|
+use support\Db;
|
|
|
+
|
|
|
+class OrderService
|
|
|
+{
|
|
|
+ public static function getOrder()
|
|
|
+ {
|
|
|
+ // 今日订单
|
|
|
+ $todayTimeUnix = strtotime(date('Y-m-d'));
|
|
|
+ // 今日订单
|
|
|
+ $data['todayOrder'] = Order::where('order_addtimes', '>', $todayTimeUnix)->count();
|
|
|
+ // 今日收入
|
|
|
+ $data['todayRevenue'] = Order::where('order_status_payment', 'SUCCESS')
|
|
|
+ ->where('order_addtimes', '>', $todayTimeUnix)
|
|
|
+ ->sum('order_amount_pay');
|
|
|
+ // 今日退单
|
|
|
+ $data['todayRefund'] = OrderReturn::where('order_return_addtimes', '>', $todayTimeUnix)->count();
|
|
|
+
|
|
|
+
|
|
|
+ // 柱状图
|
|
|
+ // 产品订单
|
|
|
+ $newAddition = Db::select("SELECT DATE_FORMAT(FROM_UNIXTIME(order_addtimes), '%Y/%m') AS `month`,count(*) as `num` FROM app_order group by month");
|
|
|
+// $newAddition = Db::select("
|
|
|
+// SELECT DATE_FORMAT(FROM_UNIXTIME(order_sheet_addtimes), '%Y/%m') AS `month`,count(*) as `num` FROM app_order_sheet as s
|
|
|
+// left join app_goods as g on s.join_sheet_goods_id = g.goods_id
|
|
|
+// where g.goods_classify = 'GOODS'
|
|
|
+// group by month
|
|
|
+// ");
|
|
|
+ $category = [];
|
|
|
+ $newAdditionData = [];
|
|
|
+ foreach ($newAddition as $item) {
|
|
|
+ if (!in_array($item->month, $category)) {
|
|
|
+ $category[] = $item->month;
|
|
|
+ }
|
|
|
+// $newAdditionData['category'][] = $item->month;
|
|
|
+// $newAdditionData['data'][] = $item->num;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 服务订单
|
|
|
+ $newAdditionService = Db::select("
|
|
|
+ SELECT DATE_FORMAT(FROM_UNIXTIME(order_sheet_addtimes), '%Y/%m') AS `month`,count(*) as `num` FROM app_order_sheet as s
|
|
|
+ left join app_goods as g on s.join_sheet_goods_id = g.goods_id
|
|
|
+ where g.goods_classify = 'SERVICE'
|
|
|
+ group by month
|
|
|
+ ");
|
|
|
+ $newAdditionServiceData = [];
|
|
|
+ foreach ($newAdditionService as $item) {
|
|
|
+ if (!in_array($item->month, $category)) {
|
|
|
+ $category[] = $item->month;
|
|
|
+ }
|
|
|
+// $newAdditionServiceData['category'][] = $item->month;
|
|
|
+// $newAdditionServiceData['data'][] = $item->num;
|
|
|
+ }
|
|
|
+
|
|
|
+ sort($category);
|
|
|
+
|
|
|
+ foreach ($category as $item2){
|
|
|
+ $isHaveService = false;
|
|
|
+ $isHaveGoods = false;
|
|
|
+ foreach ($newAdditionService as $item){
|
|
|
+ if ($item2 == $item->month){
|
|
|
+ $isHaveService = true;
|
|
|
+ $newAdditionServiceData['category'][] = $item->month;
|
|
|
+ $newAdditionServiceData['data'][] = $item->num;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ foreach ($newAddition as $item3){
|
|
|
+ if ($item2 == $item3->month){
|
|
|
+ $isHaveGoods = true;
|
|
|
+ $newAdditionData['category'][] = $item3->month;
|
|
|
+ $newAdditionData['data'][] = $item3->num;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!$isHaveService){
|
|
|
+ $newAdditionServiceData['category'][] = $item2;//['month'=>$item2,'num'=>0];
|
|
|
+ $newAdditionServiceData['data'][] = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!$isHaveGoods){
|
|
|
+ $newAdditionData['category'][] = $item2;//['month'=>$item2,'num'=>0];
|
|
|
+ $newAdditionData['data'][] = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ $data['addition']['goods'] = $newAdditionData;
|
|
|
+ $data['addition']['service'] = $newAdditionServiceData;
|
|
|
+
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
+}
|