Class CategoryServiceImpl
- java.lang.Object
-
- co.mastermindcms.modules.services.CategoryServiceImpl
-
- All Implemented Interfaces:
CategoryService
@Service public class CategoryServiceImpl extends java.lang.Object implements CategoryService
-
-
Field Summary
Fields Modifier and Type Field Description private AccessManagementService
accessManagementService
private CategoryRepository
categoryRepository
private CommonProperties
commonProperties
private static com.fasterxml.jackson.databind.ObjectMapper
mapper
private ProductService
productService
private SequenceGeneratorService
sequenceGenerator
private MongoStorageService
storageService
private TranslationService
translationService
private TranslationsRepository
translationsRepository
-
Constructor Summary
Constructors Constructor Description CategoryServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Category
addChildCategory(java.lang.String parentId, java.lang.String childId)
This method does add child entity in parent entity.private void
addRelations(Category categoryUI)
java.util.Optional<Category>
createCategory(Category category)
This method creates a database entity.java.util.Optional<Category>
createCategory(java.util.LinkedHashMap<java.lang.String,java.lang.Object> categoryAsMap)
This method creates a database entity.java.util.Deque<java.util.Map<java.lang.String,java.lang.Object>>
getPaginationFilter(java.lang.String requestJson)
This method does calculation for a pages based on the request.CategoryRepository
getRepository()
java.util.List<java.lang.String>
lookupToParents(java.lang.String categoryId, java.util.List<java.lang.String> result)
This method does call to collect all parent idsCategoryDTO
mapCategoryToDto(Category category, boolean optimal)
This method does map category entity to dto objectprivate void
prepareRelations(Category categoryUI, Category categoryDB)
java.util.List<Category>
rebuildAllCategories(java.util.ArrayList<java.lang.Object> categories)
This method rebuilds a list of database entities.void
removeCategoriesByIds(java.util.ArrayList<java.lang.String> categoriesIds)
This method removes a list of database entities.void
removeCategoryFromTranslation(java.lang.String categoryId, java.lang.String translationId)
This method removes relationship between database entities.void
removeCategoryWithDescendants(java.lang.String itemId)
This method removes database entity with child database entity.void
removeChildCategory(java.lang.String parentId, java.lang.String childId)
This method does delete child entity in parent entity.private void
removeRelations(Category categoryUI, Category categoryDB)
java.util.LinkedHashSet<CategoryDTO>
searchCategories(java.lang.String requestJson)
This method does search requests and returns data as list.java.util.List<Category>
searchCategories(java.lang.String query, java.lang.String from, java.lang.String to)
This method does search requests and returns data as list.org.springframework.data.domain.Page<Category>
searchCategoriesPaged(java.lang.String requestJson)
This method does search requests and returns data as pages.Category
updateCategory(Category category)
This method updates of database entity.Category
updateCategory(java.util.LinkedHashMap<java.lang.String,java.lang.Object> categoryAsMap)
This method updates of database entity.
-
-
-
Field Detail
-
translationsRepository
@Autowired private TranslationsRepository translationsRepository
-
categoryRepository
@Autowired private CategoryRepository categoryRepository
-
productService
@Autowired private ProductService productService
-
translationService
@Autowired private TranslationService translationService
-
storageService
@Autowired private MongoStorageService storageService
-
accessManagementService
@Autowired private AccessManagementService accessManagementService
-
commonProperties
@Autowired private CommonProperties commonProperties
-
sequenceGenerator
@Autowired private SequenceGeneratorService sequenceGenerator
-
mapper
private static final com.fasterxml.jackson.databind.ObjectMapper mapper
-
-
Method Detail
-
getRepository
public CategoryRepository getRepository()
- Specified by:
getRepository
in interfaceCategoryService
-
getPaginationFilter
public java.util.Deque<java.util.Map<java.lang.String,java.lang.Object>> getPaginationFilter(java.lang.String requestJson)
Description copied from interface:CategoryService
This method does calculation for a pages based on the request.- Specified by:
getPaginationFilter
in interfaceCategoryService
- Parameters:
requestJson
- JSON-object of request contains an instructions for search queries- Returns:
- map-representation of data
-
searchCategories
public java.util.LinkedHashSet<CategoryDTO> searchCategories(java.lang.String requestJson)
Description copied from interface:CategoryService
This method does search requests and returns data as list.- Specified by:
searchCategories
in interfaceCategoryService
- Parameters:
requestJson
- search request- Returns:
- data transport entities as list
-
searchCategoriesPaged
public org.springframework.data.domain.Page<Category> searchCategoriesPaged(java.lang.String requestJson)
Description copied from interface:CategoryService
This method does search requests and returns data as pages.- Specified by:
searchCategoriesPaged
in interfaceCategoryService
- Parameters:
requestJson
- JSON-object of request contains an instructions for search queries- Returns:
- database entities separated to pages
-
searchCategories
public java.util.List<Category> searchCategories(java.lang.String query, java.lang.String from, java.lang.String to)
Description copied from interface:CategoryService
This method does search requests and returns data as list.- Specified by:
searchCategories
in interfaceCategoryService
- Parameters:
query
- search queryfrom
- field which filter and returned itemsto
- field which filter and returned items- Returns:
- database entities as list
-
createCategory
@Transactional public java.util.Optional<Category> createCategory(java.util.LinkedHashMap<java.lang.String,java.lang.Object> categoryAsMap)
Description copied from interface:CategoryService
This method creates a database entity.- Specified by:
createCategory
in interfaceCategoryService
- Parameters:
categoryAsMap
- map-representation of database entity- Returns:
- optional value to externally interaction
-
createCategory
public java.util.Optional<Category> createCategory(Category category)
Description copied from interface:CategoryService
This method creates a database entity.- Specified by:
createCategory
in interfaceCategoryService
- Parameters:
category
- database entity- Returns:
- optional value to externally interaction
-
addChildCategory
@Transactional public Category addChildCategory(java.lang.String parentId, java.lang.String childId)
Description copied from interface:CategoryService
This method does add child entity in parent entity.- Specified by:
addChildCategory
in interfaceCategoryService
- Parameters:
parentId
- identification for database entity which will be updatedchildId
- identification for database entity which will be added in parent database entity- Returns:
- database entity
-
removeChildCategory
public void removeChildCategory(java.lang.String parentId, java.lang.String childId)
Description copied from interface:CategoryService
This method does delete child entity in parent entity.- Specified by:
removeChildCategory
in interfaceCategoryService
- Parameters:
parentId
- identification for database entity which will be updatedchildId
- identification for database entity which will be added in parent database entity
-
updateCategory
@Transactional public Category updateCategory(java.util.LinkedHashMap<java.lang.String,java.lang.Object> categoryAsMap)
Description copied from interface:CategoryService
This method updates of database entity.- Specified by:
updateCategory
in interfaceCategoryService
- Parameters:
categoryAsMap
- map-representation of database entity- Returns:
- updated instance of database entity
-
updateCategory
@Transactional public Category updateCategory(Category category)
Description copied from interface:CategoryService
This method updates of database entity.- Specified by:
updateCategory
in interfaceCategoryService
- Parameters:
category
- database entity which will be updated- Returns:
- updated instance of database entity
-
addRelations
private void addRelations(Category categoryUI)
-
removeCategoryFromTranslation
@Transactional public void removeCategoryFromTranslation(java.lang.String categoryId, java.lang.String translationId)
Description copied from interface:CategoryService
This method removes relationship between database entities.- Specified by:
removeCategoryFromTranslation
in interfaceCategoryService
- Parameters:
categoryId
- identification for database entity which will be removedtranslationId
- identification for database entity which will be updated
-
removeCategoryWithDescendants
@Transactional public void removeCategoryWithDescendants(java.lang.String itemId)
Description copied from interface:CategoryService
This method removes database entity with child database entity.- Specified by:
removeCategoryWithDescendants
in interfaceCategoryService
- Parameters:
itemId
- identification for child database entity which will be removed and whose parent entity will be removed
-
removeCategoriesByIds
@Transactional public void removeCategoriesByIds(java.util.ArrayList<java.lang.String> categoriesIds)
Description copied from interface:CategoryService
This method removes a list of database entities.- Specified by:
removeCategoriesByIds
in interfaceCategoryService
- Parameters:
categoriesIds
- the list of database entities which will be removed
-
rebuildAllCategories
@Transactional public java.util.List<Category> rebuildAllCategories(java.util.ArrayList<java.lang.Object> categories)
Description copied from interface:CategoryService
This method rebuilds a list of database entities.- Specified by:
rebuildAllCategories
in interfaceCategoryService
- Parameters:
categories
- the list of database entities which will be removed and updated- Returns:
- list of categories
-
mapCategoryToDto
public CategoryDTO mapCategoryToDto(Category category, boolean optimal)
Description copied from interface:CategoryService
This method does map category entity to dto object- Specified by:
mapCategoryToDto
in interfaceCategoryService
- Parameters:
category
- database entity which be used to map to dtooptimal
- this pointer optimises the data transfer object- Returns:
- data transport object
-
lookupToParents
public java.util.List<java.lang.String> lookupToParents(java.lang.String categoryId, java.util.List<java.lang.String> result)
Description copied from interface:CategoryService
This method does call to collect all parent ids- Specified by:
lookupToParents
in interfaceCategoryService
- Parameters:
categoryId
- identification of entity objectresult
- the collection which will be used to collect all parent ids- Returns:
- the list of ids
-
-