154 lines
5.7 KiB
PHP
154 lines
5.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Http;
|
|
|
|
class ReportsController extends Controller
|
|
{
|
|
protected $apiBaseUrl = 'http://192.168.100.6:8081/api/';
|
|
|
|
public function mobileUsage(Request $request)
|
|
{
|
|
$params = [
|
|
'page' => $request->input('page', 1),
|
|
'page_size' => 5,
|
|
'date_start' => $request->input('date_start'),
|
|
'date_end' => $request->input('date_end'),
|
|
'sorting' => $request->input('sort', 'date|desc'),
|
|
];
|
|
|
|
$response = Http::get($this->apiBaseUrl . 'cms/reportMobileUsage', $params);
|
|
$data = $response->json();
|
|
|
|
$mobileUsageData = [];
|
|
$currentPage = $params['page'];
|
|
$lastPage = 1;
|
|
$total = 0;
|
|
|
|
if ($response->successful() && isset($data['data'])) {
|
|
$mobileUsageData = array_map(function ($item) {
|
|
return [
|
|
'id' => $item['id'] ?? uniqid(),
|
|
'date' => $item['date'],
|
|
'activeUsers' => $item['active_users'],
|
|
'inactiveUsers' => $item['inactive_users'],
|
|
'lockedUsers' => $item['locked_users'],
|
|
];
|
|
}, $data['data']);
|
|
$currentPage = $data['meta']['current_page'] ?? 1;
|
|
$lastPage = $data['meta']['last_page'] ?? 1;
|
|
$total = $data['meta']['total'] ?? count($mobileUsageData);
|
|
}
|
|
|
|
return view('pages.reports.mobile-usage-report', compact('mobileUsageData', 'currentPage', 'lastPage', 'total'));
|
|
}
|
|
|
|
public function registration(Request $request)
|
|
{
|
|
$params = [
|
|
'page' => $request->input('page', 1),
|
|
'page_size' => 5,
|
|
'date_start' => $request->input('date_start'),
|
|
'date_end' => $request->input('date_end'),
|
|
'sorting' => $request->input('sort', 'date|desc'),
|
|
];
|
|
|
|
$response = Http::get($this->apiBaseUrl . 'cms/reportRegistration', $params);
|
|
$data = $response->json();
|
|
|
|
$registrationData = [];
|
|
$currentPage = $params['page'];
|
|
$lastPage = 1;
|
|
$total = 0;
|
|
|
|
if ($response->successful() && isset($data['data'])) {
|
|
$registrationData = array_map(function ($item) {
|
|
return [
|
|
'id' => $item['id'] ?? uniqid(),
|
|
'date' => $item['date'],
|
|
'activatedCards' => $item['activated_cards'],
|
|
'registeredMembers' => $item['registered_members'],
|
|
];
|
|
}, $data['data']);
|
|
$currentPage = $data['meta']['current_page'] ?? 1;
|
|
$lastPage = $data['meta']['last_page'] ?? 1;
|
|
$total = $data['meta']['total'] ?? count($registrationData);
|
|
}
|
|
|
|
return view('pages.reports.registration-report', compact('registrationData', 'currentPage', 'lastPage', 'total'));
|
|
}
|
|
|
|
public function stationRating(Request $request)
|
|
{
|
|
$params = [
|
|
'page' => $request->input('page', 1),
|
|
'page_size' => 5,
|
|
'date_start' => $request->input('date_start'),
|
|
'date_end' => $request->input('date_end'),
|
|
'sorting' => $request->input('sort', 'transaction_date_time|desc'),
|
|
];
|
|
|
|
$response = Http::get($this->apiBaseUrl . 'cms/reportStationRatings', $params);
|
|
$data = $response->json();
|
|
|
|
$stationRatingData = [];
|
|
$currentPage = $params['page'];
|
|
$lastPage = 1;
|
|
$total = 0;
|
|
|
|
if ($response->successful() && isset($data['data'])) {
|
|
$stationRatingData = array_map(function ($item) {
|
|
return [
|
|
'id' => $item['id'] ?? uniqid(),
|
|
'transactionDateTime' => $item['transaction_date_time'],
|
|
'cardNumber' => $item['card_number'],
|
|
'salesInvoice' => $item['sales_invoice'],
|
|
'station' => $item['station'],
|
|
'ratings' => $item['ratings'],
|
|
];
|
|
}, $data['data']);
|
|
$currentPage = $data['meta']['current_page'] ?? 1;
|
|
$lastPage = $data['meta']['last_page'] ?? 1;
|
|
$total = $data['meta']['total'] ?? count($stationRatingData);
|
|
}
|
|
|
|
return view('pages.reports.station-rating-report', compact('stationRatingData', 'currentPage', 'lastPage', 'total'));
|
|
}
|
|
|
|
public function topUp(Request $request)
|
|
{
|
|
$params = [
|
|
'page' => $request->input('page', 1),
|
|
'page_size' => 5,
|
|
'date_start' => $request->input('date_start'),
|
|
'date_end' => $request->input('date_end'),
|
|
'sorting' => $request->input('sort', 'transaction_date_time|desc'),
|
|
];
|
|
|
|
$response = Http::get($this->apiBaseUrl . 'cms/reportTopUp', $params);
|
|
$data = $response->json();
|
|
|
|
$topUpData = [];
|
|
$currentPage = $params['page'];
|
|
$lastPage = 1;
|
|
$total = 0;
|
|
|
|
if ($response->successful() && isset($data['data'])) {
|
|
$topUpData = array_map(function ($item) {
|
|
return [
|
|
'id' => $item['id'] ?? uniqid(),
|
|
'transactionDateTime' => $item['transaction_date_time'],
|
|
'cardNumber' => $item['card_number'],
|
|
'topUpAmount' => $item['top_up_amount'],
|
|
];
|
|
}, $data['data']);
|
|
$currentPage = $data['meta']['current_page'] ?? 1;
|
|
$lastPage = $data['meta']['last_page'] ?? 1;
|
|
$total = $data['meta']['total'] ?? count($topUpData);
|
|
}
|
|
|
|
return view('pages.reports.top-up-usage-report', compact('topUpData', 'currentPage', 'lastPage', 'total'));
|
|
}
|
|
} |