Transaction Logs

Transaction Logs
dev-pending-01-01-2026
Naeem Ullah 4 weeks ago
parent 1639058e20
commit d6f656cda5

@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.*;
import java.time.LocalDate;
@RestController
@RestController()
public class TransactionController {
@Autowired

@ -0,0 +1,26 @@
package com.mfsys.aconnect.client.controller;
import com.mfsys.aconnect.client.model.TransactionLog;
import com.mfsys.aconnect.client.service.TransactionLogService;
import com.mfsys.common.configuration.constant.AconnectURI;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController()
@RequestMapping(AconnectURI.TRANSACTION)
public class TransactionLogController {
private final TransactionLogService transactionLogService;
public TransactionLogController(TransactionLogService transactionLogService) {
this.transactionLogService = transactionLogService;
}
@GetMapping(AconnectURI.LOGS)
public List<TransactionLog> getAllTransactionLogs() {
return transactionLogService.getAllTransactionLogs();
}
}

@ -1,11 +1,7 @@
package com.mfsys.aconnect.client.model;
import com.mfsys.common.configuration.constant.FieldNameConstant;
import com.mfsys.common.configuration.constant.FieldNameLength;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import jakarta.persistence.*;
import lombok.Data;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
@ -18,8 +14,9 @@ import java.time.LocalDateTime;
@Data
public class TransactionLog {
@Id
@Column(name = "LOG_ID", nullable = false, updatable = false, columnDefinition = FieldNameLength.LOG_ID)
private String logId;
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "LOG_ID", nullable = false, updatable = false)
private Long logId;
@Column(name = "POR_ORGACODE", nullable = false, updatable = false, columnDefinition = FieldNameLength.POR_ORGACODE)
private String porOrgacode;
@ -45,14 +42,11 @@ public class TransactionLog {
@Column(name = "SGT_GNTRCREATEAT",nullable=false, updatable=false, columnDefinition=FieldNameLength.PLC_LOCACODE)
private String sgtGntrcreateat;
@Column(name = "CHANNEL_CODE", nullable=true, updatable=false, columnDefinition=FieldNameLength.CHANNEL_CODE)
@Column(name = "CHANNEL_CODE", columnDefinition=FieldNameLength.CHANNEL_CODE)
private String channelCode;
@Column(name = "NODE_ID", nullable=false, updatable=false, columnDefinition=FieldNameLength.NODE_ID)
private String nodeId;
@Column(name = "SGT_GNTRNUMBER", nullable=false, updatable=false, columnDefinition=FieldNameLength.SGT_GNTRNUMBER)
private Long sgtGntrnumber;
@Column(name = "TRANSACTION_ID", columnDefinition=FieldNameLength.ACCOUNT_TITLE)
private String transactionID;
@CreationTimestamp
@Column(name = "CREATED_AT", updatable = false)

@ -0,0 +1,7 @@
package com.mfsys.aconnect.client.repository;
import com.mfsys.aconnect.client.model.TransactionLog;
import org.springframework.data.jpa.repository.JpaRepository;
public interface TransactionLogRepository extends JpaRepository<TransactionLog, Long> {
}

@ -0,0 +1,110 @@
package com.mfsys.aconnect.client.service;
import com.mfsys.aconnect.client.repository.TransactionLogRepository;
import com.mfsys.aconnect.client.dto.AccountGLTransactionRequest;
import com.mfsys.aconnect.client.dto.AccountToAccountDTO;
import com.mfsys.aconnect.client.dto.GLtoGLRequest;
import com.mfsys.aconnect.client.dto.GlToAccountDTO;
import com.mfsys.aconnect.client.model.TransactionLog;
import jakarta.transaction.Transactional;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
@Service
public class TransactionLogService {
private final TransactionLogRepository transactionLogRepository;
public TransactionLogService(TransactionLogRepository transactionLogRepository) {
this.transactionLogRepository = transactionLogRepository;
}
public List<TransactionLog> getAllTransactionLogs() {
return transactionLogRepository.findAll();
}
public TransactionLog createTransactionLog(AccountGLTransactionRequest accountGLTransactionRequest) {
TransactionLog transactionLog = new TransactionLog();
transactionLog.setPorOrgacode(accountGLTransactionRequest.getPorOrgacode());
transactionLog.setChannelCode(accountGLTransactionRequest.getSgtGntrcreateusr());
transactionLog.setSgtGntrcreateat(accountGLTransactionRequest.getSgtGntrcreateusr());
transactionLog.setCrMbmbkmsnumber("");
transactionLog.setDrMbmbkmsnumber(accountGLTransactionRequest.getDebitAcc().getMbmBkmsnumber());
transactionLog.setCrPcaglacode(accountGLTransactionRequest.getCreditGl().getPcaGlaccode());
transactionLog.setDrPcaGlacode("");
transactionLog.setPpmPymdcode(accountGLTransactionRequest.getPpmPymdcode());
transactionLog.setSgtGntrdate(LocalDate.parse(accountGLTransactionRequest.getSgtGntrvaluedate()));
transactionLog.setCreatedAt(LocalDateTime.now());
transactionLog.setUpdatedAt(LocalDateTime.now());
transactionLog.setSgtGntrdate(LocalDate.parse(accountGLTransactionRequest.getSgtGntrvaluedate()));
return transactionLogRepository.save(transactionLog);
}
@Transactional
public void updateResponseFields(Long logId, Map<String, Object> response) {
transactionLogRepository.findById(logId).ifPresent(log -> {
if (response == null) return;
Object argsObj = response.get("arguments");
if (!(argsObj instanceof List<?> args) || args.isEmpty()) return;
String transactionId = args.get(0).toString();
log.setTransactionID(transactionId);
});
}
public TransactionLog createGLtoGLTransactionLog(GLtoGLRequest gLtoGLRequest) {
TransactionLog transactionLog = new TransactionLog();
transactionLog.setPorOrgacode(gLtoGLRequest.getPorOrgacode());
transactionLog.setChannelCode(gLtoGLRequest.getSgtGntrcreateusr());
transactionLog.setSgtGntrcreateat(gLtoGLRequest.getSgtGntrcreateusr());
transactionLog.setCrMbmbkmsnumber("");
transactionLog.setDrMbmbkmsnumber("");
transactionLog.setCrPcaglacode(gLtoGLRequest.getCreditGl().getPcaGlaccode());
transactionLog.setDrPcaGlacode(gLtoGLRequest.getDebitGl().getPcaGlaccode());
transactionLog.setPpmPymdcode(gLtoGLRequest.getPpmPymdcode());
transactionLog.setSgtGntrdate(LocalDate.parse(gLtoGLRequest.getSgtGntrvaluedate()));
transactionLog.setCreatedAt(LocalDateTime.now());
transactionLog.setUpdatedAt(LocalDateTime.now());
transactionLog.setSgtGntrdate(LocalDate.parse(gLtoGLRequest.getSgtGntrvaluedate()));
return transactionLogRepository.save(transactionLog);
}
public TransactionLog createAccToAccTransactionLog(AccountToAccountDTO accountToAccountDTO) {
TransactionLog transactionLog = new TransactionLog();
transactionLog.setPorOrgacode(accountToAccountDTO.getPorOrgacode());
transactionLog.setChannelCode(accountToAccountDTO.getSgtGntrcreateusr());
transactionLog.setSgtGntrcreateat(accountToAccountDTO.getSgtGntrcreateusr());
transactionLog.setCrMbmbkmsnumber(accountToAccountDTO.getCreditAcc().getMbmBkmsnumber());
transactionLog.setDrMbmbkmsnumber(accountToAccountDTO.getDebitAcc().getMbmBkmsnumber());
transactionLog.setCrPcaglacode("");
transactionLog.setDrPcaGlacode("");
transactionLog.setPpmPymdcode(accountToAccountDTO.getPpmPymdcode());
transactionLog.setSgtGntrdate(accountToAccountDTO.getSgtGntrvaluedate());
transactionLog.setCreatedAt(LocalDateTime.now());
transactionLog.setUpdatedAt(LocalDateTime.now());
transactionLog.setSgtGntrdate(accountToAccountDTO.getSgtGntrvaluedate());
return transactionLogRepository.save(transactionLog);
}
public TransactionLog createGLToAccTransactionLog(GlToAccountDTO glToAccountDTO) {
TransactionLog transactionLog = new TransactionLog();
transactionLog.setPorOrgacode(glToAccountDTO.getPorOrgacode());
transactionLog.setChannelCode(glToAccountDTO.getSgtGntrcreateusr());
transactionLog.setSgtGntrcreateat(glToAccountDTO.getSgtGntrcreateusr());
transactionLog.setCrMbmbkmsnumber(glToAccountDTO.getCreditAcc().getMbmBkmsnumber());
transactionLog.setDrMbmbkmsnumber("");
transactionLog.setCrPcaglacode("");
transactionLog.setDrPcaGlacode("");
transactionLog.setPpmPymdcode(glToAccountDTO.getPpmPymdcode());
transactionLog.setSgtGntrdate(glToAccountDTO.getSgtGntrvaluedate());
transactionLog.setCreatedAt(LocalDateTime.now());
transactionLog.setUpdatedAt(LocalDateTime.now());
transactionLog.setSgtGntrdate(glToAccountDTO.getSgtGntrvaluedate());
return transactionLogRepository.save(transactionLog);
}
}

@ -1,6 +1,7 @@
package com.mfsys.aconnect.client.service;
import com.mfsys.aconnect.client.dto.*;
import com.mfsys.aconnect.client.model.TransactionLog;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
@ -26,8 +27,10 @@ public class TransactionService {
private String generalledgerURI;
private final RestTemplate restTemplate;
public TransactionService(RestTemplate restTemplate) {
private final TransactionLogService transactionLogService;
public TransactionService(RestTemplate restTemplate, TransactionLogService transactionLogService) {
this.restTemplate = restTemplate;
this.transactionLogService = transactionLogService;
}
public ResponseEntity getActiveAccountDetails(String porOrgacode, String mbmBkmsnumber, LocalDate sgtGntrvaluedate, String tokenHeader, String userCode) {
@ -71,6 +74,7 @@ public class TransactionService {
headers.setAccept(java.util.List.of(MediaType.APPLICATION_JSON));
HttpEntity<AccountGLTransactionRequest> entity = new HttpEntity<>(accountGLTransactionRequest, headers);
TransactionLog log = transactionLogService.createTransactionLog(accountGLTransactionRequest);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Map> response = restTemplate.exchange(
url,
@ -78,6 +82,9 @@ public class TransactionService {
entity,
Map.class
);
if (response.getBody() != null) {
transactionLogService.updateResponseFields(log.getLogId(), response.getBody());
}
return ResponseEntity.status(response.getStatusCode()).body(response.getBody());
}
@ -102,12 +109,16 @@ public class TransactionService {
HttpEntity<GLtoGLRequest> entity = new HttpEntity<>(gLtoGLRequest, headers);
RestTemplate restTemplate = new RestTemplate();
TransactionLog log = transactionLogService.createGLtoGLTransactionLog(gLtoGLRequest);
ResponseEntity<Map> response = restTemplate.exchange(
url,
HttpMethod.POST,
entity,
Map.class
);
if (response.getBody() != null) {
transactionLogService.updateResponseFields(log.getLogId(), response.getBody());
}
return ResponseEntity.status(response.getStatusCode()).body(response.getBody());
}
@ -124,12 +135,16 @@ public class TransactionService {
HttpEntity<AccountToAccountDTO> entity = new HttpEntity<>(accountToAccountDTO, headers);
RestTemplate restTemplate = new RestTemplate();
TransactionLog log = transactionLogService.createAccToAccTransactionLog(accountToAccountDTO);
ResponseEntity<Map> response = restTemplate.exchange(
url,
HttpMethod.POST,
entity,
Map.class
);
if (response.getBody() != null) {
transactionLogService.updateResponseFields(log.getLogId(), response.getBody());
}
return ResponseEntity.status(response.getStatusCode()).body(response.getBody());
@ -148,12 +163,17 @@ public class TransactionService {
HttpEntity<GlToAccountDTO> entity = new HttpEntity<>(glToAccountDTO, headers);
RestTemplate restTemplate = new RestTemplate();
TransactionLog log = transactionLogService.createGLToAccTransactionLog(glToAccountDTO);
ResponseEntity<Map> response = restTemplate.exchange(
url,
HttpMethod.POST,
entity,
Map.class
);
if (response.getBody() != null) {
transactionLogService.updateResponseFields(log.getLogId(), response.getBody());
}
return ResponseEntity.status(response.getStatusCode()).body(response.getBody());
}

@ -9,6 +9,8 @@ public interface AconnectURI {
String GENERALLEDGER = "/generalledger";
String SIGNIN = "/signin";
String TRANSACTION_URI = "/transactions";
String TRANSACTION = "/transaction";
String LOGS = "/logs";
String CANCEL_URI = "/cancel";
String REJECT_URI = "/rejection";
String INDIVIDUAL = "/individual";

Loading…
Cancel
Save