diff --git a/app/Console/Commands/CheckCommission.php b/app/Console/Commands/CheckCommission.php index 86ca3c66..d9563630 100644 --- a/app/Console/Commands/CheckCommission.php +++ b/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 diff --git a/app/Http/Controllers/Admin/StatController.php b/app/Http/Controllers/Admin/StatController.php index d0df16fc..7f4f20ea 100644 --- a/app/Http/Controllers/Admin/StatController.php +++ b/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 [ diff --git a/app/Services/StatisticalService.php b/app/Services/StatisticalService.php index ed1c7e44..853600fc 100644 --- a/app/Services/StatisticalService.php +++ b/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(); + } + } + } }