⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ordermanagementbean.java

📁 噶额外噶外骨骼感广泛高热感 就 啊啊
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * @author                        : Sujatha
 * @Version                       : 1.0
 *
 * Development Environment        : Oracle 9i JDeveloper
 * Name of the File               : OrderManagementBean.java
 * Creation/Modification History  :
 *
 * Sujatha    11-Dec-2002      Created
 *
 */
package oracle.otnsamples.vsm.services;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import javax.ejb.FinderException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;

import oracle.otnsamples.util.ServiceLocator;
import oracle.otnsamples.vsm.Constants;
import oracle.otnsamples.vsm.entities.ItemDetailLocal;
import oracle.otnsamples.vsm.entities.ItemDetailLocalHome;
import oracle.otnsamples.vsm.entities.ItemDetailPK;
import oracle.otnsamples.vsm.entities.OrderItemLocal;
import oracle.otnsamples.vsm.entities.OrderItemLocalHome;
import oracle.otnsamples.vsm.entities.ProductOrderLocal;
import oracle.otnsamples.vsm.entities.ProductOrderLocalHome;
import oracle.otnsamples.vsm.services.data.Address;
import oracle.otnsamples.vsm.services.data.Order;
import oracle.otnsamples.vsm.services.data.OrderDetail;


/**
 * This is the implementation of Order Management Service bean. The bean
 * provides implementations for all the order management services defined in
 * the remote interface. The bean interacts with various local entity beans to
 * retrieve and store data to the persistent store.The entity beans referenced
 * in this bean are described in ejb-jar.xml
 */
