From 911f9719580f7f1d79da003343130184f13aa5a6 Mon Sep 17 00:00:00 2001 From: kashiuno Date: Thu, 20 Mar 2025 21:57:19 +0300 Subject: [PATCH] Sync changes and README.md --- README.md | 18 ++++++++++++++++++ .../qr/repository/QrRepository.kt | 13 +++++++------ 2 files changed, 25 insertions(+), 6 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..f5bb904 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# Приложение предоставления API и логики формирования и отправки QR-кодов + +Приложение предоставляет API для получения QR-кодов для дверей по идентификатору устройства, получение слотов для дверей по идентификатору партнера. +Реализует логику формирования и отправки QR-кодов, интеграцию с платежным шлюзом методом обратного вызова и методом опроса REST метода шлюза. + +## Запуск приложения + +Для приложения требуется БД и конфигурация подключения к БД. +При запуске приложения будут выполнены миграции в src/main/resources/db/changelog +Также для работы приложения нужен запущеный авторизационный сервер + +Для запуска приложения нужно выполнить команду + +`gradle bootRun` + +## Сборка приложения + +`gradle jar` \ No newline at end of file diff --git a/src/main/kotlin/ru/vyatsu/qr_access_api/qr/repository/QrRepository.kt b/src/main/kotlin/ru/vyatsu/qr_access_api/qr/repository/QrRepository.kt index 162cb67..1da8d43 100644 --- a/src/main/kotlin/ru/vyatsu/qr_access_api/qr/repository/QrRepository.kt +++ b/src/main/kotlin/ru/vyatsu/qr_access_api/qr/repository/QrRepository.kt @@ -3,14 +3,15 @@ package ru.vyatsu.qr_access_api.qr.repository import org.springframework.jdbc.core.JdbcTemplate import org.springframework.stereotype.Repository import ru.vyatsu.models.QrCode +import java.time.LocalDateTime import java.time.ZoneId import java.util.* private const val GET_ACTUAL_QRS_BY_UNIT_ID = """ - SELECT q.start_date_time, q.end_date_time, q.door_id, q.key_code FROM qrs q - JOIN doors d ON (d.id = q.door_id) + SELECT r.start_time, r.end_time, r.date, r.door_id, r.qr_code FROM rents r + JOIN doors d ON (d.id = r.door_id) JOIN oauth2_registered_client c ON (c.client_id = d.unit_id) - WHERE c.client_id = ? AND q.start_date_time <= CURRENT_TIMESTAMP AND q.end_date_time >= CURRENT_TIMESTAMP + WHERE c.client_id = ? AND r.start_time <= CURRENT_TIMESTAMP AND r.end_time >= CURRENT_TIMESTAMP """ @Repository @@ -24,10 +25,10 @@ class QrRepository(private val template: JdbcTemplate) { stmt }, { rs, _ -> QrCode( - rs.getTimestamp("start_date_time").toLocalDateTime().atZone(ZoneId.systemDefault()).toOffsetDateTime(), - rs.getTimestamp("end_date_time").toLocalDateTime().atZone(ZoneId.systemDefault()).toOffsetDateTime(), + LocalDateTime.of(rs.getDate("date").toLocalDate(), rs.getTime("start_time").toLocalTime()).atZone(ZoneId.systemDefault()).toOffsetDateTime(), + LocalDateTime.of(rs.getDate("date").toLocalDate(), rs.getTime("end_time").toLocalTime()).atZone(ZoneId.systemDefault()).toOffsetDateTime(), UUID.fromString(rs.getString("door_id")), - UUID.fromString(rs.getString("key_code")) + UUID.fromString(rs.getString("qr_code")) ) }) }