diff --git a/dukes-shipment/pom.xml b/dukes-shipment/pom.xml index 750fb3f..5e4228f 100644 --- a/dukes-shipment/pom.xml +++ b/dukes-shipment/pom.xml @@ -15,6 +15,11 @@ dukes-shipment + + ${project.groupId} + usecases-identity + ${project.version} + ${project.groupId} jpa-persistence @@ -25,5 +30,10 @@ dukes-resources ${project.version} + + ${project.groupId} + events + ${project.version} + diff --git a/dukes-shipment/src/main/java/com/forest/shipment/session/UserBean.java b/dukes-shipment/src/main/java/com/forest/shipment/session/UserBean.java index a660454..5262bab 100644 --- a/dukes-shipment/src/main/java/com/forest/shipment/session/UserBean.java +++ b/dukes-shipment/src/main/java/com/forest/shipment/session/UserBean.java @@ -7,38 +7,43 @@ */ package com.forest.shipment.session; -import com.forest.entity.CustomerEntity; -import com.forest.entity.PersonEntity; +import javax.annotation.PostConstruct; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; -import javax.persistence.Query; + +import com.forest.entity.CustomerEntity; +import com.forest.model.Customer; +import com.forest.persitence.jpa.PersonPersistenceJPA; +import com.forest.usecase.identity.AbstractBasePersonManager; +import com.forest.usecase.identity.persistence.PersonPersistence; /** * * @author markito */ @Stateless -public class UserBean extends AbstractFacade { - - @PersistenceContext(unitName="forestPU") - private EntityManager em; - @Override - protected EntityManager getEntityManager() { - return em; - } +public class UserBean extends AbstractBasePersonManager { + + @PersistenceContext(unitName="forestPU") + private EntityManager entityManager; - public PersonEntity getUserByEmail(String email) { - Query createNamedQuery = getEntityManager().createNamedQuery("Person.findByEmail"); - - createNamedQuery.setParameter("email", email); - - return (PersonEntity) createNamedQuery.getSingleResult(); - } + private PersonPersistenceJPA personPersistance = new PersonPersistenceJPA(); - public UserBean() { - super(CustomerEntity.class); + + @PostConstruct + public void init() { + personPersistance.setEntityManager(entityManager); } + public Customer newCustomerInstance() { + return new CustomerEntity(); + } + + @Override + protected PersonPersistence getPersonPersistence() { + return personPersistance; + } + } diff --git a/dukes-shipment/src/main/java/com/forest/shipment/web/ShippingBean.java b/dukes-shipment/src/main/java/com/forest/shipment/web/ShippingBean.java index 239c88a..182d323 100644 --- a/dukes-shipment/src/main/java/com/forest/shipment/web/ShippingBean.java +++ b/dukes-shipment/src/main/java/com/forest/shipment/web/ShippingBean.java @@ -27,6 +27,7 @@ import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import com.forest.events.OrderEvent; import com.forest.model.CustomerOrder; import com.forest.shipment.ejb.OrderBrowser; @@ -69,47 +70,30 @@ public void setOrders(Map orders) { this.orders = orders; } - public enum Status { - - PENDING_PAYMENT(2), - READY_TO_SHIP(3), - SHIPPED(4), - CANCELLED_PAYMENT(5), - CANCELLED_MANUAL(6); - private int status; - - private Status(final int pStatus) { - status = pStatus; - } - - public int getStatus() { - return status; - } - } - - public String getEndpoint() { + public String getEndpoint() { return SERVICE_ENDPOINT; } - public List listByStatus(final Status status) { - List entity = (List) client.target(SERVICE_ENDPOINT) - .queryParam("status", String.valueOf(status.getStatus())) + public List listByStatus(final int status) { + List entity = (List) client.target(SERVICE_ENDPOINT) + .queryParam("status", String.valueOf(status)) .request(MEDIA_TYPE) - .get(new GenericType>() { + .get(new GenericType>() { }); + return entity; } - public void updateOrderStatus(final String messageID, final Status status) { + public void updateOrderStatus(final String messageID, final String status) { // consume message CustomerOrder order = orderBrowser.processOrder(messageID); // call order service to update db in Store Response response = client.target(SERVICE_ENDPOINT) - .path("/" + order.getId()) + .path("/shipping/" + order.getId()) .request(MEDIA_TYPE) - .put(Entity.text(String.valueOf(status.getStatus()))); + .put(Entity.text(String.valueOf(status))); logger.log(Level.FINEST, "PUT Status response: {0}", response.getStatus()); } @@ -129,7 +113,7 @@ public List getPendingOrders() { } } - public List getCompletedOrders() { - return listByStatus(Status.SHIPPED); + public List getCompletedOrders() { + return listByStatus(4); } } diff --git a/dukes-shipment/src/main/java/com/forest/shipment/web/UserController.java b/dukes-shipment/src/main/java/com/forest/shipment/web/UserController.java index ad5d823..7a76c80 100644 --- a/dukes-shipment/src/main/java/com/forest/shipment/web/UserController.java +++ b/dukes-shipment/src/main/java/com/forest/shipment/web/UserController.java @@ -15,7 +15,6 @@ import javax.enterprise.context.SessionScoped; import javax.enterprise.inject.Produces; import javax.faces.context.FacesContext; -import javax.inject.Inject; import javax.inject.Named; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -38,8 +37,6 @@ public class UserController implements Serializable { private static final long serialVersionUID = -7440104826420270291L; - @Inject - ShippingBean adapter; Person user; @EJB @@ -59,7 +56,7 @@ public String login() { request.login(this.getUsername(), this.getPassword()); - this.user = ejbFacade.getUserByEmail(getUsername()); + this.user = ejbFacade.getPersonByEmail(getUsername()); this.getAuthenticatedUser(); if (isAdmin(user)) { diff --git a/dukes-shipment/src/main/webapp/admin/index.xhtml b/dukes-shipment/src/main/webapp/admin/index.xhtml index bd5e418..ea84bc5 100644 --- a/dukes-shipment/src/main/webapp/admin/index.xhtml +++ b/dukes-shipment/src/main/webapp/admin/index.xhtml @@ -57,7 +57,7 @@
- +
@@ -74,10 +74,10 @@
  • -
    +
    -
    +
    diff --git a/dukes-store/src/main/java/com/forest/ejb/OrderBean.java b/dukes-store/src/main/java/com/forest/ejb/OrderBean.java index 9d56fdd..b5743cf 100644 --- a/dukes-store/src/main/java/com/forest/ejb/OrderBean.java +++ b/dukes-store/src/main/java/com/forest/ejb/OrderBean.java @@ -8,6 +8,7 @@ package com.forest.ejb; import java.io.Serializable; +import java.util.LinkedList; import java.util.List; import javax.annotation.PostConstruct; @@ -25,6 +26,7 @@ import com.forest.entity.CustomerOrderEntity; import com.forest.entity.OrderDetailEntity; import com.forest.entity.OrderDetailPKEntity; +import com.forest.events.OrderEvent; import com.forest.model.CustomerOrder; import com.forest.model.OrderDetail; import com.forest.persitence.jpa.OrderPersistenceJPA; @@ -117,8 +119,20 @@ protected ShippingProvider getShippingProvider() { @GET @Produces({ "application/xml", "application/json" }) - public List getOrderByStatus(@QueryParam("status") int status) { - return super.getOrderByStatus(status); + public List getOrderEventsByStatus(@QueryParam("status") int status) { + + List result = new LinkedList(); + for (CustomerOrder customerOrder: super.getOrderByStatus(status)) { + OrderEvent orderEvent = new OrderEvent(); + orderEvent.setAmount(customerOrder.getAmount()); + orderEvent.setCustomerID(customerOrder.getCustomer().getId()); + orderEvent.setDateCreated(customerOrder.getDateCreated()); + orderEvent.setOrderID(customerOrder.getId()); + orderEvent.setStatusID(customerOrder.getOrderStatus().getId()); + result.add(orderEvent); + } + + return result; } @PUT diff --git a/events/src/main/java/com/forest/events/OrderEvent.java b/events/src/main/java/com/forest/events/OrderEvent.java index 71b19d3..766fe35 100644 --- a/events/src/main/java/com/forest/events/OrderEvent.java +++ b/events/src/main/java/com/forest/events/OrderEvent.java @@ -26,7 +26,8 @@ public class OrderEvent implements Serializable { private double amount; private Date dateCreated; private int customerID; - private int orderID; + private String customerName; + private int orderID; private int statusID; public int getCustomerID() { @@ -69,6 +70,14 @@ public void setAmount(double amount) { this.amount = amount; } + public String getCustomerName() { + return customerName; + } + + public void setCustomerName(String customerName) { + this.customerName = customerName; + } + public String toString() { return "[OrderEvent] " + getCustomerID(); }