From a30a90741ee774bfc77ffd2e3031969f005f8066 Mon Sep 17 00:00:00 2001 From: Vusumuzi Khoza Date: Mon, 4 May 2026 00:05:38 +0200 Subject: [PATCH] minor fixes on confirmations --- .../tm/{config => configs}/CacheConfig.java | 2 +- .../tm/domain/controllers/ConfigController.java | 8 ++++++++ .../tm/domain/services/ProviderService.java | 15 +++++++++------ .../NetoneConfirmationHotProcessor.java | 6 ++++++ 4 files changed, 24 insertions(+), 7 deletions(-) rename src/main/java/zw/qantra/tm/{config => configs}/CacheConfig.java (96%) diff --git a/src/main/java/zw/qantra/tm/config/CacheConfig.java b/src/main/java/zw/qantra/tm/configs/CacheConfig.java similarity index 96% rename from src/main/java/zw/qantra/tm/config/CacheConfig.java rename to src/main/java/zw/qantra/tm/configs/CacheConfig.java index cdd302b..9358261 100644 --- a/src/main/java/zw/qantra/tm/config/CacheConfig.java +++ b/src/main/java/zw/qantra/tm/configs/CacheConfig.java @@ -1,4 +1,4 @@ -package zw.qantra.tm.config; +package zw.qantra.tm.configs; import com.github.benmanes.caffeine.cache.Caffeine; import org.springframework.cache.CacheManager; diff --git a/src/main/java/zw/qantra/tm/domain/controllers/ConfigController.java b/src/main/java/zw/qantra/tm/domain/controllers/ConfigController.java index 791ad77..b45b8d0 100644 --- a/src/main/java/zw/qantra/tm/domain/controllers/ConfigController.java +++ b/src/main/java/zw/qantra/tm/domain/controllers/ConfigController.java @@ -1,6 +1,7 @@ package zw.qantra.tm.domain.controllers; import lombok.RequiredArgsConstructor; +import org.springframework.cache.CacheManager; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -36,6 +37,13 @@ public class ConfigController { private final ProviderService providerService; private final CategoryService categoryService; private final IntegrationProcessorService integrationProcessorService; + private final CacheManager cacheManager; + + @GetMapping("/cache/clear") + public ResponseEntity clearCache(){ + cacheManager.getCacheNames().forEach(name -> cacheManager.getCache(name).clear()); + return ResponseEntity.ok("Cache cleared"); + } @GetMapping("/seed/live") public ResponseEntity seedLiveConfig(){ diff --git a/src/main/java/zw/qantra/tm/domain/services/ProviderService.java b/src/main/java/zw/qantra/tm/domain/services/ProviderService.java index 1a2e592..2b77823 100644 --- a/src/main/java/zw/qantra/tm/domain/services/ProviderService.java +++ b/src/main/java/zw/qantra/tm/domain/services/ProviderService.java @@ -73,14 +73,17 @@ public class ProviderService { return products; } - @Cacheable(value = "providerProducts", key = "#providerId") - public List getProviderProducts(String providerId) { + @Cacheable(value = "providerProducts", key = "#providerUid") + public List getProviderProducts(String providerUid) { try { - Provider provider = providerRepository.findByClientId(providerId); + Provider provider = providerRepository.findById(UUID.fromString(providerUid)).orElse(null); if (provider == null) { return Collections.emptyList(); } - String stockUrl = hotApiUrl + "/query/stock/" + 111; + Map meta = Utils.fromJson(provider.getMeta(), Map.class); + String providerId = meta.get("hotProductId"); + + String stockUrl = hotApiUrl + "/query/stock/" + providerId; HttpHeaders headers = new HttpHeaders(); String token = hotRechargeTokenService.getToken(); headers.setBearerAuth(token); @@ -91,8 +94,8 @@ public class ProviderService { List products = new ArrayList<>(); for (Object item : stock) { LinkedHashMap stockItem = (LinkedHashMap) item; - String stockProviderId = (String) stockItem.get("providerId"); - if (stockProviderId.equals(providerId)) { + int stockProviderId = (int) stockItem.get("productId"); // providerId is referred to as productId in the stock response + if (String.valueOf(stockProviderId).equals(providerId)) { log.info("Found matching provider in stock: " + stockItem); SBZProductDto sbzProductDto = new SBZProductDto(); diff --git a/src/main/java/zw/qantra/tm/domain/services/processors/confirmations/hotrecharge/NetoneConfirmationHotProcessor.java b/src/main/java/zw/qantra/tm/domain/services/processors/confirmations/hotrecharge/NetoneConfirmationHotProcessor.java index 53eeb52..55cfbcd 100644 --- a/src/main/java/zw/qantra/tm/domain/services/processors/confirmations/hotrecharge/NetoneConfirmationHotProcessor.java +++ b/src/main/java/zw/qantra/tm/domain/services/processors/confirmations/hotrecharge/NetoneConfirmationHotProcessor.java @@ -54,6 +54,12 @@ public class NetoneConfirmationHotProcessor implements TransactionProcessorInter put("name", "Destination Phone Number"); put("value", transaction.getCreditAccount()); }}); + if(transaction.getBillProductName() != null && !transaction.getBillProductName().isEmpty()) { + additionalDataList.add(new HashMap() {{ + put("name", "Product"); + put("value", transaction.getBillProductName()); + }}); + } transaction.setAdditionalData(additionalDataList); AdditionalData additionalData = AdditionalData.builder()