Rev 8924 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package com.amazonservices.mws.orders.samples;import java.util.ArrayList;import java.util.Calendar;import java.util.List;/*import com.amazonservices.mws.orders.model.PaymentMethodEnum;*/import in.shop2020.model.v1.catalog.Item;import in.shop2020.model.v1.order.LineItem;import in.shop2020.model.v1.order.Order;import in.shop2020.model.v1.order.OrderSource;import in.shop2020.model.v1.order.OrderStatus;import in.shop2020.model.v1.order.Transaction;import in.shop2020.model.v1.order.TransactionStatus;import in.shop2020.model.v1.user.User;import in.shop2020.thrift.clients.CatalogClient;import in.shop2020.thrift.clients.TransactionClient;import in.shop2020.thrift.clients.UserClient;public class AmazonOrder {/****/private static final long serialVersionUID = 1L;private List<Order> orders = new ArrayList<Order>();public long persistTransaction(long userId, long cartId, String userEmail, com.amazonservices.mws.orders.model.Order amazonitem, List<com.amazonservices.mws.orders.model.OrderItem> amazonItems) {/*** 0.Create user* 1.Make a transaction object comprised of Order which in turn contains lineitem.* 2.Call create_transaction* 3.retrieve that order*/Transaction txnObj = new Transaction();txnObj.setShoppingCartid(cartId);txnObj.setCustomer_id(userId);txnObj.setCreatedOn(Calendar.getInstance().getTimeInMillis());txnObj.setTransactionStatus(TransactionStatus.INIT);txnObj.setStatusDescription("New Amazon Order");txnObj.setCoupon_code("");txnObj.setEmiSchemeId(0);for(com.amazonservices.mws.orders.model.OrderItem amazonItemlist: amazonItems){int netQuantity = amazonItemlist.getQuantityOrdered() - amazonItemlist.getQuantityShipped();for (int i=0;i<netQuantity;i++){orders.add(createOrder(userEmail, userId, amazonItemlist, amazonitem));}}txnObj.setOrders(orders);TransactionClient tcl;long txnId = 0;try {tcl = new TransactionClient();txnId = tcl.getClient().createTransaction(txnObj);System.out.println("Transaction ID is : " + txnId);return txnId;} catch (Exception e) {//////////////log.error("Unable to create transaction", e);//setErrorMsg("Unable to create order. Please try again.");System.out.println("Could not Create Transaction ......");return -1;}}public Order createOrder(String userEmail,long userId,com.amazonservices.mws.orders.model.OrderItem aitem1,com.amazonservices.mws.orders.model.Order aitem) {LineItem lineObj = createLineItem(aitem1);if (lineObj == null) {return null;}Order order = new Order();order.setCustomer_id(userId);order.setCustomer_email(userEmail);order.setCustomer_name(aitem.getShippingAddress().getName());order.setCustomer_address1(aitem.getShippingAddress().getAddressLine1());if(aitem.getShippingAddress().getAddressLine3()!=null){order.setCustomer_address2(aitem.getShippingAddress().getAddressLine2() +" " +aitem.getShippingAddress().getAddressLine3());}else{order.setCustomer_address2(aitem.getShippingAddress().getAddressLine2());}order.setCustomer_city(aitem.getShippingAddress().getCity());order.setCustomer_state(aitem.getShippingAddress().getStateOrRegion());order.setCustomer_pincode(aitem.getShippingAddress().getPostalCode());String phoneNo = aitem.getShippingAddress().getPhone();//order.setCustomer_mobilenumber(phoneNo.substring(phoneNo.length() - 10));order.setCustomer_mobilenumber(phoneNo);order.setTotal_amount(Double.parseDouble(aitem1.getItemPrice().getAmount())/aitem1.getQuantityOrdered());order.setStatus(OrderStatus.PAYMENT_PENDING);order.setStatusDescription("Initiated");order.setCreated_timestamp(Calendar.getInstance().getTimeInMillis());long shipTimeStamp = 0l;long deliveryTimeStamp = 0l;if(aitem.isSetEarliestShipDate()){shipTimeStamp = aitem.getEarliestShipDate().toGregorianCalendar().getTimeInMillis() + (6*60*60*1000);} else {shipTimeStamp = System.currentTimeMillis() + (24*60*60*1000);}if(aitem.isSetEarliestDeliveryDate()){deliveryTimeStamp = aitem.getEarliestDeliveryDate().toGregorianCalendar().getTimeInMillis() + (6*60*60*1000);} else {deliveryTimeStamp = shipTimeStamp + (24*60*60*1000*4);}order.setExpected_shipping_time(shipTimeStamp);order.setPromised_shipping_time(shipTimeStamp);order.setExpected_delivery_time(deliveryTimeStamp);order.setPromised_delivery_time(deliveryTimeStamp);order.setCourier_delivery_time(deliveryTimeStamp);order.setTotal_weight(lineObj.getTotal_weight());/*if(PaymentMethodEnum.COD==aitem.getPaymentMethod()){order.setCod(true);} else {order.setCod(false);}*/order.setSource(OrderSource.AMAZON.getValue());order.setAdvanceAmount(0.0);List<LineItem> lines = new ArrayList<LineItem>();lines.add(lineObj);order.setLineitems(lines);return order;}public in.shop2020.model.v1.order.LineItem createLineItem(com.amazonservices.mws.orders.model.OrderItem amazonOrderItem) {LineItem lineitem = new LineItem();Item item = null;try {CatalogClient ccl = new CatalogClient();item = ccl.getClient().getItem(Long.valueOf(amazonOrderItem.getSellerSKU()));} catch (Exception e) {//////////////log.error("Unable to get the item from catalog service, ItemId : " + product_id, e);//setErrorMsg("Unable to create order. Please try again.");return null;}lineitem.setProductGroup(item.getProductGroup());lineitem.setBrand(item.getBrand());lineitem.setModel_number(item.getModelNumber());lineitem.setModel_name(item.getModelName());if(item.getColor() == null || item.getColor().isEmpty()) {lineitem.setColor("");} else {lineitem.setColor(item.getColor());}lineitem.setExtra_info(item.getFeatureDescription());lineitem.setItem_id(item.getId());lineitem.setQuantity(1.0);lineitem.setUnit_price(Double.parseDouble(amazonOrderItem.getItemPrice().getAmount())/amazonOrderItem.getQuantityOrdered());lineitem.setTotal_price(Double.parseDouble(amazonOrderItem.getItemPrice().getAmount())/amazonOrderItem.getQuantityOrdered());lineitem.setUnit_weight(item.getWeight());lineitem.setTotal_weight(item.getWeight());lineitem.setDealText("");if(item.getWarrantyPeriod() > 0) {//Computing Manufacturer Warranty expiry dateCalendar cal = Calendar.getInstance();cal.add(Calendar.MONTH, item.getWarrantyPeriod());cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH), 23, 59, 59);lineitem.setWarrantry_expiry_timestamp(cal.getTimeInMillis());}return lineitem;}}