Commit daa0dcbb by Bright Sukumpanumet

Fix table name (Order > Checkout)

Change item status to SOLD when checkout
parent e925419d
......@@ -8,25 +8,25 @@ import java.util.Set;
* Created by Bright on 2018-11-27.
*/
@Entity
public class Order
public class Checkout
{
@Id
private Long orderId;
private Long checkoutId;
@ManyToMany(cascade = {CascadeType.PERSIST})
@JoinTable(name = "order_item",
joinColumns = @JoinColumn(name = "order_id", referencedColumnName = "orderId"),
@JoinTable(name = "checkout_item",
joinColumns = @JoinColumn(name = "checkout_id", referencedColumnName = "checkoutId"),
inverseJoinColumns = @JoinColumn(name = "item_id", referencedColumnName = "itemId"))
private Set<Item> items = new HashSet<>();
public Order()
public Checkout()
{}
public Order(Long orderId)
public Checkout(Long checkoutId)
{
this.orderId = orderId;
this.checkoutId = checkoutId;
}
public Set<Item> getItems()
......
......@@ -45,6 +45,7 @@ public class ShoppingCart
{
for (Item item : items)
{
this.items.remove(item);
item.getShopping_carts().remove(this);
}
......
......@@ -5,5 +5,5 @@ package edu.uchicago.mpcs.topics.auction;
*/
public enum Status
{
ACTIVE, INACTIVE, FAILED, INAPPROPRIATE, COUNTERFEIT, SUSPENDED, DELETED, HASBID
ACTIVE, INACTIVE, FAILED, INAPPROPRIATE, COUNTERFEIT, SUSPENDED, DELETED, HASBID, SOLD
}
package edu.uchicago.mpcs.topics.controller;
import edu.uchicago.mpcs.topics.auction.Item;
import edu.uchicago.mpcs.topics.auction.Order;
import edu.uchicago.mpcs.topics.db.OrderRepository;
import edu.uchicago.mpcs.topics.auction.Checkout;
import edu.uchicago.mpcs.topics.db.CheckoutRepository;
import edu.uchicago.mpcs.topics.db.ShoppingCartRepository;
import edu.uchicago.mpcs.topics.service.OrderService;
import edu.uchicago.mpcs.topics.service.CheckoutService;
import edu.uchicago.mpcs.topics.service.ShoppingCartService;
import edu.uchicago.mpcs.topics.auction.ShoppingCart;
import org.springframework.web.bind.annotation.*;
......@@ -19,8 +19,8 @@ public class ShoppingCartController
{
private ShoppingCartService shoppingCartService;
private ShoppingCartRepository shoppingCartRepository;
private OrderService orderService;
private OrderRepository orderRepository;
private CheckoutService checkoutService;
private CheckoutRepository checkoutRepository;
public ShoppingCartController(ShoppingCartService shoppingCartService, ShoppingCartRepository shoppingCartRepository)
{
......@@ -49,10 +49,10 @@ public class ShoppingCartController
}
@PostMapping ("/{id}/checkout")
public Order checkout(@PathVariable Long id, @RequestBody Order order)
public Checkout checkout(@PathVariable Long id, @RequestBody Checkout checkout)
{
// save order (checkout) to db
// save checkout (checkout) to db
shoppingCartService.checkout(shoppingCartRepository.findById(id).orElse(null));
return orderService.checkout(order);
return checkoutService.checkout(checkout);
}
}
package edu.uchicago.mpcs.topics.db;
import edu.uchicago.mpcs.topics.auction.Order;
import edu.uchicago.mpcs.topics.auction.Checkout;
import org.springframework.data.repository.CrudRepository;
/**
* Created by Bright on 2018-11-29.
*/
public interface OrderRepository extends CrudRepository<Order, Long>
public interface CheckoutRepository extends CrudRepository<Checkout, Long>
{
}
package edu.uchicago.mpcs.topics.service;
import edu.uchicago.mpcs.topics.auction.Item;
import edu.uchicago.mpcs.topics.auction.Order;
import edu.uchicago.mpcs.topics.auction.Checkout;
import edu.uchicago.mpcs.topics.auction.Status;
import edu.uchicago.mpcs.topics.db.ItemRepository;
import edu.uchicago.mpcs.topics.db.OrderRepository;
import edu.uchicago.mpcs.topics.db.CheckoutRepository;
import org.springframework.stereotype.Service;
/**
......@@ -12,26 +12,26 @@ import org.springframework.stereotype.Service;
*/
@Service
public class OrderService
public class CheckoutService
{
private OrderRepository orderRepository;
private CheckoutRepository checkoutRepository;
private ItemRepository itemRepository;
public OrderService(OrderRepository orderRepository, ItemRepository itemRepository)
public CheckoutService(CheckoutRepository checkoutRepository, ItemRepository itemRepository)
{
this.orderRepository = orderRepository;
this.checkoutRepository = checkoutRepository;
}
//create an order
public Order checkout(Order order)
//create an checkout
public Checkout checkout(Checkout checkout)
{
//set item status as DELETED
for (Item item : order.getItems())
for (Item item : checkout.getItems())
{
item.setStatus(Status.DELETED);
itemRepository.save(item);
}
return orderRepository.save(order);
return checkoutRepository.save(checkout);
}
}
......@@ -30,6 +30,8 @@ public class ItemService
public Item addItem(Item item)
{
//start timer
return itemRepository.save(item);
}
......
package edu.uchicago.mpcs.topics.service;
import edu.uchicago.mpcs.topics.auction.Item;
import edu.uchicago.mpcs.topics.auction.Status;
import edu.uchicago.mpcs.topics.db.ItemRepository;
import edu.uchicago.mpcs.topics.db.ShoppingCartRepository;
import edu.uchicago.mpcs.topics.auction.ShoppingCart;
......@@ -38,10 +39,17 @@ public class ShoppingCartService
return shoppingCartRepository.save(shoppingCart);
}
public ShoppingCart checkout(ShoppingCart shoppingCart)
public void checkout(ShoppingCart shoppingCart)
{
//for each item in order delete item from shopping cart
return shoppingCart.removeAllItems();
//for each item in checkout, delete item from shopping cart
for (Item item : shoppingCart.getItems())
{
item.setStatus(Status.SOLD);
itemRepository.save(item);
}
//for each item in checkout, change Status to SOLD
shoppingCart.removeAllItems();
}
}
\ No newline at end of file
......@@ -306,3 +306,9 @@ create table order (order_id bigint not null, primary key (order_id)) [42001-197
2018-11-29 22:31:50 jdbc[3]: exception
org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "ALTER TABLE ORDER_ITEM ADD CONSTRAINT FKT6WV8M7ESHKSP5KP8W4B2D1DM FOREIGN KEY (ORDER_ID) REFERENCES ORDER[*] "; expected "identifier"; SQL statement:
alter table order_item add constraint FKt6wv8m7eshksp5kp8w4b2d1dm foreign key (order_id) references order [42001-197]
2018-11-29 23:25:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "CREATE TABLE ORDER[*] (ORDER_ID BIGINT NOT NULL, PRIMARY KEY (ORDER_ID)) "; expected "identifier"; SQL statement:
create table order (order_id bigint not null, primary key (order_id)) [42001-197]
2018-11-29 23:25:00 jdbc[3]: exception
org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "ALTER TABLE ORDER_ITEM ADD CONSTRAINT FKT6WV8M7ESHKSP5KP8W4B2D1DM FOREIGN KEY (ORDER_ID) REFERENCES ORDER[*] "; expected "identifier"; SQL statement:
alter table order_item add constraint FKt6wv8m7eshksp5kp8w4b2d1dm foreign key (order_id) references order [42001-197]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment