Page MenuHomePhorge

D5400.1775215356.diff
No OneTemporary

Authored By
Unknown
Size
4 KB
Referenced Files
None
Subscribers
None

D5400.1775215356.diff

diff --git a/src/app/Http/Controllers/API/V4/Admin/StatsController.php b/src/app/Http/Controllers/API/V4/Admin/StatsController.php
--- a/src/app/Http/Controllers/API/V4/Admin/StatsController.php
+++ b/src/app/Http/Controllers/API/V4/Admin/StatsController.php
@@ -313,7 +313,6 @@
}
}
- $labels = array_reverse($labels);
$start->startOfWeek(Carbon::MONDAY);
$created = DB::table('users')
@@ -326,21 +325,43 @@
->where('deleted_at', '>=', $start->toDateString())
->groupByRaw('1');
+ $sus_created = DB::table('users')
+ ->selectRaw("date_format(created_at, '%x-%v') as period, count(*) as cnt")
+ ->where('status', '&', User::STATUS_SUSPENDED)
+ ->where('created_at', '>=', $start->toDateString())
+ ->groupByRaw('1');
+
+ $sus_deleted = DB::table('users')
+ ->selectRaw("date_format(deleted_at, '%x-%v') as period, count(*) as cnt")
+ ->where('status', '&', User::STATUS_SUSPENDED)
+ ->where('deleted_at', '>=', $start->toDateString())
+ ->groupByRaw('1');
+
$created = $this->applyTenantScope($created)->get();
$deleted = $this->applyTenantScope($deleted)->get();
+ $sus_created = $this->applyTenantScope($sus_created)->get();
+ $sus_deleted = $this->applyTenantScope($sus_deleted)->get();
$count = $this->applyTenantScope(DB::table('users')->whereNull('deleted_at'))->count();
+ $sus_count = $this->applyTenantScope(DB::table('users')->whereNull('deleted_at')
+ ->where('status', '&', User::STATUS_SUSPENDED))->count();
- $empty = array_fill_keys($labels, 0);
+ $empty = array_fill_keys(array_reverse($labels), 0);
$created = array_merge($empty, $created->pluck('cnt', 'period')->all());
$deleted = array_merge($empty, $deleted->pluck('cnt', 'period')->all());
+ $sus_created = array_merge($empty, $sus_created->pluck('cnt', 'period')->all());
+ $sus_deleted = array_merge($empty, $sus_deleted->pluck('cnt', 'period')->all());
$all = [];
+ $suspended = [];
- foreach (array_reverse($labels) as $label) {
+ foreach ($labels as $label) {
$all[] = $count;
+ $suspended[] = $sus_count;
$count -= $created[$label] - $deleted[$label];
+ $sus_count -= $sus_created[$label] - $sus_deleted[$label];
}
$all = array_reverse($all);
+ $suspended = array_reverse($suspended);
// $start = 3000;
// for ($i = 0; $i < count($labels); $i++) {
@@ -352,7 +373,7 @@
return [
'title' => self::trans('app.chart-allusers'),
'type' => 'line',
- 'colors' => [self::COLOR_GREEN],
+ 'colors' => [self::COLOR_GREEN, self::COLOR_ORANGE],
'axisOptions' => [
'xIsSeries' => true,
'xAxisMode' => 'tick',
@@ -365,9 +386,13 @@
'labels' => $labels,
'datasets' => [
[
- // 'name' => 'Existing',
+ 'name' => self::trans('app.chart-all'),
'values' => $all,
],
+ [
+ 'name' => self::trans('app.chart-suspended'),
+ 'values' => $suspended,
+ ],
],
],
];
diff --git a/src/resources/lang/en/app.php b/src/resources/lang/en/app.php
--- a/src/resources/lang/en/app.php
+++ b/src/resources/lang/en/app.php
@@ -9,8 +9,10 @@
| The following language lines are used in the application.
*/
+ 'chart-all' => 'All',
'chart-created' => 'Created',
'chart-deleted' => 'Deleted',
+ 'chart-suspended' => 'Suspended',
'chart-average' => 'average',
'chart-allusers' => 'All Users - last year',
'chart-discounts' => 'Discounts',
diff --git a/src/tests/Feature/Controller/Admin/StatsTest.php b/src/tests/Feature/Controller/Admin/StatsTest.php
--- a/src/tests/Feature/Controller/Admin/StatsTest.php
+++ b/src/tests/Feature/Controller/Admin/StatsTest.php
@@ -92,7 +92,11 @@
$this->assertSame('All Users - last year', $json['title']);
$this->assertCount(54, $json['data']['labels']);
- $this->assertCount(1, $json['data']['datasets']);
+ $this->assertCount(2, $json['data']['datasets']);
+ $this->assertSame('All', $json['data']['datasets'][0]['name']);
+ $this->assertSame('Suspended', $json['data']['datasets'][1]['name']);
+ $this->assertCount(54, $json['data']['datasets'][0]['values']);
+ $this->assertCount(54, $json['data']['datasets'][1]['values']);
// 'users-per-country' chart
$response = $this->actingAs($admin)->get("api/v4/stats/chart/users-per-country");

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 3, 11:22 AM (3 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18823814
Default Alt Text
D5400.1775215356.diff (4 KB)

Event Timeline