From b827d6223244e80138fafe1ff137eb02e65cddb0 Mon Sep 17 00:00:00 2001 From: Varun Deep Saini Date: Wed, 11 Mar 2026 00:38:37 +0530 Subject: [PATCH] AMM-118: Expose account lock state in SearchEmployee4 --- .../admin/data/employeemaster/M_User1.java | 11 ++++++ .../admin/data/employeemaster/V_Showuser.java | 36 +++++++++++++++++++ .../employeemaster/EmployeeMasterRepoo.java | 3 ++ .../EmployeeMasterServiceImpl.java | 31 +++++++++++++++- 4 files changed, 80 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/iemr/admin/data/employeemaster/M_User1.java b/src/main/java/com/iemr/admin/data/employeemaster/M_User1.java index 5c265f8..061d46c 100644 --- a/src/main/java/com/iemr/admin/data/employeemaster/M_User1.java +++ b/src/main/java/com/iemr/admin/data/employeemaster/M_User1.java @@ -209,6 +209,9 @@ public class M_User1{ @Expose @Column(name = "failed_attempt", insertable = false) private Integer failedAttempt; + @Expose + @Column(name = "lock_timestamp", insertable = false) + private Timestamp lockTimestamp; public M_User1() { // TODO Auto-generated constructor stub } @@ -229,6 +232,14 @@ public void setFailedAttempt(Integer failedAttempt) { this.failedAttempt = failedAttempt; } + public Timestamp getLockTimestamp() { + return lockTimestamp; + } + + public void setLockTimestamp(Timestamp lockTimestamp) { + this.lockTimestamp = lockTimestamp; + } + public Integer getUserID() { return userID; } diff --git a/src/main/java/com/iemr/admin/data/employeemaster/V_Showuser.java b/src/main/java/com/iemr/admin/data/employeemaster/V_Showuser.java index 6efd2e5..bafbf8c 100644 --- a/src/main/java/com/iemr/admin/data/employeemaster/V_Showuser.java +++ b/src/main/java/com/iemr/admin/data/employeemaster/V_Showuser.java @@ -246,6 +246,18 @@ public class V_Showuser { @Column(name="DistrictID") private Integer districtID; + @Expose + @Transient + private Integer failedAttempt; + + @Expose + @Transient + private Timestamp lockTimestamp; + + @Expose + @Transient + private Boolean lockedDueToFailedAttempts; + @@ -922,6 +934,30 @@ public void setDistrictID(Integer districtID) { this.districtID = districtID; } + public Integer getFailedAttempt() { + return failedAttempt; + } + + public void setFailedAttempt(Integer failedAttempt) { + this.failedAttempt = failedAttempt; + } + + public Timestamp getLockTimestamp() { + return lockTimestamp; + } + + public void setLockTimestamp(Timestamp lockTimestamp) { + this.lockTimestamp = lockTimestamp; + } + + public Boolean getLockedDueToFailedAttempts() { + return lockedDueToFailedAttempts; + } + + public void setLockedDueToFailedAttempts(Boolean lockedDueToFailedAttempts) { + this.lockedDueToFailedAttempts = lockedDueToFailedAttempts; + } + diff --git a/src/main/java/com/iemr/admin/repo/employeemaster/EmployeeMasterRepoo.java b/src/main/java/com/iemr/admin/repo/employeemaster/EmployeeMasterRepoo.java index 9865245..74c7683 100644 --- a/src/main/java/com/iemr/admin/repo/employeemaster/EmployeeMasterRepoo.java +++ b/src/main/java/com/iemr/admin/repo/employeemaster/EmployeeMasterRepoo.java @@ -22,6 +22,7 @@ package com.iemr.admin.repo.employeemaster; import java.util.ArrayList; +import java.util.List; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; @@ -80,4 +81,6 @@ M_User1 checkingEmpDetails(@Param("userName") String userName, @Param("aadhaarNo ArrayList getempByDesiganation(@Param("designationID") Integer designationID,@Param("serviceProviderID") Integer serviceProviderID); M_User1 findByUserID(Integer userID); + + List findByUserIDIn(List userIDs); } diff --git a/src/main/java/com/iemr/admin/service/employeemaster/EmployeeMasterServiceImpl.java b/src/main/java/com/iemr/admin/service/employeemaster/EmployeeMasterServiceImpl.java index 19032d6..7ce94c6 100644 --- a/src/main/java/com/iemr/admin/service/employeemaster/EmployeeMasterServiceImpl.java +++ b/src/main/java/com/iemr/admin/service/employeemaster/EmployeeMasterServiceImpl.java @@ -25,6 +25,7 @@ import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.spec.InvalidKeySpecException; +import java.sql.Timestamp; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -1062,8 +1063,36 @@ public ArrayList getAllCommunity() { @Override public ArrayList getEmployeeDetails4(Integer serviceProviderID) { + ArrayList users = v_ShowuserRepo.EmployeeDetails4(serviceProviderID); + if (users.isEmpty()) { + return users; + } + + ArrayList userIDs = new ArrayList(users.size()); + for (V_Showuser user : users) { + userIDs.add(user.getUserID()); + } + + Map userRecords = new HashMap(); + for (M_User1 userRecord : employeeMasterRepoo.findByUserIDIn(userIDs)) { + userRecords.put(userRecord.getUserID(), userRecord); + } + + for (V_Showuser user : users) { + enrichAccountLockState(user, userRecords.get(user.getUserID())); + } + return users; + } + + private void enrichAccountLockState(V_Showuser user, M_User1 userRecord) { + if (userRecord == null) { + return; + } - return v_ShowuserRepo.EmployeeDetails4(serviceProviderID); + Timestamp lockTimestamp = userRecord.getLockTimestamp(); + user.setFailedAttempt(userRecord.getFailedAttempt() != null ? userRecord.getFailedAttempt() : 0); + user.setLockTimestamp(lockTimestamp); + user.setLockedDueToFailedAttempts(Boolean.TRUE.equals(userRecord.getDeleted()) && lockTimestamp != null); } @Override