mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
Query lazy loading imrpovements
This commit is contained in:
parent
485fea03c7
commit
fabf8e0bae
@ -218,7 +218,7 @@ class BaseController extends Controller
|
||||
$query->with(
|
||||
[
|
||||
'company' => function ($query) use ($updated_at, $user) {
|
||||
$query->whereNotNull('updated_at')->with('documents')->with('users');
|
||||
$query->whereNotNull('updated_at')->with('documents','users');
|
||||
},
|
||||
'company.clients' => function ($query) use ($updated_at, $user) {
|
||||
$query->where('clients.updated_at', '>=', $updated_at)->with('contacts.company', 'gateway_tokens', 'documents');
|
||||
@ -392,7 +392,7 @@ class BaseController extends Controller
|
||||
$query->with(
|
||||
[
|
||||
'company' => function ($query) use ($created_at, $user) {
|
||||
$query->whereNotNull('created_at')->with('documents');
|
||||
$query->whereNotNull('created_at')->with('documents','users');
|
||||
},
|
||||
'company.designs'=> function ($query) use ($created_at, $user) {
|
||||
$query->where('created_at', '>=', $created_at)->with('company');
|
||||
@ -466,7 +466,7 @@ class BaseController extends Controller
|
||||
$query->with(
|
||||
[
|
||||
'company' => function ($query) use ($created_at, $user) {
|
||||
$query->whereNotNull('created_at')->with('documents');
|
||||
$query->whereNotNull('created_at')->with('documents','users');
|
||||
},
|
||||
'company.clients' => function ($query) use ($created_at, $user) {
|
||||
$query->where('clients.created_at', '>=', $created_at)->with('contacts.company', 'gateway_tokens', 'documents');
|
||||
@ -500,9 +500,6 @@ class BaseController extends Controller
|
||||
},
|
||||
'company.groups' => function ($query) use ($created_at, $user) {
|
||||
$query->where('created_at', '>=', $created_at)->with('documents');
|
||||
|
||||
// if(!$user->isAdmin())
|
||||
// $query->where('group_settings.user_id', $user->id);
|
||||
},
|
||||
'company.invoices'=> function ($query) use ($created_at, $user) {
|
||||
$query->where('created_at', '>=', $created_at)->with('invitations', 'documents');
|
||||
@ -583,13 +580,30 @@ class BaseController extends Controller
|
||||
$query->where('activities.user_id', $user->id);
|
||||
|
||||
},
|
||||
'company.webhooks'=> function ($query) use($user) {
|
||||
|
||||
if(!$user->isAdmin())
|
||||
$query->where('webhooks.user_id', $user->id);
|
||||
|
||||
},
|
||||
'company.tokens'=> function ($query) use($user) {
|
||||
$query->where('company_tokens.user_id', $user->id);
|
||||
},
|
||||
'company.system_logs',
|
||||
'company.subscriptions'=> function ($query) use($created_at, $user) {
|
||||
$query->where('created_at', '>=', $created_at);
|
||||
|
||||
if(!$user->isAdmin())
|
||||
$query->where('subscriptions.user_id', $user->id);
|
||||
|
||||
}
|
||||
},
|
||||
'company.recurring_expenses'=> function ($query) use ($created_at, $user) {
|
||||
$query->where('created_at', '>=', $created_at)->with('documents');
|
||||
|
||||
if(!$user->hasPermission('view_recurring_expense'))
|
||||
$query->where('recurring_expenses.user_id', $user->id)->orWhere('recurring_expenses.assigned_user_id', $user->id);
|
||||
|
||||
},
|
||||
]
|
||||
);
|
||||
|
||||
|
@ -35,9 +35,9 @@ class QueryLogging
|
||||
{
|
||||
|
||||
// Enable query logging for development
|
||||
if (!Ninja::isHosted() || !config('beacon.enabled')) {
|
||||
return $next($request);
|
||||
}
|
||||
// if (!Ninja::isHosted() || !config('beacon.enabled')) {
|
||||
// return $next($request);
|
||||
// }
|
||||
|
||||
$timeStart = microtime(true);
|
||||
DB::enableQueryLog();
|
||||
@ -53,10 +53,10 @@ class QueryLogging
|
||||
|
||||
// info("Query count = {$count}");
|
||||
|
||||
if($count > 175){
|
||||
// if($count > 175){
|
||||
nlog("Query count = {$count}");
|
||||
nlog($queries);
|
||||
}
|
||||
// }
|
||||
|
||||
$ip = '';
|
||||
|
||||
|
@ -52,6 +52,8 @@ class CompanyUser extends Pivot
|
||||
|
||||
protected $touches = ['user'];
|
||||
|
||||
protected $with = ['user','account'];
|
||||
|
||||
public function getEntityType()
|
||||
{
|
||||
return self::class;
|
||||
|
@ -25,6 +25,7 @@ use Illuminate\Support\Facades\Queue;
|
||||
use Illuminate\Support\Facades\RateLimiter;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Livewire\Livewire;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
@ -69,6 +70,11 @@ class AppServiceProvider extends ServiceProvider
|
||||
|
||||
app()->instance(TruthSource::class, new TruthSource());
|
||||
|
||||
|
||||
Model::preventLazyLoading(
|
||||
!$this->app->isProduction()
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -79,7 +79,7 @@ class CompanyUserTransformer extends EntityTransformer
|
||||
|
||||
public function includeToken(CompanyUser $company_user)
|
||||
{
|
||||
$token = $company_user->tokens->where('company_id', $company_user->company_id)->where('user_id', $company_user->user_id)->first();
|
||||
$token = $company_user->tokens()->where('company_id', $company_user->company_id)->where('user_id', $company_user->user_id)->first();
|
||||
|
||||
$transformer = new CompanyTokenTransformer($this->serializer);
|
||||
|
||||
|
@ -32,7 +32,7 @@ trait UserNotifies
|
||||
$notifiable_methods = [];
|
||||
$notifications = $company_user->notifications;
|
||||
|
||||
if ($company_user->company->is_disabled && is_array($notifications->email) || $company_user->trashed() || $company_user->user->trashed()) {
|
||||
if ($invitation->company->is_disabled && is_array($notifications->email) || $company_user->trashed() || $company_user->user->trashed()) {
|
||||
return [];
|
||||
}
|
||||
|
||||
@ -56,7 +56,7 @@ trait UserNotifies
|
||||
$notifiable_methods = [];
|
||||
$notifications = $company_user->notifications;
|
||||
|
||||
if ($company_user->company->is_disabled || ! $notifications || $company_user->trashed() || $company_user->user->trashed()) {
|
||||
if ($entity->company->is_disabled || ! $notifications || $company_user->trashed() || $company_user->user->trashed()) {
|
||||
return [];
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user