public class OrderManagementBean implements SessionBean {
  /**
   * Initializes the bean
   */
  public void ejbCreate() {
  }
  /**
   * Container call back, called just after instance of this bean is activated
   */
  public void ejbActivate() {
  }
  /**
   * Container call back, called just before instance of this bean is
   * passivated
   */
  public void ejbPassivate() {
  }
  /**
   * Container call back, called by container before it ends the life of the
   * session object.
   */
  public void ejbRemove() {
  }
  /**
   * Set the associated session context. The container calls this method after
   * the instance creation.
   *
   * @param <b>ctx</b> - A SessionContext interface for the instance.
   */
  public void setSessionContext(SessionContext ctx) {
  }
  /**
   * This business method retrieves all orders placed by a mall user
   *
   * @param <b>userName</b> - userName of the user whose order information has
   *        to be queried
   * @param <b>count</b> - number of latest orders to be queried
   *
   * @return <b>Order[]</b> - array of order value objects having latest order
   *         information
   *
   * @throws <b>OrderException</b> if the orders could not be fetched
   * @throws <b>RemoteException</b> container error
   */
  public Order[] getLatestOrdersForUser(String userName, int count)
                                 throws OrderException {

    // Check if the username has been specified
    if(userName == null || "".equals(userName.trim())) {
      throw new OrderException(
                               "Username not specified", "error.order.usernull");
    }

    /* If number of latest orders to be queried is not specified default the count
       to one*/
    if(count == 0) {
      count = 1;
    }

    List ordersList = null;

    try {

      // Look up product order entity
      ProductOrderLocalHome home    = getOrderLocalHome();
      Collection orderCollection    =
        home.findLatestOrdersForUser(userName, count);
      ProductOrderLocal orderLocal  = null;
      Iterator ordersIter           = orderCollection.iterator();
      ordersList                    = new ArrayList(orderCollection.size());

      List orderItems               = null;
      OrderItemLocal orderItemLocal = null;

      // Create a list of order details and a list of order items for the user
      while(ordersIter.hasNext()) {
        orderLocal   = (ProductOrderLocal) ordersIter.next();

        orderItems = new ArrayList();

        // Loop through the order items and add order items for this order to a list        
        for(
            Iterator orderItemsIter = orderLocal.getOrderItems().iterator();
              orderItemsIter.hasNext();) {
          orderItemLocal = (OrderItemLocal) orderItemsIter.next();
          orderItems.add(new OrderDetail(
                                         orderLocal.getId(),
                                         orderItemLocal.getItemID(),
                                         orderItemLocal.getShopID(),
                                         orderItemLocal.getQuantity().intValue(),
                                         orderItemLocal.getUnitPrice()
                                                       .doubleValue(),
                                         orderItemLocal.getStatus()));
        }

        // Add order information to a list
        ordersList.add(new Order(
                                 orderLocal.getId(), orderLocal.getOrderDate(),
                                 orderLocal.getUserName(),
                                 orderLocal.getShipToAddress(),
                                 orderLocal.getCity(), orderLocal.getState(),
                                 orderLocal.getCountry(), orderLocal.getZip(),
                                 orderLocal.getPhone(), orderItems));

      }
    } catch(Exception ex) {
      throw new OrderException(
                               "Unable to retrieve orders for user because " +
                               ex.getMessage(), "error.order.retrieval");
    }

    return (Order[]) ordersList.toArray(new Order[ ordersList.size() ]);
  }
  /**
   * This business method retrieves orders for a given user
   *
   * @param <b>userName</b> - user for whom the orders have to be looked up
   *
   * @return <b>Order[]</b> - array of order value objects having order
   *         information
   *
   * @throws <b>OrderException</b> if the order information could not be
   *         retrieved
   * @throws <b>RemoteException</b> container error
   */
  public Order[] getOrdersForUser(String userName)
                           throws OrderException {

    // Check if the username has been specified
    if(userName == null || "".equals(userName.trim())) {
      throw new OrderException(
                               "Username not specified", "error.order.usernull");
    }

    List ordersList = null;

    try {

      // Look up product order entity
      ProductOrderLocalHome home = getOrderLocalHome();

      // Query the orders for the specified user
      Collection orderCollection    = home.findOrdersForUser(userName);
      Iterator ordersIter           = orderCollection.iterator();
      ordersList                    = new ArrayList(orderCollection.size());

      ProductOrderLocal orderLocal  = null;
      OrderItemLocal orderItemLocal = null;

      List orderItems = null;

      // Create a list of order details and a list of order items for the user
      while(ordersIter.hasNext()) {
        orderLocal   = (ProductOrderLocal) ordersIter.next();
        orderItems   = new ArrayList();

        // Loop through the order items and add order items for this order to a list
        for(
            Iterator orderItemsIter = orderLocal.getOrderItems().iterator();
              orderItemsIter.hasNext();) {
          orderItemLocal = (OrderItemLocal) orderItemsIter.next();

          // If the order is rejected, do not display it to user
          if(!Constants.REJECTED.equals(orderItemLocal.getStatus())) {
            orderItems.add(new OrderDetail(
                                           orderLocal.getId(),
                                           orderItemLocal.getItemID(),
                                           orderItemLocal.getShopID(),
                                           orderItemLocal.getQuantity()
                                                         .intValue(),
                                           orderItemLocal.getUnitPrice()
                                                         .doubleValue(),
                                           orderItemLocal.getStatus()));
          }
        }

        // Add order information to a list        
        ordersList.add(new Order(
                                 orderLocal.getId(), orderLocal.getOrderDate(),
                                 orderLocal.getUserName(),
                                 orderLocal.getShipToAddress(),
                                 orderLocal.getCity(), orderLocal.getState(),
                                 orderLocal.getCountry(), orderLocal.getZip(),
                                 orderLocal.getPhone(), orderItems));

      }
    } catch(Exception ex) {
      throw new OrderException(
                               "Unable to retrieve orders for user because " +
                               ex.getMessage(), "error.order.retrieval");
    }

    return (Order[]) ordersList.toArray(new Order[ ordersList.size() ]);
  }
  /**
   * This business method retrieves all orders to be shipped by a shop
   *
   * @param <b>shopID</b> - ID of the shop for which pending orders  have to be
   *        queried
   *
   * @return <b>Order[]</b> - array of order value objects having order
   *         information
   *
   * @throws <b>OrderException</b> if the orders could not be fetched
   * @throws <b>RemoteException</b> container error
   */
  public Order[] getPendingOrdersForShop(String shopID)
                                  throws OrderException {

    // Check if the shop has been specified
    if(shopID == null || "".equals(shopID.trim())) {
      throw new OrderException("Shop not specified", "error.order.shopnull");
    }

    List ordersList = null;

    try {

      /* Look up product order entity and query for pending orders on the
         specified shop */
      ProductOrderLocalHome home = getOrderLocalHome();
      Collection orderCollection = home.findPendingOrdersForShop(shopID);

      ProductOrderLocal orderLocal  = null;
      OrderItemLocal orderItemLocal = null;

      Iterator ordersIter = orderCollection.iterator();
      ordersList = new ArrayList(orderCollection.size());

      List orderItems = null;

      // Create a list of order details and a list of order items for the shop
      while(ordersIter.hasNext()) {
        orderLocal   = (ProductOrderLocal) ordersIter.next();
        orderItems   = new ArrayList();

        // Loop through the order items and add order items for this order to a list        
        for(
            Iterator orderItemsIter = orderLocal.getOrderItems().iterator();
              orderItemsIter.hasNext();) {
          orderItemLocal = (OrderItemLocal) orderItemsIter.next();

          // Add the order item if it belongs to the shop 
          if(orderItemLocal.getShopID().equals(shopID)) {
            orderItems.add(new OrderDetail(
                                           orderLocal.getId(),
                                           orderItemLocal.getItemID(),
                                           orderItemLocal.getShopID(),
                                           orderItemLocal.getQuantity()
                                                         .intValue(),
                                           orderItemLocal.getUnitPrice()
                                                         .doubleValue(),
                                           orderItemLocal.getStatus()));
          }
        }

        // Add order information to a list  
        ordersList.add(new Order(
                                 orderLocal.getId(), orderLocal.getOrderDate(),
                                 orderLocal.getUserName(),
                                 orderLocal.getShipToAddress(),
                                 orderLocal.getCity(), orderLocal.getState(),
                                 orderLocal.getCountry(), orderLocal.getZip(),
                                 orderLocal.getPhone(), orderItems));

      }
    } catch(Exception ex) {
      throw new OrderException(
                               "Unable to retrieve pending orders for shop because " +
                               ex.getMessage(), "error.order.retrieval");
    }

    return (Order[]) ordersList.toArray(new Order[ ordersList.size() ]);
  }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -