Доработка апи

pull/7/head
Rustem 2025-04-18 14:01:16 +05:00
parent ee0f52a4c7
commit 33ddc91e79
2 changed files with 57 additions and 4 deletions

View File

@ -268,6 +268,7 @@ class MobileApiController extends Controller
'fuel_tank' => $mark?->fuel_tank ?? '50', 'fuel_tank' => $mark?->fuel_tank ?? '50',
'class' => $class->name ?? 'Эконом', 'class' => $class->name ?? 'Эконом',
'bodywork' => $bodywork->name ?? 'Седан', 'bodywork' => $bodywork->name ?? 'Седан',
'deposit' => $tariffs_new[0]['deposit'] ?? '30000',
'conditioner' => $mark?->conditioner, 'conditioner' => $mark?->conditioner,
'photo' => $colorPath, 'photo' => $colorPath,
'tariffs' => $tariffs_new, 'tariffs' => $tariffs_new,
@ -303,4 +304,55 @@ class MobileApiController extends Controller
return null; return null;
} }
} }
public function getSum(Request $request)
{
$started_at = $request->input('started_at');
$ended_at = $request->input('ended_at');
$mark_id = $request->input('mark_id');
$start = Carbon::createFromFormat('d-m-Y H:i', $started_at);
$end = Carbon::createFromFormat('d-m-Y H:i', $ended_at);
$days = $start->diffInDays($end);
// Получаем тарифы
$tariffs = UniModel::model('pipi_auto_tariffs')
->where('model_id', $mark_id)
->get();
if (!isset($tariffs)) {
return response()->json(__('Отсутсвуют данные по машине'));
}
$discountRate = null;
$basePrice = null;
foreach ($tariffs as $range) {
if ($range->day_range_start == 1 && $range->day_range_end == 2) {
$basePrice = $range->base_rate;
}
if ($days >= $range->day_range_start && $days <= $range->day_range_end) {
$discountRate = $range->base_rate;
}
}
// Если не нашли подходящий тариф, но дней больше 30 — применяем скидку
if (is_null($discountRate) && $days > 30 && count($tariffs) > 0) {
$discountRate = round($tariffs[0]->base_rate * 0.6);
}
// Считаем суммы
$baseSum = $basePrice ? $basePrice * $days : null;
$discountedSum = $discountRate ? $discountRate * $days : null;
return response()->json([
'days' => $days,
'base_price_per_day' => $basePrice,
'discount_price_per_day' => $discountRate,
'base_sum' => $baseSum,
'discounted_sum' => $discountedSum,
]);
}
} }

View File

@ -30,6 +30,7 @@ Route::prefix('mobile')->group(function () {
Route::post('checkAvailableCar', [MobileApiController::class, 'checkAvailableCar']); Route::post('checkAvailableCar', [MobileApiController::class, 'checkAvailableCar']);
Route::post('sendApplication', [MobileApiController::class, 'sendApplication']); Route::post('sendApplication', [MobileApiController::class, 'sendApplication']);
Route::post('getApplications', [MobileApiController::class, 'getApplications']); Route::post('getApplications', [MobileApiController::class, 'getApplications']);
Route::post('getSum', [MobileApiController::class, 'getSum']);
Route::post('login', [MobileApiController::class, 'login']); Route::post('login', [MobileApiController::class, 'login']);
}); });