Guest User

OrderManager.java

a guest
Jun 11th, 2015
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.17 KB | None | 0 0
  1. package session;
  2.  
  3. import cart.ShoppingCart;
  4. import cart.ShoppingCartItem;
  5. import entity.Customer;
  6. import entity.CustomerOrder;
  7. import entity.OrderedProduct;
  8. import entity.OrderedProductPK;
  9. import entity.Product;
  10. import java.math.BigDecimal;
  11. import java.util.ArrayList;
  12. import java.util.HashMap;
  13. import java.util.List;
  14. import java.util.Map;
  15. import java.util.Random;
  16. import javax.annotation.Resource;
  17. import javax.ejb.EJB;
  18. import javax.ejb.SessionContext;
  19. import javax.ejb.Stateless;
  20. import javax.ejb.TransactionAttribute;
  21. import javax.ejb.TransactionAttributeType;
  22. import javax.ejb.TransactionManagement;
  23. import javax.ejb.TransactionManagementType;
  24. import javax.persistence.EntityManager;
  25. import javax.persistence.PersistenceContext;
  26.  
  27. @Stateless
  28. @TransactionManagement(TransactionManagementType.CONTAINER)
  29. public class OrderManager {
  30.  
  31.     @PersistenceContext(unitName = "LarrysPU")
  32.     private EntityManager em;
  33.  
  34.     @Resource
  35.     private SessionContext context;
  36.  
  37.     @EJB
  38.     private ProductFacade productFacade;
  39.  
  40.     @EJB
  41.     private CustomerOrderFacade customerOrderFacade;
  42.  
  43.     @EJB
  44.     private OrderedProductFacade orderedProductFacade;
  45.  
  46.     @TransactionAttribute(TransactionAttributeType.REQUIRED)
  47.     public int placeOrder(String name, String email, String phone, String address, String town, String county, String postcode, String ccNumber, ShoppingCart cart) {
  48.         try {
  49.             Customer customer = addCustomer(name, email, phone, address, town, county, postcode, ccNumber);
  50.             CustomerOrder order = addOrder(customer, cart);
  51.             addOrderedItems(order, cart);
  52.             return order.getId();
  53.         } catch (Exception e) {
  54.             context.setRollbackOnly();
  55.             return 0;
  56.         }
  57.     }
  58.  
  59.     private Customer addCustomer(String name, String email, String phone, String address, String town, String county, String postcode, String ccNumber) {
  60.         Customer customer = new Customer();
  61.         customer.setName(name);
  62.         customer.setEmail(email);
  63.         customer.setPhone(phone);
  64.         customer.setAddress(address);
  65.         customer.setTown(town);
  66.         customer.setCounty(county);
  67.         customer.setPostcode(postcode);
  68.         customer.setCcNumber(ccNumber);
  69.  
  70.         em.persist(customer);
  71.         return customer;
  72.     }
  73.  
  74.     private CustomerOrder addOrder(Customer customer, ShoppingCart cart) {
  75.         CustomerOrder order = new CustomerOrder();
  76.         order.setCustomer(customer);
  77.         order.setAmount(BigDecimal.valueOf(cart.getTotal()));
  78.  
  79.         Random random = new Random();
  80.         int i = random.nextInt(999999999);
  81.         order.setConfirmationNumber(i);
  82.  
  83.         em.persist(order);
  84.         return order;
  85.     }
  86.  
  87.     private void addOrderedItems(CustomerOrder order, ShoppingCart cart) {
  88.  
  89.         em.flush();
  90.  
  91.         List<ShoppingCartItem> items = cart.getItems();
  92.  
  93.         for (ShoppingCartItem scItem : items) {
  94.  
  95.             int productId = scItem.getProduct().getId();
  96.  
  97.             OrderedProductPK orderedProductPK = new OrderedProductPK();
  98.             orderedProductPK.setCustomerOrderId(order.getId());
  99.             orderedProductPK.setProductId(productId);
  100.  
  101.             OrderedProduct orderedItem = new OrderedProduct(orderedProductPK);
  102.  
  103.             orderedItem.setQuantity(scItem.getQuantity());
  104.  
  105.             em.persist(orderedItem);
  106.         }
  107.     }
  108.  
  109.     public Map getOrderDetails(int orderId) {
  110.  
  111.         Map orderMap = new HashMap();
  112.  
  113.         CustomerOrder order = customerOrderFacade.find(orderId);
  114.  
  115.         Customer customer = order.getCustomer();
  116.  
  117.         List<OrderedProduct> orderedProducts = orderedProductFacade.findByOrderId(orderId);
  118.  
  119.         List<Product> products = new ArrayList<Product>();
  120.  
  121.         for (OrderedProduct op : orderedProducts) {
  122.  
  123.             Product p = (Product) productFacade.find(op.getOrderedProductPK().getProductId());
  124.             products.add(p);
  125.         }
  126.  
  127.         orderMap.put("orderRecord", order);
  128.         orderMap.put("customer", customer);
  129.         orderMap.put("orderedProducts", orderedProducts);
  130.         orderMap.put("products", products);
  131.  
  132.         return orderMap;
  133.     }
  134.  
  135. }
Advertisement
Add Comment
Please, Sign In to add comment