update: add statis api

This commit is contained in:
v2board 2023-05-11 00:24:03 +08:00
parent 76f4a1764b
commit 9db5d3d483
3 changed files with 49 additions and 1 deletions

View File

@ -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

View File

@ -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 [

View File

@ -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();
}
}
}
}