added mobile number to the transaction fields

This commit is contained in:
Md Asif 2024-10-01 11:39:55 +05:30
parent 9252b2fee5
commit 92186d932a
8 changed files with 27 additions and 18 deletions

View File

@ -1,6 +1,6 @@
package net.ipksindia package net.ipksindia
import model.TransactionRequest import net.ipksindia.model.TransactionRequest
import net.ipksindia.config.AppConfig import net.ipksindia.config.AppConfig
import net.ipksindia.dao.TellerDao import net.ipksindia.dao.TellerDao
import net.ipksindia.dao.TransactionDao import net.ipksindia.dao.TransactionDao

View File

@ -3,7 +3,7 @@ package net.ipksindia
import enums.TransactionType import enums.TransactionType
import net.ipksindia.model.NeftTransaction import net.ipksindia.model.NeftTransaction
import model.Teller import model.Teller
import model.TransactionRequest import net.ipksindia.model.TransactionRequest
import net.ipksindia.model.TransferTransaction import net.ipksindia.model.TransferTransaction
import java.time.format.DateTimeFormatter import java.time.format.DateTimeFormatter
@ -29,13 +29,14 @@ class TransactionFactory(private val transactionRequest: TransactionRequest, pri
sourceAcctNo = transactionRequest.pacsCurrentAccountNumber, sourceAcctNo = transactionRequest.pacsCurrentAccountNumber,
cbsSbAcctNo = "", cbsSbAcctNo = "",
destinationAcctNo = transactionRequest.linkedCBSAccountNumber, destinationAcctNo = transactionRequest.linkedCBSAccountNumber,
narration = "TRF to member A/C for NEFT RTGS", narration = "TRF for NEFT/RTGS",
sourceTxnNo = TransactionType.TRANSFER.code, sourceTxnNo = TransactionType.TRANSFER.code,
sourceStat = "A/P", sourceStat = "A/P",
apiType = "OUTWARD_QUEUE_POSTING", apiType = "OUTWARD_QUEUE_POSTING",
remitterName = transactionRequest.remitterName, remitterName = transactionRequest.remitterName,
ifscCode = "ABCD0000000", ifscCode = "ABCD0000000",
rrn = rrn + "1" rrn = rrn + "1",
mobileOrEmail = transactionRequest.mobileNumber
) )
} }
@ -57,12 +58,13 @@ class TransactionFactory(private val transactionRequest: TransactionRequest, pri
sourceAcctNo = transactionRequest.linkedCBSAccountNumber, sourceAcctNo = transactionRequest.linkedCBSAccountNumber,
cbsSbAcctNo = "", cbsSbAcctNo = "",
destinationAcctNo = transactionRequest.neftBeneficiaryAccountNumber, destinationAcctNo = transactionRequest.neftBeneficiaryAccountNumber,
narration = "TRF to member A/C for NEFT RTGS", narration = "TRF for NEFT/RTGS",
sourceTxnNo = TransactionType.NEFT.code, sourceTxnNo = TransactionType.NEFT.code,
sourceStat = "A/P", sourceStat = "A/P",
apiType = "OUTWARD_QUEUE_POSTING", apiType = "OUTWARD_QUEUE_POSTING",
remitterName = transactionRequest.remitterName, remitterName = transactionRequest.remitterName,
ifscCode = transactionRequest.ifscCode, ifscCode = transactionRequest.ifscCode,
mobileOrEmail = transactionRequest.mobileNumber,
rrn = rrn + "2" rrn = rrn + "2"
) )
} }

View File

