improved polling logi

This commit is contained in:
Prince
2026-06-12 23:48:47 +02:00
parent 573e4b154c
commit 5d3c9a46a3
3 changed files with 49 additions and 59 deletions

View File

@@ -144,19 +144,17 @@ public class ProviderService {
return meta.get("hotProductId");
}
public String getExternalId(String providerId, String productUuid) {
public String getExternalId(String providerId, String productName) {
try {
UUID productUid = UUID.fromString(productUuid);
List<SBZProductDto> products = getProviderProducts(providerId);
return products.stream()
.filter(product -> product.getUid().equals(productUid))
.filter(product -> product.getName().equals(productName))
.map(SBZProductDto::getExternalId)
.findFirst()
.orElse(null);
} catch (IllegalArgumentException e) {
log.error("Invalid UUID format: " + productUuid, e);
} catch (Exception e) {
log.error("Failed to fetch external Id: " + productName, e);
return null;
}
}

View File

@@ -14,6 +14,7 @@ import zw.qantra.tm.domain.enums.CurrencyType;
import zw.qantra.tm.domain.enums.RequestType;
import zw.qantra.tm.domain.enums.Status;
import zw.qantra.tm.domain.models.AdditionalData;
import zw.qantra.tm.domain.models.Provider;
import zw.qantra.tm.domain.models.Transaction;
import zw.qantra.tm.domain.services.*;
import zw.qantra.tm.domain.services.processors.TransactionProcessorInterface;
@@ -170,13 +171,16 @@ public class HotRechargeIntegrationProcessor implements TransactionProcessorInte
// do this for Econet bundles
if(providerId.equals("111")) {
String productCode = providerService.getExternalId(providerId, transaction.getProductUid());
Provider provider = providerService.getProviderRepository()
.findByClientId(transaction.getBillClientId());
String productCode = providerService.getExternalId(provider.getId().toString(), transaction.getBillProductName());
List<Map<String, String>> rechargeOptions = new ArrayList<>();
Map<String, String> option = new LinkedHashMap<>();
option.put("Name", "ProductCode");
option.put("ParameterType", "String");
option.put("Value", productCode);
rechargeOptions.add(option);
request.put("RechargeOptions", rechargeOptions);
}
logger.info("Sending recharge request: {}", request);

View File

@@ -1,224 +1,212 @@
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:pro="http://www.liquibase.org/xml/ns/pro" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-latest.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd">
<changeSet author="khoza (generated)" id="1781292513634-7">
<createIndex indexName="IX_charge_exclude_productsPK" tableName="charge_exclude_products" unique="true">
<column name="charge_id"/>
<column name="charge_condition_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-8">
<createIndex indexName="IX_charge_include_productsPK" tableName="charge_include_products" unique="true">
<column name="charge_id"/>
<column name="charge_condition_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-9">
<changeSet author="khoza (generated)" id="1781296665910-3">
<createIndex indexName="idx_additional_data_txn_id" tableName="additional_data">
<column name="transaction_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-10">
<changeSet author="khoza (generated)" id="1781296665910-4">
<createIndex indexName="idx_additional_data_txn_type" tableName="additional_data">
<column name="transaction_id"/>
<column name="request_type"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-11">
<changeSet author="khoza (generated)" id="1781296665910-5">
<createIndex indexName="idx_category_name" tableName="category">
<column name="name"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-12">
<changeSet author="khoza (generated)" id="1781296665910-6">
<createIndex indexName="idx_charge_condition_codes" tableName="charge_condition">
<column name="codes"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-13">
<changeSet author="khoza (generated)" id="1781296665910-7">
<createIndex indexName="idx_charge_currency" tableName="charge">
<column name="currency"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-14">
<changeSet author="khoza (generated)" id="1781296665910-8">
<createIndex indexName="idx_charge_label_currency" tableName="charge">
<column name="charge_label"/>
<column name="currency"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-15">
<changeSet author="khoza (generated)" id="1781296665910-9">
<createIndex indexName="idx_currency_iso_code" tableName="currency">
<column name="iso_code"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-16">
<changeSet author="khoza (generated)" id="1781296665910-10">
<createIndex indexName="idx_gbi_batch_confirm" tableName="group_batch_item">
<column name="group_batch_id"/>
<column name="confirm_status"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-17">
<changeSet author="khoza (generated)" id="1781296665910-11">
<createIndex indexName="idx_gbi_batch_id" tableName="group_batch_item">
<column name="group_batch_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-18">
<changeSet author="khoza (generated)" id="1781296665910-12">
<createIndex indexName="idx_gbi_batch_integ" tableName="group_batch_item">
<column name="group_batch_id"/>
<column name="integration_status"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-19">
<changeSet author="khoza (generated)" id="1781296665910-13">
<createIndex indexName="idx_gbi_txn_id" tableName="group_batch_item">
<column name="transaction_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-20">
<changeSet author="khoza (generated)" id="1781296665910-14">
<createIndex indexName="idx_group_batch_created_at" tableName="group_batch">
<column name="created_at"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-21">
<changeSet author="khoza (generated)" id="1781296665910-15">
<createIndex indexName="idx_group_batch_payment_ref" tableName="group_batch">
<column name="payment_reference"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-22">
<changeSet author="khoza (generated)" id="1781296665910-16">
<createIndex indexName="idx_group_batch_recipient_group_id" tableName="group_batch">
<column name="recipient_group_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-23">
<changeSet author="khoza (generated)" id="1781296665910-17">
<createIndex indexName="idx_group_batch_status" tableName="group_batch">
<column name="status"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-24">
<changeSet author="khoza (generated)" id="1781296665910-18">
<createIndex indexName="idx_group_batch_user_id" tableName="group_batch">
<column name="user_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-25">
<changeSet author="khoza (generated)" id="1781296665910-19">
<createIndex indexName="idx_otp_username_type" tableName="otp">
<column name="username"/>
<column name="otp_type"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-26">
<changeSet author="khoza (generated)" id="1781296665910-20">
<createIndex indexName="idx_payment_processor_label" tableName="payment_processor">
<column name="label"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-27">
<changeSet author="khoza (generated)" id="1781296665910-21">
<createIndex indexName="idx_provider_category" tableName="provider">
<column name="category"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-28">
<changeSet author="khoza (generated)" id="1781296665910-22">
<createIndex indexName="idx_provider_client_id" tableName="provider">
<column name="client_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-29">
<changeSet author="khoza (generated)" id="1781296665910-23">
<createIndex indexName="idx_recipient_account_user" tableName="recipient">
<column name="account"/>
<column name="user_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-30">
<changeSet author="khoza (generated)" id="1781296665910-24">
<createIndex indexName="idx_recipient_email" tableName="recipient">
<column name="email"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-31">
<changeSet author="khoza (generated)" id="1781296665910-25">
<createIndex indexName="idx_recipient_group_user_id" tableName="recipient_group">
<column name="user_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-32">
<changeSet author="khoza (generated)" id="1781296665910-26">
<createIndex indexName="idx_recipient_phone" tableName="recipient">
<column name="phone_number"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-33">
<changeSet author="khoza (generated)" id="1781296665910-27">
<createIndex indexName="idx_recipient_user_id" tableName="recipient">
<column name="user_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-34">
<changeSet author="khoza (generated)" id="1781296665910-28">
<createIndex indexName="idx_rgm_group_id" tableName="recipient_group_member">
<column name="recipient_group_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-35">
<changeSet author="khoza (generated)" id="1781296665910-29">
<createIndex indexName="idx_rgm_group_recipient" tableName="recipient_group_member">
<column name="recipient_group_id"/>
<column name="recipient_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-36">
<changeSet author="khoza (generated)" id="1781296665910-30">
<createIndex indexName="idx_setting_name" tableName="setting">
<column name="setting_name"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-37">
<changeSet author="khoza (generated)" id="1781296665910-31">
<createIndex indexName="idx_transaction_confirm_pay_integ" tableName="transaction">
<column name="confirmation_status"/>
<column name="payment_status"/>
<column name="integration_status"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-38">
<changeSet author="khoza (generated)" id="1781296665910-32">
<createIndex indexName="idx_transaction_created_at" tableName="transaction">
<column name="created_at"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-39">
<changeSet author="khoza (generated)" id="1781296665910-33">
<createIndex indexName="idx_transaction_credit_phone" tableName="transaction">
<column name="credit_phone"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-40">
<changeSet author="khoza (generated)" id="1781296665910-34">
<createIndex indexName="idx_transaction_debit_phone" tableName="transaction">
<column name="debit_phone"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-41">
<changeSet author="khoza (generated)" id="1781296665910-35">
<createIndex indexName="idx_transaction_pay_poll" tableName="transaction">
<column name="payment_status"/>
<column name="polling_status"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-42">
<changeSet author="khoza (generated)" id="1781296665910-36">
<createIndex indexName="idx_transaction_reference" tableName="transaction">
<column name="reference"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-43">
<changeSet author="khoza (generated)" id="1781296665910-37">
<createIndex indexName="idx_transaction_status" tableName="transaction">
<column name="status"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-44">
<changeSet author="khoza (generated)" id="1781296665910-38">
<createIndex indexName="idx_transaction_trace_type" tableName="transaction">
<column name="trace"/>
<column name="type"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-45">
<changeSet author="khoza (generated)" id="1781296665910-39">
<createIndex indexName="idx_transaction_user_id" tableName="transaction">
<column name="user_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-46">
<changeSet author="khoza (generated)" id="1781296665910-40">
<createIndex indexName="idx_transaction_workflow_id" tableName="transaction">
<column name="workflow_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-47">
<changeSet author="khoza (generated)" id="1781296665910-41">
<createIndex indexName="idx_txn_event_txn_id" tableName="transaction_event">
<column name="transaction_id"/>
</createIndex>
</changeSet>
<changeSet author="khoza (generated)" id="1781292513634-48">
<changeSet author="khoza (generated)" id="1781296665910-42">
<createIndex indexName="idx_user_phone" tableName="users">
<column name="phone"/>
</createIndex>