Я реализовал функцию, которая увеличивает количество корзин на единицу, когда вы покупаете тот же товар, но когда я нажимаю кнопку, он увеличивается на 2, а не на 1
@RequestMapping(value = "/add/{movieId}", method = RequestMethod.PUT)
@ResponseStatus(value = HttpStatus.NO_CONTENT)
public int addItem(@PathVariable(value = "movieId") int movieId,@AuthenticationPrincipal User activeUser){
Customer customer = customerService.getCustomerByUsername(activeUser.getUsername());
Cart cart = customer.getCart();
Movie movie = movieService.getMovieById(movieId);
List<CartItem> cartItems = cart.getCartItems();
for (CartItem item : cartItems) {
if(movie.getMovieId()==item.getMovie().getMovieId()){
CartItem cartItem = item;
cartItem.setQuantity(cartItem.getQuantity()+1);
cartItem.setTotalPrice(movie.getMoviePrice()*cartItem.getQuantity());
cartItemService.addCartItem(cartItem);
return 0;
}
}
CartItem cartItem = new CartItem();
cartItem.setMovie(movie);
cartItem.setQuantity(1);
cartItem.setTotalPrice(movie.getMoviePrice()*cartItem.getQuantity());
cartItem.setCart(cart);
cartItemService.addCartItem(cartItem);
return 0;
}
Угловая деталь
$scope.addToCart = function (movieId){
$http.put("/rest/cart/add/"+movieId).success(function(){
alert("Movie successfully add to the cart");
});
};
Кнопка HTML
<button class="btn btn-rose btn-round" ng-controller="cartCtrl" ng-click="addToCart('${movie.movieId}')">Add to Cart <i class="material-icons">shopping_cart</i></button>