Browse Source

餐饮订单按餐厅搜索

gorden 4 months ago
parent
commit
b68503be42

+ 7 - 0
app/admin/controller/order/DishesController.php

@@ -44,9 +44,14 @@ class DishesController extends Curd
             $where['order_status_system'] = 'PAYING';
             $where['order_status_payment'] = 'AWAITING';
         }
+        $premise = $request->get('premises');
+        if (!empty($premise)) {
+            $where['json'] = ['order_config_json', 'dept', $premise];
+        }
 
         $order = $request->get('order', 'desc');
         $orderId = $request->get('order_id', '');
+
         $field = $field ?? 'order_addtimes';
         if (!empty($where['order_status_system']) && in_array($where['order_status_system'], ['PENDING', 'WAITING', 'SENDING', 'RECVING', 'SIGNED', 'CONFIRM'])) {
             $where['order_is_complete'] = 'N';
@@ -113,6 +118,8 @@ class DishesController extends Curd
             if (is_array($value)) {
                 if ($value[0] === 'like' || $value[0] === 'not like') {
                     $model = $model->where($column, $value[0], "%$value[1]%");
+                } elseif ($column == 'json') {
+                    $model = $model->whereJsonContains($value[0] . '->' . $value[1], intval($value[2]));
                 } elseif (in_array($value[0], ['>', '=', '<', '<>'])) {
                     $model = $model->where($column, $value[0], $value[1]);
                 } elseif ($value[0] == 'in' && !empty($value[1])) {

+ 19 - 2
app/admin/controller/statistics/MemberController.php

@@ -23,11 +23,28 @@ class MemberController
         $monthCount = Member::where('member_addtimes', '>', $monthTime)->where('member_is_owner', 'N')->count();
 
         // 折线图
-        $newAddition = Db::select("SELECT DATE_FORMAT(FROM_UNIXTIME(member_addtimes), '%Y/%m') AS `month`,count(*) as `num` FROM app_member group by month");
+        $newAddition = Db::select("
+                SELECT t1.month, t1.member_count,
+                SUM(t2.member_count) AS member_month_count
+                FROM (
+                    SELECT DATE_FORMAT(FROM_UNIXTIME(member_addtimes), '%Y/%m') AS month,
+                    COUNT(member_id) AS member_count
+                    FROM app_member
+                    GROUP BY month
+                ) t1
+                JOIN (
+                    SELECT DATE_FORMAT(FROM_UNIXTIME(member_addtimes), '%Y/%m') AS month,
+                    COUNT(member_id) AS member_count
+                    FROM app_member
+                    GROUP BY month
+                ) t2 ON t1.month >= t2.month
+                GROUP BY t1.month;
+        ");
         $newAdditionData = [];
         foreach ($newAddition as $item) {
             $newAdditionData['category'][] = $item->month;
-            $newAdditionData['data'][] = $item->num;
+            $newAdditionData['data'][] = $item->member_count;
+            $newAdditionData['month_total'][] = $item->member_month_count;
         }
 
         // 饼图