unioil-mobile-api/app/Services/MabileAnalyticsService.php

87 lines
2.2 KiB
PHP

<?php
namespace App\Services;
use Response;
use Schema;
use Hash;
use App\Libraries\ListHelper;
use Illuminate\Http\Request;
use App\Contracts\MobileAnalyticsResourceInterface;
use App\MobileAnalytics;
use App\Helpers\HttpStatusCode;
use App\Helpers\CurrentUserHelper;
use App\Libraries\UuidHelper;
class MabileAnalyticsService implements MobileAnalyticsResourceInterface
{
public $mobileAnalytics;
public function report_mobileUsage($params, $export = false)
{
$pagination = ListHelper::validatePagination($params['page_size'],$params['page']);
$list = MobileAnalytics::select('*');
if($params['date_start'] != null && $params['date_end'] != null)
{
$list = $list->where('date','>=',date('Y-m-d',strtotime($params['date_start'])))
->where('date','<=',date('Y-m-d',strtotime($params['date_end'])));
}
$sorting = $params['sorting'];
if(count($sorting) > 0)
{
$list = $list->orderBy($sorting['field'],$sorting['sort_order']);
}
if($export)
return $list->get();
else
return $list->paginate($params['page_size']);
}
private function check_existing()
{
$date = date('Y-m-d');
$data = MobileAnalytics::where('date',$date)->first();
if($data)
$this->mobileAnalytics = $data;
else
{
$this->mobileAnalytics = new MobileAnalytics();
$this->mobileAnalytics->date = $date;
}
}
public function add_active()
{
$this->check_existing();
$this->mobileAnalytics->active = isset($this->mobileAnalytics->active) ? $this->mobileAnalytics->active + 1 : 1;
$this->mobileAnalytics->save();
}
public function add_inactive()
{
$this->check_existing();
$this->mobileAnalytics->inactive = isset($this->mobileAnalytics->inactive) ? $this->mobileAnalytics->inactive + 1 : 1;
$this->mobileAnalytics->save();
}
public function add_locked()
{
$this->check_existing();
$this->mobileAnalytics->locked = isset($this->mobileAnalytics->locked) ? $this->mobileAnalytics->locked + 1 : 1;
$this->mobileAnalytics->save();
}
}