public List<ProductCategoryDTO> getProductCategoryByNameOrId( Long productCategoryId, String name, Long shopId, Pager pager) { ProductWriter productWriter = productDaoManager.getWriter(); List<ProductCategory> productCategoryList = null; if (productCategoryId == null && StringUtil.isEmpty(name)) { productCategoryList = productWriter.getProductCategoryFuzzyName(shopId, null, pager); List<ProductCategoryDTO> productCategoryDTOList = new ArrayList<ProductCategoryDTO>(); if (CollectionUtils.isNotEmpty(productCategoryList)) { for (ProductCategory productCategory : productCategoryList) { productCategoryDTOList.add(productCategory.toDTO()); } } return productCategoryDTOList; } if (StringUtil.isNotEmpty(name)) { productCategoryList = productWriter.getProductCategoryFuzzyName(shopId, name, pager); List<ProductCategoryDTO> productCategoryDTOList = new ArrayList<ProductCategoryDTO>(); if (CollectionUtils.isNotEmpty(productCategoryList)) { for (ProductCategory productCategory : productCategoryList) { productCategoryDTOList.add(productCategory.toDTO()); } } return productCategoryDTOList; } if (productCategoryId != null) { List<ProductCategoryDTO> productCategoryDTOList = this.getProductCategoryDTOByParentId(shopId, productCategoryId, pager); return productCategoryDTOList; } return null; }
@Override public List<ProductCategoryDTO> getProductCategoryDTOByIds(Set<Long> ids) { List<ProductCategoryDTO> productCategoryDTOList = new ArrayList<ProductCategoryDTO>(); if (CollectionUtils.isEmpty(ids)) return productCategoryDTOList; ProductWriter productWriter = productDaoManager.getWriter(); List<ProductCategory> entityList = productWriter.getProductCategoryByIds(ids); for (ProductCategory entity : entityList) { productCategoryDTOList.add(entity.toDTO()); } return productCategoryDTOList; }
public List<ProductCategoryDTO> getProductCategoryDTOByShopId(Long shopId) { List<ProductCategoryDTO> productCategoryDTOList = new ArrayList<ProductCategoryDTO>(); ProductWriter productWriter = productDaoManager.getWriter(); List<ProductCategory> productCategoryList = productWriter.getProductCategoryByShopId(shopId); if (CollectionUtils.isNotEmpty(productCategoryList)) { for (ProductCategory productCategory : productCategoryList) { productCategoryDTOList.add(productCategory.toDTO()); } } return productCategoryDTOList; }
public List<ProductCategoryDTO> getThirdProductCategoryDTOByName(Long shopId, String name) { ProductWriter productWriter = productDaoManager.getWriter(); List<ProductCategory> productCategoryList = productWriter.getThirdProductCategoryByName(shopId, name); List<ProductCategoryDTO> productCategoryDTOList = new ArrayList<ProductCategoryDTO>(); if (CollectionUtils.isEmpty(productCategoryList)) { return productCategoryDTOList; } for (ProductCategory productCategory : productCategoryList) { ProductCategoryDTO productCategoryDTO = productCategory.toDTO(); ProductCategoryDTO secondProductCategory = ProductCategoryCache.getProductCategoryDTOById(productCategoryDTO.getParentId()); if (secondProductCategory != null) { productCategoryDTO.setSecondCategoryName(secondProductCategory.getName()); productCategoryDTO.setSecondCategoryId(secondProductCategory.getId()); } productCategoryDTOList.add(productCategoryDTO); } return productCategoryDTOList; }
@Override public ProductCategoryDTO fillProductCategoryDTOInfo(ProductCategoryDTO productCategoryDTO) { if (productCategoryDTO == null) { return null; } ProductWriter productWriter = productDaoManager.getWriter(); if (productCategoryDTO.getCategoryType() == ProductCategoryType.TOP_CATEGORY || productCategoryDTO.getCategoryType() == ProductCategoryType.FIRST_CATEGORY) { productCategoryDTO.setFirstCategoryId(productCategoryDTO.getId()); productCategoryDTO.setFirstCategoryName(productCategoryDTO.getName()); } else if (productCategoryDTO.getCategoryType() == ProductCategoryType.SECOND_CATEGORY) { productCategoryDTO.setSecondCategoryId(productCategoryDTO.getId()); productCategoryDTO.setSecondCategoryName(productCategoryDTO.getName()); ProductCategory firstProductCategory = productWriter.getById(ProductCategory.class, productCategoryDTO.getParentId()); productCategoryDTO.setFirstCategoryId(firstProductCategory.getId()); productCategoryDTO.setFirstCategoryName(firstProductCategory.getName()); } else if (productCategoryDTO.getCategoryType() == ProductCategoryType.THIRD_CATEGORY) { productCategoryDTO.setThirdCategoryName(productCategoryDTO.getName()); productCategoryDTO.setThirdCategoryId(productCategoryDTO.getId()); ProductCategory secondProductCategory = productWriter.getById(ProductCategory.class, productCategoryDTO.getParentId()); productCategoryDTO.setSecondCategoryId(secondProductCategory.getId()); productCategoryDTO.setSecondCategoryName(secondProductCategory.getName()); ProductCategory firstProductCategory = productWriter.getById(ProductCategory.class, secondProductCategory.getParentId()); productCategoryDTO.setFirstCategoryId(firstProductCategory.getId()); productCategoryDTO.setFirstCategoryName(firstProductCategory.getName()); } return productCategoryDTO; }
public ProductCategoryDTO saveOrUpdateProductCategoryDTO(ProductCategoryDTO productCategoryDTO) { if (productCategoryDTO == null) { return productCategoryDTO; } ProductWriter writer = productDaoManager.getWriter(); Object status = writer.begin(); ProductCategory productCategory = null; try { if (productCategoryDTO.getId() == null) { productCategory = new ProductCategory(productCategoryDTO); writer.save(productCategory); } else { productCategory = writer.getById(ProductCategory.class, productCategoryDTO.getId()); productCategory = productCategory.fromDTO(productCategoryDTO, false); writer.saveOrUpdate(productCategory); } writer.commit(status); productCategoryDTO = productCategory.toDTO(); } finally { writer.rollback(status); } return productCategoryDTO; }
@Override public Node getProductCategory(Long shopId) { Node root = new Node(); ProductWriter writer = productDaoManager.getWriter(); List<ProductCategory> productCategoryList = writer.getProductCategoryByShopId(shopId); if (CollectionUtils.isEmpty(productCategoryList)) { return root; } List<Node> nodeList = null; Map<Long, List<Node>> secondTypeMap = new HashMap<Long, List<Node>>(); for (ProductCategory productCategory : productCategoryList) { if (productCategory.getParentId() == null && productCategory.getCategoryType() == ProductCategoryType.TOP_CATEGORY) { root = productCategory.toNode(); } if (productCategory.getCategoryType() == ProductCategoryType.SECOND_CATEGORY) { if (secondTypeMap.get(productCategory.getParentId()) == null) { nodeList = new ArrayList<Node>(); secondTypeMap.put(productCategory.getParentId(), nodeList); } Node node = productCategory.toNode(); secondTypeMap.get(productCategory.getParentId()).add(node); } } List<Node> nodes = new ArrayList<Node>(); for (ProductCategory productCategory : productCategoryList) { if (productCategory.getCategoryType() == ProductCategoryType.FIRST_CATEGORY) { nodeList = secondTypeMap.get(productCategory.getId()); Node node = productCategory.toNode(); if (CollectionUtils.isNotEmpty(nodeList)) { node.setChildren(nodeList); } nodes.add(node); } } root.mergeAndBuildTree(root, nodes); return root; }