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 76fe4f55e9b6f7f70e1721d8b81a547e6999e4bd..230a1e62331efa001fb75aef51361fd8c7c55392 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 02e75ebcce00112fc995d53b6438eb3a94691056..cba7d19b492b443e4b272a9c8f9bd5919af07cfa 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 6cb7401f0a81cf40f4a7b96835016622a0e88538..d0ced0575fed19870caece83a497616e88ffb502 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 2ff66195b51aa86d2d0d06547f53aec66b406a85..d3336962df43a487788db9c3c6f927f55a877765 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); } }