@@ -109,4 +109,84 @@ public List<MessageLog> getMessageLogs(int userid, List<Integer> serviceNameIds,
109109 }
110110 }
111111
112+ @ Override
113+ public List <MessageLog > getResponseLists (int userid , List <Integer > serviceNameIds , String ref , String val , Date startTimeStamp , Date endTimeStamp , int offSet , int limit ) throws Exception {
114+ Session session = getSession ();
115+ Map <String , Object > parameterMap = new HashMap <String , Object >();
116+ List <MessageLog > messageLogs = new ArrayList <MessageLog >();
117+ String reference = CommonUtil .getNullOrTrimmedValue (ref );
118+ String value = CommonUtil .getNullOrTrimmedValue (val );
119+ try {
120+ StringBuilder hqlQueryBuilder = new StringBuilder ();
121+ hqlQueryBuilder .append ("from MessageLog ml " );
122+ hqlQueryBuilder .append ("where 1=1 " );
123+
124+ if (userid != 0 ){
125+ hqlQueryBuilder .append (" AND ml.userid = :id" );
126+ parameterMap .put ("id" , userid );
127+
128+ }
129+
130+ if (serviceNameIds != null ){
131+ hqlQueryBuilder .append (" AND ml.servicenameid in (:servicenameidList)" );
132+ parameterMap .put ("servicenameidList" , serviceNameIds );
133+ }
134+
135+ if (reference != null && value != null ){
136+ hqlQueryBuilder .append (" AND ml.reference = :reference AND ml.value = :value" );
137+ parameterMap .put ("reference" , reference );
138+ parameterMap .put ("value" , value );
139+ }
140+
141+ if (startTimeStamp != null && endTimeStamp != null ){
142+ hqlQueryBuilder .append (" AND ml.messageTimestamp between :startTimeStamp and :endTimeStamp" );
143+ parameterMap .put ("startTimeStamp" , startTimeStamp );
144+ parameterMap .put ("endTimeStamp" , endTimeStamp );
145+
146+ }else if (startTimeStamp != null ){
147+ hqlQueryBuilder .append (" AND ml.messageTimestamp >= :startTimeStamp" );
148+ parameterMap .put ("startTimeStamp" , startTimeStamp );
149+ if (endTimeStamp != null ){
150+ hqlQueryBuilder .append (" AND ml.messageTimestamp <= :endTimeStamp" );
151+ parameterMap .put ("endTimeStamp" , endTimeStamp );
152+ }
153+ }else if (endTimeStamp != null ){
154+ hqlQueryBuilder .append (" AND ml.messageTimestamp <= :endTimeStamp" );
155+ parameterMap .put ("endTimeStamp" , endTimeStamp );
156+ }
157+
158+ Query query = session .createQuery (hqlQueryBuilder .toString ());
159+
160+ if (offSet > 0 ) {
161+ query .setFirstResult (offSet );
162+ }
163+
164+ if (limit > 0 ) {
165+ query .setMaxResults (limit );
166+ }
167+
168+ Set <Entry <String , Object >> entrySet = parameterMap .entrySet ();
169+
170+ for (Entry <String , Object > entry : entrySet ) {
171+ if (entry .getValue () instanceof List ){
172+ query .setParameterList (entry .getKey (), (List )entry .getValue ());
173+ }else {
174+ query .setParameter (entry .getKey (), entry .getValue ());
175+ }
176+
177+ }
178+
179+ messageLogs = (List <MessageLog >) query .getResultList ();
180+
181+ } catch (Exception ex ) {
182+ LOG .error ("Error in getMessageLogs " , ex );
183+ throw ex ;
184+ }
185+ if (messageLogs ==null ){
186+ return Collections .emptyList ();
187+ }else {
188+ return messageLogs ;
189+ }
190+ }
191+
112192}
0 commit comments