Skip to content

Dostosowanie aplikacji bankowej do istniejących skryptów

1. Analiza istniejących skryptów

  • Struktura bazy danych:
    • Zidentyfikuj tabele i pola używane w obecnym systemie bankowym.
    • Sprawdź, gdzie przechowywane są informacje o saldzie, historii transakcji i typach kont.
  • Funkcje API:
    • Przeanalizuj istniejące endpointy lub funkcje Lua obsługujące operacje bankowe.
  • Integracje z innymi skryptami:
    • Sprawdź powiązania z płatnościami w grze, wynagrodzeniami JOB i innymi systemami.

2. Modułowość projektu

  • Zbuduj aplikację jako zestaw niezależnych modułów:
    • Moduł salda konta.
    • Moduł transakcji.
    • Moduł kont współdzielonych.
  • Zaimplementuj uniwersalne funkcje do obsługi danych, np.:
    lua
    function getBalance(userId)
        local query = [[SELECT balance FROM users WHERE id = ?]]
        local result = MySQL.query.await(query, {userId})
        return result[1].balance
    end

3. Mapowanie danych

  • Użyj funkcji mapujących, aby dostosować nowe zapytania SQL do istniejącej struktury.
  • Przykład:
    • Nowa struktura: tablet_BankAccounts
    • Istniejąca struktura: users (pole bank_balance)
    • Mapowanie:
      lua
      local tableName = Config.useExistingBankSystem and "users" or "tablet_BankAccounts"
      local query = "SELECT bank_balance FROM " .. tableName .. " WHERE id = ?"

4. Tryb kompatybilności

  • Stwórz konfigurację umożliwiającą wybór między nową a istniejącą strukturą.
  • Przykładowa konfiguracja:
    lua
    Config = {
        useExistingBankSystem = true,
    }
  • W kodzie aplikacji uwzględnij warunki:
    lua
    if Config.useExistingBankSystem then
        -- Logika istniejącego systemu
    else
        -- Nowa logika
    end

5. Zmiana nazw tabel w bazie

  • Jeśli to możliwe, przystosuj nową aplikację do pracy na istniejących tabelach.
  • Przykład:
    • Użycie aliasów:
      lua
      local tableName = Config.useExistingBankSystem and "users" or "tablet_BankAccounts"

6. Integracja API

  • Dodaj obsługę istniejących funkcji API:
    • Wywołania funkcji:
      lua
      if Config.useExistingBankSystem then
          TriggerEvent('existingBank:transfer', senderId, receiverId, amount)
      else
          -- Nowa logika transferu
      end

7. Testy i migracja

  • Testy kompatybilności:
    • Upewnij się, że aplikacja działa zarówno z nową, jak i istniejącą strukturą.
  • Migracja danych:
    • W przypadku zmiany struktury stwórz skrypt migracyjny, np. przenoszenie danych z users.bank_balance do tablet_BankAccounts.balance:
      lua
      local migrateQuery = [[INSERT INTO tablet_BankAccounts (user_id, balance) SELECT id, bank_balance FROM users]]
      MySQL.query.await(migrateQuery)

Podsumowanie

  • Projektuj aplikację w sposób elastyczny i modułowy.
  • Umożliwiaj działanie w obu trybach (nowa/istniejąca struktura).
  • Testuj rozwiązanie w kontrolowanym środowisku przed wdrożeniem na serwer produkcyjny.