@Override public List<OrderMultishipOption> generateOrderMultishipOptions(Order order) { List<OrderMultishipOption> orderMultishipOptions = new ArrayList<OrderMultishipOption>(); for (DiscreteOrderItem discreteOrderItem : order.getDiscreteOrderItems()) { orderMultishipOptions.addAll(createPopulatedOrderMultishipOption(order, discreteOrderItem, discreteOrderItem.getQuantity())); } return orderMultishipOptions; }
@Override public void updateItemQuantity(Order order, OrderItemRequestDTO orderItemRequestDTO) throws ItemNotFoundException, PricingException { OrderItem orderItem = null; for (DiscreteOrderItem doi : order.getDiscreteOrderItems()) { if (doi.getId().equals(orderItemRequestDTO.getOrderItemId())) { orderItem = doi; } } orderItem.setQuantity(orderItemRequestDTO.getQuantity()); updateItemQuantity(order, orderItem, true); }
for (DiscreteOrderItem item : order.getDiscreteOrderItems()) { orderDiscreteOrderItemCounts.put(item.getId(), item.getQuantity());
protected void fixTranslations(Order cart) { for (DiscreteOrderItem orderItem : cart.getDiscreteOrderItems()) { Sku sku = orderItem.getSku(); translateOrderItem(orderItem, sku); } for (OrderItem orderItem : cart.getOrderItems()) { if (orderItem instanceof BundleOrderItem) { BundleOrderItem bundleItem = (BundleOrderItem) orderItem; Sku sku = bundleItem.getSku(); translateOrderItem(orderItem, sku); } } }
@Transactional @PreAuthorize("hasAnyRole('PERMISSION_ALL_ORDER', 'ROLE_USER')") @RequestMapping(value = "/{orderId}/items/{itemId}", method = RequestMethod.GET) @ApiOperation( value = "Get details of an item", notes = "Gets a description of a specified item in a given order", response = DiscreteOrderItemDto.class) @ApiResponses(value = { @ApiResponse(code = 201, message = "Successful retrieval of item details", response = DiscreteOrderItemDto.class), @ApiResponse(code = 404, message = "The specified order or item does not exist") }) public DiscreteOrderItemDto getOneItemFromOrder( @ApiIgnore @AuthenticationPrincipal UserDetails userDetails, @ApiParam(value = "ID of a specific order", required = true) @PathVariable(value = "orderId") Long orderId, @ApiParam(value = "ID of a specific item in the order", required = true) @PathVariable(value = "itemId") Long itemId, @RequestParam(value = "embed", defaultValue = "false") Boolean embed, @RequestParam(value = "link", defaultValue = "true") Boolean link ) { return orderServiceProxy.getProperCart(userDetails, orderId).orElseThrow(ResourceNotFoundException::new) .getDiscreteOrderItems().stream() .filter(x -> Objects.equals(x.getId(), itemId)).findAny() .map(discreteOrderItem -> discreteOrderItemConverter.createDto(discreteOrderItem, embed, link)) .orElseThrow(() -> new ResourceNotFoundException("Cannot find the item in card with ID: " + itemId)); }
@Transactional(rollbackFor = UpdateCartException.class) public void updateItemQuantityInOrder ( Integer quantity, UserDetails userDetails, Long orderId, Long itemId) throws UpdateCartException, RemoveFromCartException { // if (quantity <= 0) { // return new ResponseEntity<>(HttpStatus.CONFLICT); // } final Order cart = getProperCart(userDetails, orderId) .orElseThrow(ResourceNotFoundException::new); if (cart.getDiscreteOrderItems().stream().filter(x -> Objects.equals(x.getId(), itemId)).count() != 1) { throw new ResourceNotFoundException("Cannot find an item with ID: " + itemId); } final OrderItemRequestDTO orderItemRequestDto = new OrderItemRequestDTO(); orderItemRequestDto.setQuantity(quantity); orderItemRequestDto.setOrderItemId(itemId); orderService.updateItemQuantity(orderId, orderItemRequestDto, true); }
@Transactional @PreAuthorize("hasAnyRole('PERMISSION_ALL_ORDER', 'ROLE_USER')") @RequestMapping(value = "/{orderId}/items/{itemId}", method = RequestMethod.DELETE) @ApiOperation( value = "Delete an item", notes = "Removes an item from a specified order", response = Void.class) @ApiResponses(value = { @ApiResponse(code = 201, message = "Successful removal of the specified item"), @ApiResponse(code = 404, message = "The specified order does not exist") }) public void removeItemFromOrder( @ApiIgnore @AuthenticationPrincipal UserDetails userDetails, @ApiParam(value = "ID of a specific order", required = true) @PathVariable(value = "orderId") Long orderId, @ApiParam(value = "ID of a specific item in the order", required = true) @PathVariable(value = "itemId") Long itemId) { final Order cart = orderServiceProxy.getProperCart(userDetails, orderId).orElseThrow(ResourceNotFoundException::new); if (cart.getDiscreteOrderItems().stream().filter(x -> Objects.equals(x.getId(), itemId)).count() != 1) { throw new ResourceNotFoundException("Cannot find an item with ID: " + itemId); } Try.of(() -> orderService.save(orderService.removeItem(cart.getId(), itemId, true), true)) .getOrElseThrow(() -> new ResourceNotFoundException("Error while removing item with ID: " + itemId)); }
final List<DiscreteOrderItem> currentDiscreteItems = cart.getDiscreteOrderItems(); addedDiscreteOrderItem = cart.getDiscreteOrderItems().stream() .filter(x -> x.getSku().getId().longValue() == orderItemRequestDTO.getSkuId()) .findAny() .orElseThrow(ResourceNotFoundException::new); } else { final List<DiscreteOrderItem> newDiscreteItemsIds = cart.getDiscreteOrderItems().stream() .filter(item -> !currentDiscreteItems.contains(item)) .collect(Collectors.toList());
final List<DiscreteOrderItem> currentDiscreteItems = cart.getDiscreteOrderItems(); addedItemId = cart.getDiscreteOrderItems().stream() .filter(x -> x.getSku().getId().longValue() == req.getSkuId()) .findAny() .orElseThrow(ResourceNotFoundException::new); } else { final List<DiscreteOrderItem> newDiscreteItemsIds = cart.getDiscreteOrderItems().stream() .filter(item -> !currentDiscreteItems.contains(item)) .collect(Collectors.toList());
}); Optional.ofNullable(order.getDiscreteOrderItems()) .map(orderItems -> orderItems.stream() .map(discreteOrderItem -> discreteOrderItemConverter.createDto(discreteOrderItem, embed, link))