@Override public DataGrid<DumpHst> queryDataGird(DumpHst dumpHst, Pageable pageable) { DataGrid<DumpHst> dumpHstDataGird = new DataGrid<DumpHst>(0, new ArrayList<DumpHst>()); if (dumpHst.isSerachFlag()) { Criteria expression = where("deleteFlag").is("0"); if (dumpHst.getFromDate() != null && dumpHst.getToDate() != null) { expression.andOperator( where("created").gte(dumpHst.getFromDate()), where("created").lt(DateUtil.getAfterOrBeforDate(dumpHst.getToDate(), 1))); } else { if (dumpHst.getFromDate() != null) { expression.and("created").gte(dumpHst.getFromDate()); } if (dumpHst.getToDate() != null) { expression.and("created").lt(DateUtil.getAfterOrBeforDate(dumpHst.getToDate(), 1)); } } long count = mongoTemplate.count(query(expression), DumpHst.class); List<DumpHst> list = mongoTemplate.find(query(expression).with(pageable), DumpHst.class); dumpHstDataGird.setRows(list); dumpHstDataGird.setTotal(count); } return dumpHstDataGird; }
@Override public UserSessionActivity findByUserIdAndIPAddressAndSessionId( String userId, String ipAddress, String sessionId) { Criteria criteria = Criteria.where("user.$id").is(userId); criteria = criteria.andOperator( Criteria.where("ipAddress") .is(ipAddress) .andOperator(Criteria.where("sessionId").is(sessionId))); Query query = new Query(criteria); return mongoTemplate.findOne(query, UserSessionActivity.class); }
private Query buildQuery( String countryUri, String[] modelTypes, String lang, String[] nameTokens, String regexSuffix) { if (regexSuffix == null) { regexSuffix = ""; } // we search irrespective of the replication status, but we deduplicate based on DC Resource // URI. // sort spec means we want older results first - so that incoming replicates are discarded as // long as // there is an online entry Criteria criteria = where("lang").is(lang); if (countryUri != null && !countryUri.trim().isEmpty()) { criteria.and("country").is(countryUri); // filter by country } List<Criteria> andCriteria = new ArrayList<>(); if (modelTypes != null && modelTypes.length != 0) { for (String modelType : modelTypes) { if (modelType != null && !modelType.trim().isEmpty()) { andCriteria.add(where("modelType").in(modelType)); } } } if (nameTokens != null) { for (String nToken : nameTokens) { if (nToken != null && !nToken.trim().isEmpty()) { andCriteria.add(where("nameTokens").regex("^" + nToken + regexSuffix)); } } } if (!andCriteria.isEmpty()) { criteria.andOperator(andCriteria.toArray(new Criteria[andCriteria.size()])); } return query(criteria) .with(new Sort(Sort.Direction.ASC, "name")) .with(new Sort(Sort.Direction.ASC, "replicationTime")) .limit( findOneTokenLimit); // limit to prevent too much performance-hampering object scanning }
@SuppressWarnings("unchecked") @RequestMapping(value = "/api/route/{ownerId}/school/{schoolId}", method = RequestMethod.GET) public @ResponseBody List<Route> searchRoute( @PathVariable String ownerId, @PathVariable String schoolId, HttpServletRequest request, HttpServletResponse response) throws Exception { if (!Utils.validateAPIRequest(request, dataSetSetup, storage)) { throw new UnauthorizedException("Unauthorized Exception: token not valid"); } Criteria criteria = Criteria.where("schoolId").is(schoolId); String dateString = request.getParameter("date"); if (Utils.isNotEmpty(dateString)) { Date date = sdf.parse(dateString); criteria = criteria.andOperator(Criteria.where("from").lte(date), Criteria.where("to").gte(date)); } List<Route> result = (List<Route>) storage.findData(Route.class, criteria, null, ownerId); if (logger.isInfoEnabled()) { logger.info(String.format("searchRoute[%s]:%d", ownerId, result.size())); } return result; }
private Query getQuery( Account account, List<String> restrictedMerchants, String pin, String serial, String status, List<Integer> amounts, List<String> cardTypes, String searchMerchant, List<String> merchants, List<String> providers, Date fromTime, Date toTime) { if (account == null) return null; if (!account.isAdmin()) if (!account.isStaff()) ; boolean isAdmin = account.checkRoles(new String[] {"biz_supporter", "customer_care"}); Query query = new Query(); Criteria searchMerchantCriteria = null; if (StringUtils.isNotEmpty(searchMerchant)) { String[] arrayOfString = null; int j = 0; int i = 0; if ((isAdmin) && (SharedConstants.MBIZ) && (SharedConstants.MBIZ_MERCHANTS != null) && (SharedConstants.MBIZ_MERCHANTS.length > 0)) { j = (arrayOfString = SharedConstants.MBIZ_MERCHANTS).length; i = 0; } while (true) { String mbizMerchant = arrayOfString[i]; if (mbizMerchant.indexOf(searchMerchant) != -1) { searchMerchantCriteria = Criteria.where("merchant").regex(searchMerchant, "i"); } else { i++; if (i < j) continue; break; // searchMerchantCriteria = Criteria.where("merchant").regex(searchMerchant, "i"); } } } if (!isAdmin) { if ((restrictedMerchants == null) || (restrictedMerchants.isEmpty())) return null; List filterMerchants = new ArrayList(); if ((merchants != null) && (merchants.size() > 0)) { for (String merchant : merchants) { if (restrictedMerchants.contains(merchant)) filterMerchants.add(merchant); } if (filterMerchants.size() == 0) return null; } if (filterMerchants.size() > 0) { if (filterMerchants.size() > 1) { if (searchMerchantCriteria != null) searchMerchantCriteria = searchMerchantCriteria.andOperator( new Criteria[] {Criteria.where("merchant").in(filterMerchants)}); else searchMerchantCriteria = Criteria.where("merchant").in(filterMerchants); } else if (searchMerchantCriteria != null) searchMerchantCriteria = searchMerchantCriteria.andOperator( new Criteria[] {Criteria.where("merchant").is(filterMerchants.get(0))}); else { searchMerchantCriteria = Criteria.where("merchant").is(filterMerchants.get(0)); } } else if (restrictedMerchants.size() > 1) { if (searchMerchantCriteria != null) searchMerchantCriteria = searchMerchantCriteria.andOperator( new Criteria[] {Criteria.where("merchant").in(restrictedMerchants)}); else searchMerchantCriteria = Criteria.where("merchant").in(restrictedMerchants); } else if (searchMerchantCriteria != null) searchMerchantCriteria = searchMerchantCriteria.andOperator( new Criteria[] {Criteria.where("merchant").is(restrictedMerchants.get(0))}); else { searchMerchantCriteria = Criteria.where("merchant").is(restrictedMerchants.get(0)); } } else if ((merchants != null) && (merchants.size() > 0)) { if (merchants.size() > 1) { if (searchMerchantCriteria != null) searchMerchantCriteria = searchMerchantCriteria.andOperator( new Criteria[] {Criteria.where("merchant").in(merchants)}); else searchMerchantCriteria = Criteria.where("merchant").in(merchants); } else if (searchMerchantCriteria != null) searchMerchantCriteria = searchMerchantCriteria.andOperator( new Criteria[] {Criteria.where("merchant").is(merchants.get(0))}); else { searchMerchantCriteria = Criteria.where("merchant").is(merchants.get(0)); } } if (searchMerchantCriteria != null) { if ((isAdmin) && (SharedConstants.MBIZ) && (SharedConstants.MBIZ_MERCHANTS != null) && (SharedConstants.MBIZ_MERCHANTS.length > 0) && (!account.checkRole("customer_care")) && (!account.checkRole("biz_supporter"))) { searchMerchantCriteria = new Criteria() .andOperator( new Criteria[] { searchMerchantCriteria, Criteria.where("merchant").in(Arrays.asList(SharedConstants.MBIZ_MERCHANTS)) }); } query.addCriteria(searchMerchantCriteria); } if (StringUtils.isNotEmpty(pin)) { query.addCriteria(Criteria.where("pin").regex(Pattern.compile(pin, 34))); } if (StringUtils.isNotEmpty(serial)) { query.addCriteria(Criteria.where("serial").regex(Pattern.compile(serial, 34))); } if (StringUtils.isNotEmpty(status)) { query.addCriteria(Criteria.where("status").is(status)); } if ((amounts != null) && (amounts.size() > 0)) { if (amounts.size() > 1) query.addCriteria(Criteria.where("amount").in(amounts)); else query.addCriteria(Criteria.where("amount").is(amounts.get(0))); } if ((cardTypes != null) && (cardTypes.size() > 0)) { if (cardTypes.size() > 1) query.addCriteria(Criteria.where("type").in(cardTypes)); else query.addCriteria(Criteria.where("type").is(cardTypes.get(0))); } if ((providers != null) && (providers.size() > 0)) { if (providers.size() > 1) query.addCriteria(Criteria.where("paymentProvider").in(providers)); else { query.addCriteria(Criteria.where("paymentProvider").is(providers.get(0))); } } if ((fromTime != null) || (toTime != null)) { if (fromTime == null) fromTime = new Date(0L); if (toTime == null) toTime = new Date(); if (fromTime.getTime() <= toTime.getTime()) { Criteria dateCriteria = Criteria.where("timestamp") .gte(Utils.convertToMongoDBTime(fromTime)) .andOperator( new Criteria[] { Criteria.where("timestamp").lte(Utils.convertToMongoDBTime(toTime)) }); query.addCriteria(dateCriteria); } } System.out.println(query.toString()); return query; }