@ -1,5 +1,6 @@
package com.mfsys.uco.service ;
package com.mfsys.uco.service ;
import com.mfsys.comm.util.MapValueExtractorUtil ;
import com.mfsys.uco.UCOURI ;
import com.mfsys.uco.UCOURI ;
import com.mfsys.uco.dto.* ;
import com.mfsys.uco.dto.* ;
import com.mfsys.uco.dto.Transaction.TransactionOtpRequestModel ;
import com.mfsys.uco.dto.Transaction.TransactionOtpRequestModel ;
@ -28,9 +29,9 @@ public class TransactionService {
private final TransactionTrailRepository transactionTrailRepository ;
private final TransactionTrailRepository transactionTrailRepository ;
private final WebClientDepositService webClientDepositService ;
private final WebClientDepositService webClientDepositService ;
public TransactionPinResponseModel sendOtpAndValidateTranPin ( TransactionOtpRequestModel transactionOtpRequestModel ) {
public TransactionPinResponseModel sendOtpAndValidateTranPin ( TransactionOtpRequestModel transactionOtpRequestModel , boolean isResendOtp ) {
CustomerProfile customerProfile = verifyOldPinAndGetCmpProfile ( transactionOtpRequestModel . getPorOrgacode ( ) ,
CustomerProfile customerProfile = verifyOldPinAndGetCmpProfile ( transactionOtpRequestModel . getPorOrgacode ( ) ,
transactionOtpRequestModel . getTransPincode ( ) , transactionOtpRequestModel . getCmpCustcode ( ) );
transactionOtpRequestModel . getTransPincode ( ) , transactionOtpRequestModel . getCmpCustcode ( ) ,isResendOtp );
return TransactionPinResponseModel . builder ( ) . notificationId ( transactionPinService . sendOtp ( customerProfile , transactionOtpRequestModel . getChannelCode ( ) ,
return TransactionPinResponseModel . builder ( ) . notificationId ( transactionPinService . sendOtp ( customerProfile , transactionOtpRequestModel . getChannelCode ( ) ,
transactionOtpRequestModel . getPinType ( ) , "Transaction Verification OTP" , transactionOtpRequestModel . isOtpRequired ( ) ) ) . build ( ) ;
transactionOtpRequestModel . getPinType ( ) , "Transaction Verification OTP" , transactionOtpRequestModel . isOtpRequired ( ) ) ) . build ( ) ;
}
}
@ -68,6 +69,7 @@ public class TransactionService {
Map < String , Object > transactionId = ( Map < String , Object > ) response . get ( "FuncReturnDetail" ) ;
Map < String , Object > transactionId = ( Map < String , Object > ) response . get ( "FuncReturnDetail" ) ;
transactionTrail . setSgtSentGntrnumber ( extractTranNumber ( List . of ( transactionId . get ( "arguments" ) ) ) ) ;
transactionTrail . setSgtSentGntrnumber ( extractTranNumber ( List . of ( transactionId . get ( "arguments" ) ) ) ) ;
transactionTrail . setBatAcnttranSend ( true ) ;
transactionTrail . setBatAcnttranSend ( true ) ;
transactionTrail . setDrMbmBkmsbalance ( MapValueExtractorUtil . getValueAsBigDecimal ( response , "mbmBkmsbalance" ) ) ;
transactionTrailRepository . save ( transactionTrail ) ;
transactionTrailRepository . save ( transactionTrail ) ;
return response ;
return response ;
}
}
@ -91,7 +93,7 @@ public class TransactionService {
public Map < String , Object > cashOutTransaction ( CashOutTransactionRequest cashOutTransactionRequest ) {
public Map < String , Object > cashOutTransaction ( CashOutTransactionRequest cashOutTransactionRequest ) {
verifyOldPinAndGetCmpProfile ( cashOutTransactionRequest . getPorOrgacode ( ) ,
verifyOldPinAndGetCmpProfile ( cashOutTransactionRequest . getPorOrgacode ( ) ,
cashOutTransactionRequest . getCmpTranpin ( ) , cashOutTransactionRequest . getCmpCustcode ( ) );
cashOutTransactionRequest . getCmpTranpin ( ) , cashOutTransactionRequest . getCmpCustcode ( ) ,true );
Map < String , Object > response = new HashMap < > ( ) ;
Map < String , Object > response = new HashMap < > ( ) ;
Optional < TransactionTrail > transactionTrail = transactionTrailRepository . findById ( Math . toIntExact ( cashOutTransactionRequest . getId ( ) ) ) ;
Optional < TransactionTrail > transactionTrail = transactionTrailRepository . findById ( Math . toIntExact ( cashOutTransactionRequest . getId ( ) ) ) ;
if ( transactionTrail . isPresent ( ) ) {
if ( transactionTrail . isPresent ( ) ) {
@ -107,15 +109,18 @@ public class TransactionService {
Map < String , Object > transactionId = ( Map < String , Object > ) response . get ( "FuncReturnDetail" ) ;
Map < String , Object > transactionId = ( Map < String , Object > ) response . get ( "FuncReturnDetail" ) ;
transactionTrail . get ( ) . setSgtReceiveGntrnumber ( extractTranNumber ( List . of ( transactionId . get ( "arguments" ) ) ) ) ;
transactionTrail . get ( ) . setSgtReceiveGntrnumber ( extractTranNumber ( List . of ( transactionId . get ( "arguments" ) ) ) ) ;
transactionTrail . get ( ) . setBatAcnttranReceived ( true ) ;
transactionTrail . get ( ) . setBatAcnttranReceived ( true ) ;
transactionTrail . get ( ) . setCrMbmBkmsbalance ( MapValueExtractorUtil . getValueAsBigDecimal ( response , "mbmBkmsbalance" ) ) ;
transactionTrailRepository . save ( transactionTrail . get ( ) ) ;
transactionTrailRepository . save ( transactionTrail . get ( ) ) ;
}
}
return response ;
return response ;
}
}
private CustomerProfile verifyOldPinAndGetCmpProfile ( String porOrgacode , String transPincode , String cmpCustcode ) {
private CustomerProfile verifyOldPinAndGetCmpProfile ( String porOrgacode , String transPincode , String cmpCustcode , boolean isResendOtp ) {
CustomerProfile customerProfile = transactionPinService . fetchCustomer ( porOrgacode ,
CustomerProfile customerProfile = transactionPinService . fetchCustomer ( porOrgacode ,
cmpCustcode ) ;
cmpCustcode ) ;
if ( isResendOtp ) {
transactionPinService . validateOldPin ( customerProfile , transPincode ) ;
transactionPinService . validateOldPin ( customerProfile , transPincode ) ;
}
return customerProfile ;
return customerProfile ;
}
}