@ -1,6 +1,6 @@
package net.ipksindia.dao package net.ipksindia.dao
import model.TransactionRequest import net.ipksindia.model.TransactionRequest
import net.ipksindia.ItemNotFoundException import net.ipksindia.ItemNotFoundException
import java.sql.Date import java.sql.Date
import java.sql.ResultSet import java.sql.ResultSet
@ -27,13 +27,15 @@ class TransactionDao {
comm_txn_no, comm_txn_no,
comm_txn_amt, comm_txn_amt,
dccb_code, dccb_code,
TO_NUMBER(cbs_br_code) AS br_code, TO_NUMBER(t.cbs_br_code) AS br_code,
SUBSTR(REGEXP_REPLACE(REGEXP_REPLACE(UPPER(remm_name), '[^A-Z0-9 ]', ''), ' {2,}', ' '),1,35) AS remitter_name, SUBSTR(REGEXP_REPLACE(REGEXP_REPLACE(UPPER(remm_name), '[^A-Z0-9 ]', ''), ' {2,}', ' '),1,35) AS remitter_name,
ipks_accno AS pacs_acc_no, ipks_accno AS pacs_acc_no,
da.link_accno AS cbs_sb_acc_no, da.link_accno AS cbs_sb_acc_no,
'pacs_db' AS db_name 'pacs_db' AS db_name,
kh.mobile_no
FROM neft_rtgs_txn t FROM neft_rtgs_txn t
JOIN dep_account da ON t.ipks_accno = da.key_1 JOIN dep_account da ON t.ipks_accno = da.key_1
JOIN kyc_hdr kh ON da.customer_no = kh.cif_no
WHERE WHERE
t.txn_no = ? t.txn_no = ?
""".trimIndent() """.trimIndent()
@ -89,20 +91,20 @@ class TransactionDao {
it.setString(19, neftQueueNumber) it.setString(19, neftQueueNumber)
}.use { it.executeUpdate() } }.use { it.executeUpdate() }
} }
}catch (e: ExceptionInInitializerError) { } catch (e: ExceptionInInitializerError) {
throw SQLException("Failed to connect to the database") throw SQLException("Failed to connect to the database ${e.message}")
} }
} }
fun getTransactionRequest(transactionNumber: String): TransactionRequest { fun getTransactionRequest(transactionNumber: String): TransactionRequest {
return try { return try {
DatabaseFactory.instance.getConnection().use { connection -> DatabaseFactory.instance.getConnection().use { connection ->
connection.prepareStatement(singleTransactionRequestQuery).apply { setString(1, transactionNumber) } connection.prepareStatement(singleTransactionRequestQuery).apply { setString(1, transactionNumber) }
.executeQuery() .executeQuery()
.use { mapToObject(it) ?: throw ItemNotFoundException("Transaction Number", transactionNumber) } .use { mapToObject(it) ?: throw ItemNotFoundException("Transaction Number", transactionNumber) }
} }
} catch (e: ExceptionInInitializerError) { } catch (e: ExceptionInInitializerError) {
throw SQLException("Failed to connect to the database") throw SQLException("Failed to connect to the database: ${e.message}")
} }
} }
} }
@ -130,6 +132,7 @@ private fun mapToObject(rs: ResultSet): TransactionRequest? {
remitterName = rs.getString("remitter_name"), remitterName = rs.getString("remitter_name"),
pacsAccountNumber = rs.getString("pacs_acc_no"), pacsAccountNumber = rs.getString("pacs_acc_no"),
linkedCBSAccountNumber = rs.getString("cbs_sb_acc_no"), linkedCBSAccountNumber = rs.getString("cbs_sb_acc_no"),
mobileNumber = rs.getString("mobile_no") ?: "999999999"
) )
} }
return null return null

View File

@ -25,5 +25,6 @@ class NeftTransaction(
override val apiType: String, override val apiType: String,
override val remitterName: String, override val remitterName: String,
override val ifscCode: String, override val ifscCode: String,
override val mobileOrEmail: String,
override val rrn: String, override val rrn: String,
) : Transaction ) : Transaction

View File

@ -21,5 +21,6 @@ interface Transaction {
val apiType: String val apiType: String
val remitterName: String val remitterName: String
val ifscCode: String val ifscCode: String
val mobileOrEmail: String
val rrn: String val rrn: String
} }

View File

@ -1,4 +1,4 @@
package model package net.ipksindia.model
import java.time.LocalDate import java.time.LocalDate
@ -21,6 +21,7 @@ data class TransactionRequest(
val branchCode: String, val branchCode: String,
val remitterName: String, val remitterName: String,
val pacsAccountNumber: String, val pacsAccountNumber: String,
val linkedCBSAccountNumber: String val linkedCBSAccountNumber: String,
val mobileNumber: String
) )

View File

@ -25,5 +25,6 @@ class TransferTransaction(
override val apiType: String, override val apiType: String,
override val remitterName: String, override val remitterName: String,
override val ifscCode: String, override val ifscCode: String,
override val mobileOrEmail: String,
override val rrn: String, override val rrn: String,
) : Transaction ) : Transaction

View File

@ -10,7 +10,7 @@ bank {
server { server {
protocol = "http" protocol = "http"
host = "localhost" host = "localhost"
port = 8080 port = 3000
rootRoute = "IPKS_Queue_Generation" rootRoute = "IPKS_Queue_Generation"
transactionRoute = "IpksApi" transactionRoute = "IpksApi"
} }