From b9d1afad4267135ba25d5491967d416632ba908d Mon Sep 17 00:00:00 2001 From: Danil-Bodry Date: Tue, 21 Apr 2026 01:28:02 +0300 Subject: [PATCH] refactor --- .../iikocon/test/IikoOlapColumnsImporter.java | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/src/main/java/su/xserver/iikocon/test/IikoOlapColumnsImporter.java b/src/main/java/su/xserver/iikocon/test/IikoOlapColumnsImporter.java index c503d55..5bb0b59 100644 --- a/src/main/java/su/xserver/iikocon/test/IikoOlapColumnsImporter.java +++ b/src/main/java/su/xserver/iikocon/test/IikoOlapColumnsImporter.java @@ -126,7 +126,6 @@ public class IikoOlapColumnsImporter { // Запрос полей для конкретного reportType private Future fetchColumnsFromIiko(String reportType, String token) { - Promise promise = Promise.promise(); String url = "https://" + iikoServer + "/resto/api/v2/reports/olap/columns?key=" + token + "&reportType=" + reportType; @@ -163,7 +162,7 @@ public class IikoOlapColumnsImporter { } } - // ---------- Методы работы с БД (те же, с поддержкой UTF8) ---------- + // ---------- Методы работы с БД (с префиксом iiko_) ---------- private Future storeColumnsToDb(String reportType, JsonObject columns) { return getOrCreateReportType(reportType) .compose(reportTypeId -> { @@ -178,14 +177,14 @@ public class IikoOlapColumnsImporter { private Future getOrCreateReportType(String reportType) { Promise promise = Promise.promise(); - String selectSql = "SELECT report_type_id FROM report_types WHERE name = ?"; + String selectSql = "SELECT report_type_id FROM iiko_report_types WHERE name = ?"; dbPool.preparedQuery(selectSql) .execute(Tuple.of(reportType)) .onComplete(ar -> { if (ar.succeeded() && ar.result().size() > 0) { promise.complete(ar.result().iterator().next().getInteger("report_type_id")); } else if (ar.succeeded()) { - String insertSql = "INSERT INTO report_types (name, description) VALUES (?, ?)"; + String insertSql = "INSERT INTO iiko_report_types (name, description) VALUES (?, ?)"; dbPool.preparedQuery(insertSql) .execute(Tuple.of(reportType, "OLAP report type: " + reportType)) .onComplete(insAr -> { @@ -224,7 +223,7 @@ public class IikoOlapColumnsImporter { JsonArray tagsArray = fieldDef.getJsonArray("tags", new JsonArray()); String insertFieldSql = """ - INSERT INTO fields ( + INSERT INTO iiko_fields ( report_type_id, field_key, field_key_normal, name, type, type_normal, aggregation_allowed, grouping_allowed, filtering_allowed ) @@ -244,7 +243,7 @@ public class IikoOlapColumnsImporter { aggregationAllowed, groupingAllowed, filteringAllowed )) .compose(ignored -> { - String selectFieldIdSql = "SELECT field_id FROM fields WHERE report_type_id = ? AND field_key = ?"; + String selectFieldIdSql = "SELECT field_id FROM iiko_fields WHERE report_type_id = ? AND field_key = ?"; return dbPool.preparedQuery(selectFieldIdSql) .execute(Tuple.of(reportTypeId, fieldKey)) .compose(rows -> { @@ -269,14 +268,14 @@ public class IikoOlapColumnsImporter { private Future getOrCreateTag(String tagName) { Promise promise = Promise.promise(); - String selectSql = "SELECT tag_id FROM tags WHERE tag_name = ?"; + String selectSql = "SELECT tag_id FROM iiko_tags WHERE tag_name = ?"; dbPool.preparedQuery(selectSql) .execute(Tuple.of(tagName)) .onComplete(ar -> { if (ar.succeeded() && ar.result().size() > 0) { promise.complete(ar.result().iterator().next().getInteger("tag_id")); } else { - String insertSql = "INSERT IGNORE INTO tags (tag_name) VALUES (?)"; + String insertSql = "INSERT IGNORE INTO iiko_tags (tag_name) VALUES (?)"; dbPool.preparedQuery(insertSql) .execute(Tuple.of(tagName)) .onComplete(insAr -> { @@ -297,7 +296,7 @@ public class IikoOlapColumnsImporter { } private Future linkFieldTag(int fieldId, int tagId) { - String sql = "INSERT IGNORE INTO field_tags (field_id, tag_id) VALUES (?, ?)"; + String sql = "INSERT IGNORE INTO iiko_field_tags (field_id, tag_id) VALUES (?, ?)"; return dbPool.preparedQuery(sql) .execute(Tuple.of(fieldId, tagId)) .mapEmpty(); @@ -305,14 +304,14 @@ public class IikoOlapColumnsImporter { private Future createTablesIfNotExist() { String createReportTypesTable = """ - CREATE TABLE IF NOT EXISTS report_types ( + CREATE TABLE IF NOT EXISTS iiko_report_types ( report_type_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50) UNIQUE NOT NULL, description TEXT NOT NULL ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci """; String createFieldsTable = """ - CREATE TABLE IF NOT EXISTS fields ( + CREATE TABLE IF NOT EXISTS iiko_fields ( field_id INT AUTO_INCREMENT PRIMARY KEY, report_type_id INT NOT NULL, field_key VARCHAR(255) NOT NULL, @@ -325,27 +324,27 @@ public class IikoOlapColumnsImporter { filtering_allowed BOOLEAN NOT NULL DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, UNIQUE KEY uk_fields_report_type_field_key (report_type_id, field_key), - FOREIGN KEY (report_type_id) REFERENCES report_types(report_type_id) ON DELETE RESTRICT + FOREIGN KEY (report_type_id) REFERENCES iiko_report_types(report_type_id) ON DELETE RESTRICT ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci """; String createTagsTable = """ - CREATE TABLE IF NOT EXISTS tags ( + CREATE TABLE IF NOT EXISTS iiko_tags ( tag_id INT AUTO_INCREMENT PRIMARY KEY, tag_name VARCHAR(100) UNIQUE NOT NULL ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci """; String createFieldTagsTable = """ - CREATE TABLE IF NOT EXISTS field_tags ( + CREATE TABLE IF NOT EXISTS iiko_field_tags ( field_id INT NOT NULL, tag_id INT NOT NULL, PRIMARY KEY (field_id, tag_id), - FOREIGN KEY (field_id) REFERENCES fields(field_id) ON DELETE CASCADE, - FOREIGN KEY (tag_id) REFERENCES tags(tag_id) ON DELETE CASCADE + FOREIGN KEY (field_id) REFERENCES iiko_fields(field_id) ON DELETE CASCADE, + FOREIGN KEY (tag_id) REFERENCES iiko_tags(tag_id) ON DELETE CASCADE ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci """; - String createIdxFieldsReportType = "CREATE INDEX IF NOT EXISTS idx_fields_report_type ON fields(report_type_id)"; - String createIdxFieldsName = "CREATE INDEX IF NOT EXISTS idx_fields_name ON fields(name)"; - String createIdxFieldTagsTagId = "CREATE INDEX IF NOT EXISTS idx_field_tags_tag_id ON field_tags(tag_id)"; + String createIdxFieldsReportType = "CREATE INDEX IF NOT EXISTS idx_fields_report_type ON iiko_fields(report_type_id)"; + String createIdxFieldsName = "CREATE INDEX IF NOT EXISTS idx_fields_name ON iiko_fields(name)"; + String createIdxFieldTagsTagId = "CREATE INDEX IF NOT EXISTS idx_field_tags_tag_id ON iiko_field_tags(tag_id)"; return dbPool.query(createReportTypesTable).execute() .compose(ignored -> dbPool.query(createFieldsTable).execute())