Export Service
Export Service Platon platformasida turli formatdagi resurslarni (CSV, Excel, Word) yaratish va foydalanuvchiga taqdim etish imkonini beruvchi servisdir.
U foydalanuvchi so‘rovlarini qabul qiladi, resursni tayyorlaydi, cache orqali tezkor ishlashni ta’minlaydi va loglarni markaziy tizimga yuboradi.
Umumiy Ma’lumot
Export Service quyidagi imkoniyatlarni ta’minlaydi:
- Resurslarni yaratish va eksport qilish (CSV, Excel, Word)
- Resurslarni tayyorlashda foydalanuvchi parametrlarini qo‘llash
- Ma’lumotlar bazasidan kerakli parametrlarni olish va qayta ishlash
- Resurslarni vaqtinchalik fayl tizimida saqlash va foydalanuvchiga yuborish
- Cache orqali resurslarni tezkor kirish uchun boshqarish
- Xatoliklar va operatsiyalarni markaziy tizimga loglash (NATS orqali)
Database Interactions
Export Service quyidagi ma’lumotlar bazasi operatsiyalarini bajaradi:
- Retrieve: Ma’lumotlar bazasidan eksport konfiguratsiyasini olish
- Params SQL Execution: Resurs yaratish jarayonida kerakli parametrlarni olish
- Transactional Handling: Parametrlarni olish va resursni yaratish jarayonlari xavfsiz tarzda amalga oshiriladi
Barcha CRUD operatsiyalar foydalanuvchi sessiyasi bilan bog‘liq.
Arxitektura Komponentlari
- ExportResourceService: Asosiy servis bo‘lib, resurslarni tayyorlash, cache bilan ishlash va foydalanuvchiga yuborishni boshqaradi
- ExportHandler: Resurs formatiga mos ravishda (CSV, Excel, Word) fayl yaratish logikasini bajaradi
- CacheOperation: Resurslarni cache’da saqlash, yangilash va tozalash
- DataBase: Parametrlarni olish va SQL so‘rovlarini bajarish
- ThreadPoolTaskScheduler: Resurslarni va cache’ni rejalashtirilgan intervallarda yangilash
- RestSessionContext: Foydalanuvchi sessiyasi va parametrlarini boshqaradi
- ExportUtils: ExportHandler’larni aniqlash va moslashtirish
- Logging Service: Xatoliklar va muvaffaqiyatli operatsiyalarni markaziy tizimga yuboradi (NATS)
- FileService: Word va Excel shablon fayllarini yuklash va ishlatish
Resource Management Capabilities
- CSV, Excel va Word formatlarida resurslar yaratish va foydalanuvchiga yuborish
- Parametrlar va request body orqali foydalanuvchi ma’lumotlarini resurs bilan birlashtirish
- Fayl tizimida vaqtinchalik resurslarni saqlash va eski fayllarni avtomatik tozalash
- Resurslarni cache orqali tezkor kirish va yukni kamaytirish
- Resurslarni yaratishda xatoliklar va muvaffaqiyatli operatsiyalarni markaziy tizimga loglash
Cache va Performance
- Export resurslari cache’da saqlanadi
- Tezkor kirish va server yukini kamaytirish ta’minlanadi
- Cache’dagi resurslar ma’lum interval bilan yangilanadi
- Eski yoki keraksiz resurslar avtomatik tozalanadi
- Cache ishlatilganida SQL so‘rovlari va fayl yaratilishi kamroq bo‘ladi
Access Control
- Foydalanuvchi ruxsatlariga asoslanib resurslarga kirish nazorat qilinadi
- Role va permissionlar orqali foydalanuvchining eksport resursiga kirish huquqi aniqlanadi
- Admin foydalanuvchilar barcha resurslarga kirish huquqiga ega
Logging va Monitoring
- Foydalanuvchi so‘rovlari va eksport operatsiyalari loglanadi
- Xatoliklar va muvaffaqiyatli operatsiyalar NATS orqali markaziy tizimga yuboriladi
- Resurslarni tayyorlash va yuborish jarayonlari monitoring qilinadi
Temporary Files Management
- Vaqtinchalik yaratilgan fayllar fayl tizimida saqlanadi (
media/temp/) - Har kuni kechqurun 12:00 da eski fayllar avtomatik o‘chiriladi
- Fayl yaratishda MD5 hash orqali unikal nom beriladi
- Fayllar eksport jarayonida fayl tizimidan foydalanuvchiga yuboriladi
Handlers
CSV Handler
- CSV formatida fayl yaratadi
- UTF-8 BOM qo‘shadi
- Random satrlarga checksum qo‘shadi
- Foydalanuvchi ma’lumotlarini va request body’ni faylga qo‘shadi
Excel Handler
- Excel shablon faylini JXLS yordamida ishlaydi
- SQL parametrlarini va foydalanuvchi request body’ni shablonga qo‘shadi
- Checksum bilan satrlarni himoya qiladi
- Yaralgan Excel faylini foydalanuvchiga yuboradi
Word Handler
- Word shablon faylini Aspose Words orqali ishlaydi
- Nested map va list ma’lumotlarini tekislashtiradi (flatten)
- Request body va SQL parametrlarini shablon o‘zgaruvchilari bilan almashtiradi
- Yaralgan Word faylini foydalanuvchiga yuboradi
Xulosa
Export Service Platon platformasida turli formatdagi resurslarni foydalanuvchiga yuborish va tezkor ishlashni ta’minlaydi.
U CSV, Excel va Word formatlarini qo‘llab-quvvatlaydi, SQL parametrlarini va foydalanuvchi ma’lumotlarini birlashtiradi, cache va vaqtinchalik fayl tizimi orqali samarali ishlashni ta’minlaydi, shuningdek xatoliklar va muvaffaqiyatli operatsiyalarni markaziy tizimga loglaydi.