First work on a status page showing nodes with uncollected mail
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
@@ -242,4 +243,51 @@ class HomeController extends Controller
|
||||
return view('setup')
|
||||
->with('o',$o);
|
||||
}
|
||||
|
||||
public function status()
|
||||
{
|
||||
$date = Carbon::now()->yesterday()->endOfday();
|
||||
|
||||
// Nodes with uncollected mail
|
||||
$e = Address::select(['addresses.id',DB::raw('count(*) as e'),DB::raw('0 as n'),DB::raw('0 as f')])
|
||||
->join('echomail_seenby',['echomail_seenby.address_id'=>'addresses.id'])
|
||||
->join('echomails',['echomails.id'=>'echomail_seenby.echomail_id'])
|
||||
->whereNotNull('export_at')
|
||||
->whereNull('sent_at')
|
||||
->where('datetime','<',$date)
|
||||
->groupBy('addresses.id');
|
||||
|
||||
$n = Address::select(['addresses.id',DB::raw('0 as e'),DB::raw('count(*) as n'),DB::raw('0 as f')])
|
||||
->join('netmails',['netmails.tftn_id'=>'addresses.id'])
|
||||
->whereNull('sent_at')
|
||||
->where('datetime','<',$date)
|
||||
->groupBy('addresses.id');
|
||||
|
||||
$f = Address::select(['addresses.id',DB::raw('0 as e'),DB::raw('0 as n'),DB::raw('count(*) as f')])
|
||||
->join('file_seenby',['file_seenby.address_id'=>'addresses.id'])
|
||||
->join('files',['files.id'=>'file_seenby.file_id'])
|
||||
->whereNotNull('export_at')
|
||||
->whereNull('sent_at')
|
||||
->where('datetime','<',$date)
|
||||
->groupBy('addresses.id');
|
||||
|
||||
$r = Address::select([
|
||||
'a.id',
|
||||
'system_id',
|
||||
'zone_id',
|
||||
'host_id',
|
||||
'node_id',
|
||||
DB::raw('sum(a.e) as e'),
|
||||
DB::raw('sum(a.n) as n'),
|
||||
DB::raw('sum(a.f) as f')
|
||||
])
|
||||
->from($e->union($n)->union($f),'a')
|
||||
->join('addresses',['addresses.id'=>'a.id'])
|
||||
->groupBy('system_id','a.id','zone_id','host_id','node_id')
|
||||
->with(['system','zone.domain']);
|
||||
|
||||
return view('status')
|
||||
->with('date',$date)
|
||||
->with('uncollected',$r->get());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user