half commited

This commit is contained in:
Lincpay Tech
2025-12-17 15:30:33 +05:30
parent 4b5f81d0d5
commit c8bc6e7f12
12 changed files with 409 additions and 132 deletions
@@ -6,29 +6,37 @@ import java.time.LocalDateTime;
import jakarta.persistence.PrePersist;
import jakarta.persistence.PreUpdate;
import java.lang.reflect.Field;
import java.util.Date;
import jakarta.persistence.PrePersist;
import jakarta.persistence.PreUpdate;
public class AuditListener {
@PrePersist
public void prePersist(Object entity) {
LocalDateTime now = LocalDateTime.now();
Date now = new Date(); // current date + time
// Creation fields
// creation fields
setIfNull(entity, "createDateTime", now);
setIfNull(entity, "createdBy", null); // handle manually in service if needed
setIfNull(entity, "createdEpochDate", System.currentTimeMillis());
setIfNull(entity, "createdBy", null);
setIfNull(entity, "createdEpochDate", now.getTime());
// Set isDeleted = false on creation
// default soft delete flag
setAlways(entity, "isDeleted", Boolean.FALSE);
}
/*
* @PreUpdate public void preUpdate(Object entity) { LocalDateTime now =
* LocalDateTime.now();
*
* // Update fields setAlways(entity, "updatedDateTime", now); setIfNull(entity,
* "updatedBy", null); // you can override manually in service setAlways(entity,
* "modifiedEpochDate", System.currentTimeMillis()); }
*/
@PreUpdate
public void preUpdate(Object entity) {
Date now = new Date();
// update fields
setAlways(entity, "updatedDateTime", now);
setIfNull(entity, "updatedBy", null);
setAlways(entity, "modifiedEpochDate", now.getTime());
}
private void setIfNull(Object entity, String fieldName, Object value) {
try {
Field f = findField(entity.getClass(), fieldName);
@@ -37,8 +45,7 @@ public class AuditListener {
boolean accessible = f.canAccess(entity);
f.setAccessible(true);
Object currentValue = f.get(entity);
if (currentValue == null) {
if (f.get(entity) == null) {
f.set(entity, value);
}
@@ -53,9 +60,7 @@ public class AuditListener {
boolean accessible = f.canAccess(entity);
f.setAccessible(true);
f.set(entity, value);
f.setAccessible(accessible);
} catch (Exception ignored) {}
}
@@ -1,6 +1,8 @@
package com.billpaymentservice.bbps.entites;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import jakarta.persistence.Column;
import jakarta.persistence.EntityListeners;
@@ -16,18 +18,18 @@ import lombok.Setter;
@EntityListeners(AuditListener.class)
@Getter
@Setter
public abstract class Auditable {
public abstract class Auditable implements Serializable {
@Column(name = "create_date_time")
private LocalDateTime createDateTime;
private Date createDateTime;
@Column(name = "updated_date_time")
private LocalDateTime updatedDateTime;
private Date updatedDateTime;
@Column(name = "create_by")
private LocalDateTime createdBy;
private String createdBy;
@Column(name = "updated_by")
private LocalDateTime updatedBy;
private String updatedBy;
@Column(name = "created_epoch_date")
private Long createdEpochDate;
@@ -1,9 +1,5 @@
package com.billpaymentservice.bbps.entites;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -11,30 +7,15 @@ import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "bbps_payment_initiate")
public class PaymentInitiate {
public class PaymentInitiate extends Auditable {
// Kept as a POJO for compatibility but not annotated as @Entity so JPA won't map it
private String reqId;
private String bankTxnId;
private String clientUserId;
private String mid;
private String txnId;
private String status;
private String userId;
@Id
@Column(name = "req_id")
private String reqId;
@Column(name = "bank_txn_Id", nullable = false)
private String bankTxnId;
@Column(name = "client_user_id")
private String clientUserId;
@Column(name = "mid")
private String mid;
@Column(name = "txn_id")
private String txnId;
@Column(name = "status")
private String status;
@Column(name = "user_id")
private String userId;
}