Skip to content

Commit

Permalink
return requests with offset and limit
Browse files Browse the repository at this point in the history
  • Loading branch information
Rajithkonara committed Jul 10, 2017
1 parent b32332a commit 6c356a6
Show file tree
Hide file tree
Showing 3 changed files with 98 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,7 @@ public interface LoggingDAO {
public int saveMessageLog(MessageLog messageLog) throws Exception;

public List<MessageLog> getMessageLogs(int userid, List<Integer> serviceNameIds, String reference, String value, Date startTimeStamp, Date endTimeStamp) throws Exception;


public List<MessageLog> getResponseLists(int userid, List<Integer> serviceNameIds, String reference, String value, Date startTimeStamp, Date endTimeStamp, int offSet, int limit) throws Exception;

}
Original file line number Diff line number Diff line change
Expand Up @@ -109,4 +109,84 @@ public List<MessageLog> getMessageLogs(int userid, List<Integer> serviceNameIds,
}
}

@Override
public List<MessageLog> getResponseLists(int userid, List<Integer> serviceNameIds, String ref, String val, Date startTimeStamp, Date endTimeStamp, int offSet, int limit) throws Exception {
Session session = getSession();
Map<String, Object> parameterMap = new HashMap<String, Object>();
List<MessageLog> messageLogs = new ArrayList<MessageLog>();
String reference = CommonUtil.getNullOrTrimmedValue(ref);
String value = CommonUtil.getNullOrTrimmedValue(val);
try {
StringBuilder hqlQueryBuilder = new StringBuilder();
hqlQueryBuilder.append("from MessageLog ml ");
hqlQueryBuilder.append("where 1=1 ");

if(userid != 0){
hqlQueryBuilder.append(" AND ml.userid = :id");
parameterMap.put("id", userid);

}

if(serviceNameIds != null){
hqlQueryBuilder.append(" AND ml.servicenameid in (:servicenameidList)");
parameterMap.put("servicenameidList", serviceNameIds);
}

if(reference != null && value != null){
hqlQueryBuilder.append(" AND ml.reference = :reference AND ml.value = :value");
parameterMap.put("reference", reference);
parameterMap.put("value", value);
}

if(startTimeStamp != null && endTimeStamp != null){
hqlQueryBuilder.append(" AND ml.messageTimestamp between :startTimeStamp and :endTimeStamp");
parameterMap.put("startTimeStamp", startTimeStamp);
parameterMap.put("endTimeStamp", endTimeStamp);

}else if(startTimeStamp != null){
hqlQueryBuilder.append(" AND ml.messageTimestamp >= :startTimeStamp");
parameterMap.put("startTimeStamp", startTimeStamp);
if(endTimeStamp != null){
hqlQueryBuilder.append(" AND ml.messageTimestamp <= :endTimeStamp");
parameterMap.put("endTimeStamp", endTimeStamp);
}
}else if(endTimeStamp != null){
hqlQueryBuilder.append(" AND ml.messageTimestamp <= :endTimeStamp");
parameterMap.put("endTimeStamp", endTimeStamp);
}

Query query = session.createQuery(hqlQueryBuilder.toString());

if (offSet > 0) {
query.setFirstResult(offSet);
}

if (limit > 0) {
query.setMaxResults(limit);
}

Set<Entry<String, Object>> entrySet = parameterMap.entrySet();

for (Entry<String, Object> entry : entrySet) {
if(entry.getValue() instanceof List ){
query.setParameterList(entry.getKey(), (List)entry.getValue());
}else{
query.setParameter(entry.getKey(), entry.getValue());
}

}

messageLogs = (List<MessageLog>) query.getResultList();

} catch (Exception ex) {
LOG.error("Error in getMessageLogs " , ex);
throw ex;
}
if (messageLogs==null){
return Collections.emptyList();
}else{
return messageLogs;
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,15 @@ protected List<String> getAddress() {
protected boolean validate(PaymentListTransactionRequestWrapper wrapperDTO) throws Exception {

String endUserId = CommonUtil.getNullOrTrimmedValue(wrapperDTO.getEndUserId());

String offset = CommonUtil.getNullOrTrimmedValue(wrapperDTO.getOffSet());
String limit = CommonUtil.getNullOrTrimmedValue(wrapperDTO.getLimit());
try {
ValidationRule[] validationRules = {new ValidationRule(
ValidationRule.VALIDATION_TYPE_MANDATORY_TEL_END_USER_ID, "endUserId", endUserId)};
ValidationRule[] validationRules = {
new ValidationRule(ValidationRule.VALIDATION_TYPE_MANDATORY_TEL_END_USER_ID, "endUserId", endUserId),
new ValidationRule(ValidationRule.VALIDATION_TYPE_OPTIONAL_INT_GE_ZERO, "offset", offset ),
new ValidationRule(ValidationRule.VALIDATION_TYPE_OPTIONAL_INT_GE_ZERO, "limit", limit)
};


Validation.checkRequestParams(validationRules);
} catch (CustomException ex) {
Expand All @@ -103,6 +108,10 @@ protected Returnable process(PaymentListTransactionRequestWrapper extendedReques
String msisdn = extendedRequestDTO.getEndUserId();
String endUserId = getLastMobileNumber(msisdn);
Integer userId = extendedRequestDTO.getUser().getId();
Integer offset = CommonUtil
.convertStringToInteger(extendedRequestDTO.getOffSet());
Integer limit = CommonUtil
.convertStringToInteger(extendedRequestDTO.getLimit());

String serviceCallPayment = ServiceName.ChargeUser.toString();
String serviceCallRefund = ServiceName.RefundUser.toString();
Expand All @@ -123,7 +132,9 @@ protected Returnable process(PaymentListTransactionRequestWrapper extendedReques

PaymentListTransactionResponseBean paymentTransaction = new PaymentListTransactionResponseBean();
List<JsonNode> listNodes = new ArrayList<JsonNode>();
List<MessageLog> responses = loggingDAO.getMessageLogs(userId, list, "msisdn", "tel:+" + endUserId, null, null);
List<MessageLog> responses = loggingDAO.getResponseLists(userId, list, "msisdn", "tel:+" + endUserId, null, null, offset, limit

);

String jsonString = null;

Expand Down

0 comments on commit 6c356a6

Please sign in to comment.