Browse Source

车位统计接口,模式接口,占比接口

master
wanghongjun 1 month ago
parent
commit
6d6079b4c7
  1. 71
      app/Http/Controllers/Admin/IndexController.php
  2. 1
      routes/admin/api.php

71
app/Http/Controllers/Admin/IndexController.php

@ -2,11 +2,15 @@
namespace App\Http\Controllers\Admin;
use App\Models\AdminFloor;
use App\Models\ParkingSpace;
use App\Models\ParkingSpaceType;
use App\Services\AdminMenuService;
use App\Services\ApiResponseService;
use App\Services\OperationLogService;
use Exception;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class IndexController extends BaseController
{
@ -20,11 +24,54 @@ class IndexController extends BaseController
}
//
public function index(): JsonResponse
public function index(Request $request): JsonResponse
{
try {
$data = [];
$building_floor = $request->get('building_floor', 1);
$pattern_id = $request->get('pattern_id', 1);
$floorData = AdminFloor::query()->where(
'building_floor',
$building_floor
)->select(['id', 'name'])->get()->toArray();
foreach ($floorData as $item) {
$floor_id = $item['id'];
$floor_name = $item['name'];
$sum_count = ParkingSpace::query()->where('floor_id', $floor_id)
->count();
$vacant_count = ParkingSpace::query()->where(
['floor_id' => $floor_id, 'status' => 0]
)->count();
$repair_count = ParkingSpace::query()->where(
['floor_id' => $floor_id, 'status' => 2]
)->count();
$typeData = ParkingSpaceType::getData();
$type_list = [];
foreach ($typeData as $typeItem) {
$spaceWhere = [
'floor_id' => $floor_id,
'space_type_id' => $typeItem['id']
];
$type_count = ParkingSpace::query()->where($spaceWhere)
->count();
$type_list[] = [
'count' => $type_count,
'name' => $typeItem['name']
];
}
$data[] = [
'floor_name' => $floor_name,
'sum_count' => $sum_count,
'vacant_count' => $vacant_count,
'parking_space_type_list' => $type_list,
'repair_count' => $repair_count
];
}
return $this->responseService->success($data);
} catch (Exception $e) {
@ -35,10 +82,28 @@ class IndexController extends BaseController
}
}
public function parkingSpaceStatistics(Request $request)
{
try {
$pattern_id = $request->get('pattern_id', 1);
$sum = ParkingSpace::query()->count();
$use_sum = ParkingSpace::query()->where('status', 1)->count();
$date['proportion'] = get_ratio($sum, $use_sum);
return $this->responseService->success($date);
} catch (Exception $e) {
$m_prefix = __('exception.get_data_failed');
return $this->responseService->systemError(
$m_prefix . ':' . $e->getMessage()
);
}
}
public function menu(): JsonResponse
{
try {
$data = (new AdminMenuService(new OperationLogService()))->getUserMenuTreeList(
$data = (new AdminMenuService(
new OperationLogService()
))->getUserMenuTreeList(
$this->adminUserId
);
return $this->responseService->success($data);

1
routes/admin/api.php

@ -39,6 +39,7 @@ Route::group(['prefix' => 'admin'], function () {
Route::get('/me', [AuthController::class, 'me']);
// 首页
Route::get('/index', [IndexController::class, 'index']);
Route::get('/index/statistics', [IndexController::class, 'parkingSpaceStatistics']);
Route::get('/menu', [IndexController::class, 'menu']);
// 活动行事历
Route::get('/eventCalendar', [EventCalendarController::class, 'index']);

Loading…
Cancel
Save