Количество увеличивается на 2, а не на одно. Весенний ботинок - PullRequest
0 голосов
/ 05 июля 2019

Я реализовал функцию, которая увеличивает количество корзин на единицу, когда вы покупаете тот же товар, но когда я нажимаю кнопку, он увеличивается на 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 &nbsp;<i class="material-icons">shopping_cart</i></button>

1 Ответ

0 голосов
/ 05 июля 2019

В этом for вы пытаетесь найти фильм с тем же идентификатором и чем увеличиваете его количество, так почему вы запускаете cartItemService.addCartItem(cartItem)?Вы должны изменить его, чтобы обновить сущность, что-то вроде cartItemService.updateCartItem(cartItem).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...