فهرست منبع

update: add statis api

v2board 2 سال پیش
والد
کامیت
9db5d3d483
3فایلهای تغییر یافته به همراه49 افزوده شده و 1 حذف شده
  1. 1 1
      app/Console/Commands/CheckCommission.php
  2. 16 0
      app/Http/Controllers/Admin/StatController.php
  3. 32 0
      app/Services/StatisticalService.php

+ 1 - 1
app/Console/Commands/CheckCommission.php

@@ -50,7 +50,7 @@ class CheckCommission extends Command
         if ((int)config('v2board.commission_auto_check_enable', 1)) {
             Order::where('commission_status', 0)
                 ->where('invite_user_id', '!=', NULL)
-                ->whereNotIn('status', [0, 2])
+                ->where('status', 3)
                 ->where('updated_at', '<=', strtotime('-3 day', time()))
                 ->update([
                     'commission_status' => 1

+ 16 - 0
app/Http/Controllers/Admin/StatController.php

@@ -57,6 +57,22 @@ class StatController extends Controller
         ];
     }
 
+    public function getStatRecord(Request $request)
+    {
+        $request->validate([
+            'type' => 'required|in:order_total,commission_total,register_count',
+            'start_at' => '',
+            'end_at'
+        ]);
+
+        $statisticalService = new StatisticalService();
+        $statisticalService->setStartAt($request->input('start_at'));
+        $statisticalService->setEndAt($request->input('end_at'));
+        return [
+            'data' => $statisticalService->getStatRecord($request->input('type'))
+        ];
+    }
+
     public function getOverride(Request $request)
     {
         return [

+ 32 - 0
app/Services/StatisticalService.php

@@ -175,4 +175,36 @@ class StatisticalService {
     {
         Cache::forget("stat_server_{$this->startAt}");
     }
+
+    public function getStatRecord($type)
+    {
+        switch ($type) {
+            case "order_total": {
+                return Stat::select([
+                    '*',
+                    DB::raw('order_total / 100 as order_total')
+                ])
+                    ->where('record_at', '>=', $this->startAt)
+                    ->where('record_at', '<', $this->endAt)
+                    ->orderBy('record_at', 'ASC')
+                    ->get();
+            }
+            case "commission_total": {
+                return Stat::select([
+                    '*',
+                    DB::raw('commission_total / 100 as commission_total')
+                ])
+                    ->where('record_at', '>=', $this->startAt)
+                    ->where('record_at', '<', $this->endAt)
+                    ->orderBy('record_at', 'ASC')
+                    ->get();
+            }
+            case "register_count": {
+                return Stat::where('record_at', '>=', $this->startAt)
+                    ->where('record_at', '<', $this->endAt)
+                    ->orderBy('record_at', 'ASC')
+                    ->get();
+            }
+        }
+    }
 }