From 5bc59e07f8951e4a73cb87fa7df98bd315528c33 Mon Sep 17 00:00:00 2001
From: nivetha <nivetha.mariappan@tarento.com>
Date: Wed, 9 Feb 2022 19:31:57 +0530
Subject: [PATCH] User default pwd & search user modifications

---
 .../tarento/retail/dao/impl/UserDaoImpl.java  | 24 ++++++++++++++++++-
 .../retail/service/impl/UserServiceImpl.java  |  7 +++---
 .../com/tarento/retail/util/Constants.java    | 13 ++++++++++
 .../java/com/tarento/retail/util/Sql.java     |  3 +++
 4 files changed, 43 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java b/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java
index 76fe4f5..230a1e6 100644
--- a/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java
+++ b/src/main/java/com/tarento/retail/dao/impl/UserDaoImpl.java
@@ -909,7 +909,29 @@ public class UserDaoImpl implements UserDao {
 			paramMap.put(Constants.Parameters.LAST_NAME, keyword);
 			paramMap.put(Constants.Parameters.COUNTRY, keyword);
 		}
-
+		// dynamic key value search
+		if (searchRequest.getSearch() != null && searchRequest.getSearch().size() > 0) {
+			for (Map.Entry<String, Object> entry : searchRequest.getSearch().entrySet()) {
+				condition = addQueryCondition(builder, condition);
+				if (entry.getValue() instanceof List) {
+					if (Constants.UserSearchFields.MAPPING.containsKey(entry.getKey())) {
+						builder.append(Constants.UserSearchFields.MAPPING.get(entry.getKey()));
+					} else {
+						builder.append(entry.getKey());
+					}
+					builder.append(NamedUserQueries.IN_CLAUSE);
+					paramMap.put(Constants.Parameters.IN_VALUE, entry.getValue());
+				} else {
+					if (Constants.UserSearchFields.MAPPING.containsKey(entry.getKey())) {
+						builder.append(Constants.UserSearchFields.MAPPING.get(entry.getKey()));
+					} else {
+						builder.append(entry.getKey());
+					}
+					builder.append(NamedUserQueries.APPEND_VALUE);
+					paramMap.put(Constants.Parameters.VALUE, entry.getValue());
+				}
+			}
+		}
 		// limit & offset
 		if (searchRequest.getLimit() > 0) {
 			builder.append(NamedUserQueries.LIMIT);
diff --git a/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java b/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java
index 02e75eb..cba7d19 100644
--- a/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/tarento/retail/service/impl/UserServiceImpl.java
@@ -156,10 +156,11 @@ public class UserServiceImpl implements UserDetailsService, UserService {
 
 	@Override
 	public User save(User user) {
-		if (StringUtils.isNotBlank(user.getPassword())) {
-			String encryptedPassword = bcryptEncoder.encode(user.getPassword());
-			user.setPassword(encryptedPassword);
+		if (StringUtils.isBlank(user.getPassword())) {
+			user.setPassword("UP-SMF#User");
 		}
+		String encryptedPassword = bcryptEncoder.encode(user.getPassword());
+		user.setPassword(encryptedPassword);
 		return userDao.save(user);
 	}
 
diff --git a/src/main/java/com/tarento/retail/util/Constants.java b/src/main/java/com/tarento/retail/util/Constants.java
index 6cb7401..d0ced05 100644
--- a/src/main/java/com/tarento/retail/util/Constants.java
+++ b/src/main/java/com/tarento/retail/util/Constants.java
@@ -1,5 +1,8 @@
 package com.tarento.retail.util;
 
+import java.util.HashMap;
+import java.util.Map;
+
 public class Constants {
 
 	/**
@@ -96,6 +99,8 @@ public class Constants {
 		public static final String COUNTRY = "country";
 		public static final String LIMIT = "limit";
 		public static final String OFFSET = "offset";
+		public static final String IN_VALUE = "inValues";
+		public static final String VALUE = "value";
 	}
 
 	public interface EmailTemplate {
@@ -177,4 +182,12 @@ public class Constants {
 		}
 
 	}
+
+	public interface UserSearchFields {
+		public static final Map<String, String> MAPPING = new HashMap<String, String>() {
+			{
+				put("userId", "usr.id");
+			}
+		};
+	}
 }
diff --git a/src/main/java/com/tarento/retail/util/Sql.java b/src/main/java/com/tarento/retail/util/Sql.java
index 2ff6619..d333696 100644
--- a/src/main/java/com/tarento/retail/util/Sql.java
+++ b/src/main/java/com/tarento/retail/util/Sql.java
@@ -190,6 +190,9 @@ public interface Sql {
 				Constants.Parameters.COUNTRY);
 		final String LIMIT = String.format(" limit :%s ", Constants.Parameters.LIMIT);
 		final String OFFSET = String.format(" offset :%s ", Constants.Parameters.OFFSET);
+
+		final String IN_CLAUSE = String.format(" IN (:%s)", Constants.Parameters.IN_VALUE);
+		final String APPEND_VALUE = String.format(" = :%s ", Constants.Parameters.VALUE);
 	}
 
 }
-- 
GitLab