Rev 7510 | Rev 8020 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package com.amazonservices.mws.orders.samples;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;import java.util.Random;import org.apache.thrift.TException;import org.apache.thrift.transport.TTransportException;import in.shop2020.logistics.PickUpType;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.OrderType;import in.shop2020.model.v1.order.SourceDetail;import in.shop2020.model.v1.order.Transaction;import in.shop2020.model.v1.order.TransactionStatus;import in.shop2020.model.v1.user.User;import in.shop2020.model.v1.user.UserContextException;import in.shop2020.payments.PaymentStatus;import in.shop2020.serving.model.ShipmentUpdate;import in.shop2020.thrift.clients.CatalogClient;import in.shop2020.thrift.clients.HelperClient;import in.shop2020.thrift.clients.PaymentClient;import in.shop2020.thrift.clients.TransactionClient;import in.shop2020.thrift.clients.UserClient;public class AmazonOrder {/****/private static final long serialVersionUID = 1L;private String tempUserEmail;private List<Order> orders = new ArrayList<Order>();public long persistTransaction(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();long tempUserId = -1;try {TransactionClient tcl = new TransactionClient();//Source Id for store website is 2 and our normal website is 1SourceDetail detail = tcl.getClient().getSourceDetail(3);tempUserEmail=detail.getEmail();try {UserClient ucl = new UserClient();User user = ucl.getClient().getUserByEmail(tempUserEmail);tempUserId = user.getUserId();} catch (Exception e) {//////////////log.error("Unable to get user for id " + tempUserId, e);}} catch(Exception e) {//////////////log.error("Unable to get default source", e);}txnObj.setShoppingCartid(0);txnObj.setCustomer_id(tempUserId);txnObj.setCreatedOn(Calendar.getInstance().getTimeInMillis());txnObj.setTransactionStatus(TransactionStatus.INIT);txnObj.setStatusDescription("New Amazon Order");txnObj.setCoupon_code("");txnObj.setEmiSchemeId(0);//if(createOrder(tempUserId) == null) {//////////////log.error("Unable to create transaction");//setErrorMsg("Unable to create order. Please try again.");// return "error-result";//}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(tempUserEmail,tempUserId,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 tempUserEmail,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(tempUserEmail);order.setCustomer_name(aitem.getBuyerName());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.setTotal_amount(Double.parseDouble(aitem1.getItemPrice().getAmount())/aitem1.getQuantityOrdered());order.setStatus(OrderStatus.PAYMENT_PENDING);order.setStatusDescription("Initiated");order.setCreated_timestamp(Calendar.getInstance().getTimeInMillis());order.setTotal_weight(lineObj.getTotal_weight());order.setSource(3);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.valueOf(amazonOrderItem.getItemPrice().getAmount()));lineitem.setTotal_price(Double.valueOf(amazonOrderItem.getItemPrice().getAmount()));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;}}