Last active
August 22, 2017 21:17
-
-
Save lhauspie/e0a4a8a812ecee70fd1da10663bc1d44 to your computer and use it in GitHub Desktop.
implémentation des fonctionnalités custom sur les produits
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class ProductRepositoryImpl implements ProductCustomRepository { | |
public static final String CODE = "code"; | |
public static final String LABEL = "label"; | |
public static final String DESCRIPTION = "description"; | |
public static final String PRICE = "price"; | |
@Autowired | |
private MongoTemplate mongoTemplate; | |
@Autowired | |
private MongoClient mongoClient; | |
@Override | |
public Collection<Product> search(SearchQuery searchQuery) { | |
Query query = new Query(); | |
if (searchQuery.getCode() != null) { | |
query.addCriteria(Criteria.where(CODE).regex(searchQuery.getCode())); | |
} | |
if (searchQuery.getLabel() != null) { | |
query.addCriteria(Criteria.where(LABEL).regex(searchQuery.getLabel())); | |
} | |
if (searchQuery.getDescription() != null) { | |
query.addCriteria(Criteria.where(DESCRIPTION).regex(searchQuery.getDescription())); | |
} | |
if (searchQuery.getMinPrice() != null || searchQuery.getMaxPrice() != null) { | |
Criteria dutyFreePriceCriteria = Criteria.where(PRICE); | |
if (searchQuery.getMinPrice() != null) { | |
dutyFreePriceCriteria = dutyFreePriceCriteria.gt(searchQuery.getMinPrice()); | |
} | |
if (searchQuery.getMaxPrice() != null) { | |
dutyFreePriceCriteria = dutyFreePriceCriteria.lt(searchQuery.getMaxPrice()); | |
} | |
query.addCriteria(dutyFreePriceCriteria); | |
} | |
return mongoTemplate.find(query, Product.class); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment