StudioPlus Module Updates

Fix first load issue with filters and some updates
This commit is contained in:
Leonard Biano
2024-05-30 10:58:13 +08:00
parent eab6a832a9
commit 4424eb7082
18 changed files with 255 additions and 103 deletions
@@ -60,6 +60,7 @@ use Modules\StudioPlus\Jobs\ApplyWatermarkNewServer;
use Modules\StudioPlus\Jobs\UpdateVideoMeta;
use Modules\StudioPlus\Services\WatermarkService;
use Modules\StudioPlus\Services\VideoInvoice;
use Cache;
class StudioPlusVideoController extends Controller
{
@@ -138,6 +139,13 @@ class StudioPlusVideoController extends Controller
))
);
if(Cache::has('creator_studio_filters_'.auth()->id())) {
Cache::forget('creator_studio_filters_'.auth()->id());
Cache::put('creator_studio_filters_'.auth()->id(), json_encode($request->except(['first'])));
} else {
Cache::put('creator_studio_filters_'.auth()->id(), json_encode($request->except(['first'])));
}
$videos = $query->with([
'thumbnail',
'category',
@@ -151,13 +159,16 @@ class StudioPlusVideoController extends Controller
->when($request->filled('category_id'), fn ($query) => $query->where('studio_plus_category_id', $request->category_id))
->when($request->filled('status') && $request->status !== 'All' && $request->status !== 'MVL', fn ($query) => $query->where('status', $status))
->when($request->filled('start_date') && $request->filled('end_date'), function($query) use($request) {
$startDate = Carbon::createFromFormat('Y-m-d', $request->start_date)->startOfDay();
$endDate = Carbon::createFromFormat('Y-m-d', $request->end_date)->endOfDay();
if($request->filled('tracks')){
$query->whereHas('tracks', function($query) use($request) {
$query->whereHas('tracks', function($query) use($startDate,$endDate) {
$query->where('name', $request->tracks);
$query->whereBetween(DB::raw('DATE(created_at)'), [$request->start_date, $request->end_date]);
$query->whereBetween('created_at', [$startDate, $endDate]);
});
} else {
$query->whereBetween(DB::raw('DATE(created_at)'), [$request->start_date, $request->end_date]);
$query->whereBetween('created_at', [$startDate, $endDate]);
}
})
->when($request->filled('user_id'), function($query) use($request) {
@@ -311,11 +322,11 @@ class StudioPlusVideoController extends Controller
}
});
})
->when($request->filled('activeStatuses') && !in_array('all', $request->activeStatuses), function() use($request) {
$statuses = $request->activeStatuses;
// ->when($request->filled('activeStatuses') && !in_array('all', $request->activeStatuses), function() use($request) {
// $statuses = $request->activeStatuses;
})
// })
->when($request->filled('orderBy') && $request->filled('sortBy'), function ($query) use ($request) {
if ($request->orderBy === 'category') {
$query->orderBy(StudioPlusCategory::select('name')->whereColumn('id', 'studio_plus_category_id')->orderBy('name', $request->sortBy), $request->sortBy);
@@ -331,7 +342,8 @@ class StudioPlusVideoController extends Controller
} else {
$query->orderBy($request->orderBy, $request->sortBy);
}
}, fn ($query) => $query->latest())
}, fn ($query) => $query->orderBy('id','DESC'))
->skip($first + $page * ($request->has('first') ? $max_rows_per_page : $rows))
->take($rows)
->get();
@@ -547,13 +559,16 @@ class StudioPlusVideoController extends Controller
->when($request->filled('category_id'), fn ($query) => $query->where('studio_plus_category_id', $request->category_id))
->when($request->filled('status') && $request->status !== 'All' && $request->status !== 'MVL', fn ($query) => $query->where('status', explode(',', $request->status) ?: ''))
->when($request->filled('start_date') && $request->filled('end_date'), function($query) use($request) {
$startDate = Carbon::createFromFormat('Y-m-d', $request->start_date)->startOfDay();
$endDate = Carbon::createFromFormat('Y-m-d', $request->end_date)->endOfDay();
if($request->filled('tracks')){
$query->whereHas('tracks', function($query) use($request) {
$query->whereHas('tracks', function($query) use($startDate,$endDate) {
$query->where('name', $request->tracks);
$query->whereBetween(DB::raw('DATE(created_at)'), [$request->start_date, $request->end_date]);
$query->whereBetween('created_at', [$startDate, $endDate]);
});
} else {
$query->whereBetween(DB::raw('DATE(created_at)'), [$request->start_date, $request->end_date]);
$query->whereBetween('created_at', [$startDate, $endDate]);
}
})
->when($request->filled('user_id'), function($query) use($request) {