@RequestMapping(value = "/{user}/addItem", method = RequestMethod.POST) public @ResponseBody Cart add(@PathVariable String user, @RequestBody Item item) { CartBO cartBO = cartBODao.getCart(user); if (cartBO == null) { cartBO = cartBODao.addCart(user); } item.setUser(user); item.setCartId(cartBO.getId()); Product product = getProductsDao().getProduct(item.getProductId()); item.setName(product.getName()); Item dbItem = getItemDao().getItem(item); if (dbItem == null) { item.setTotal(new BigDecimal(product.getPrice().doubleValue() * item.getQuantity())); getItemDao().save(item); } else { item.setQuantity(dbItem.getQuantity() + item.getQuantity()); item.setTotal(item.getTotal().add(dbItem.getTotal())); getItemDao().update(item); } return preparCart(item); }
@RequestMapping(value = "/{user}/finishCart", method = RequestMethod.PUT) public @ResponseBody Cart finishCart(@PathVariable String user) { cartBODao.finishCart(user); return new Cart(); }
@RequestMapping(value = "/{user}/cancelCart", method = RequestMethod.DELETE) public @ResponseBody Cart cancelCart(@PathVariable String user) { CartBO cartBO = cartBODao.getCart(user); Item item = new Item(); item.setUser(user); item.setCartId(cartBO.getId()); List<Item> items = itemDao.getAllItem(item); for (Item itemX : items) { getItemDao().remove(itemX); } cartBODao.deleteCart(user); return new Cart(); }
@RequestMapping(value = "/{user}/removeItem", method = RequestMethod.POST) public @ResponseBody Cart removeItem(@PathVariable String user, @RequestBody String id) { CartBO cartBO = cartBODao.getCart(user); Item item = new Item(); item.setProductId(id); item.setUser(user); item.setCartId(cartBO.getId()); getItemDao().remove(item); return preparCart(item); }
@RequestMapping(value = "/{user}/updateItem", method = RequestMethod.PUT) public @ResponseBody Cart update(@PathVariable String user, @RequestBody Item item) { item.setUser(user); CartBO cartBO = cartBODao.getCart(user); item.setCartId(cartBO.getId()); Product product = getProductsDao().getProduct(item.getProductId()); item.setTotal(new BigDecimal(product.getPrice().doubleValue() * item.getQuantity())); getItemDao().update(item); return preparCart(item); }
@RequestMapping(value = "/{user}/getCart", method = RequestMethod.GET) public @ResponseBody Cart getCart(@PathVariable String user) { CartBO cartBO = cartBODao.getCart(user); if (cartBO == null) { return new Cart(); } Item item = new Item(); item.setUser(user); item.setCartId(cartBO.getId()); return preparCart(item); }