Rev 9759 | Rev 9931 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020;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.SnapdealOrder;import in.shop2020.thrift.clients.TransactionClient;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.params.HttpParams;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class SnapdealOrderStatusReconciliation{private static Logger logger;public static void main(String[] args) throws UnsupportedEncodingException{logger = LoggerFactory.getLogger(SnapdealOrderStatusReconciliation.class);List<OrderStatus> statuses = new ArrayList<OrderStatus>();statuses.add(OrderStatus.SHIPPED_FROM_WH);statuses.add(OrderStatus.SHIPPED_TO_LOGST);List<List<String>> deliveredOrderDataList = new ArrayList<List<String>>();long minCreationDate = 0l;TransactionClient tsc = null;try {tsc = new TransactionClient();minCreationDate = tsc.getClient().getMinCreatedTimeStampUndeliveredOrdersForSource(OrderSource.SNAPDEAL.getValue());} catch (Exception e) {logger.error("Unable to establish connection to the transaction service while getting Minimum Order Created Timstamp for Undelivered Orders ", e);}//Dec 14, 2013 12:00:00 AM 1383291412000lSimpleDateFormat snapdealDateFormat = new SimpleDateFormat("yyyy-MM-dd");SimpleDateFormat gotSnapdealDateFormat = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss aaa");SimpleDateFormat ourDBDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String startDate= "";if(minCreationDate > 0l){startDate = snapdealDateFormat.format(new Date(minCreationDate));}else{startDate = snapdealDateFormat.format(new Date(System.currentTimeMillis()));}logger.info("Snapdeal Order Recon Start Date .. "+startDate);startDate = startDate.replace("-", "%2F");String endDate = snapdealDateFormat.format(new Date(System.currentTimeMillis()));logger.info("Snapdeal Order Recon End Date .. "+endDate);endDate = endDate.replace("-", "%2F");HttpClient client = new DefaultHttpClient();HttpPost post = new HttpPost("http://shipping.snapdeal.com/login_security_check?spring-security-redirect=http://shipping.snapdeal.com/vendor/product-shipment/shippingDashboard&");HttpGet get;BufferedReader rd= null;List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();nameValuePairs.add(new BasicNameValuePair("j_username","khushal.bhatia@saholic.com"));nameValuePairs.add(new BasicNameValuePair("j_password","s@h0l1c"));post.setEntity(new UrlEncodedFormEntity(nameValuePairs,"utf-8"));HttpResponse response = null;try {response = client.execute(post);} catch (Exception e) {logger.error("Unable to get Http Response for snapdeal seller portal login", e);}try {rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));} catch (Exception e1) {logger.error("Unable to read Http Response for snapdeal seller portal login", e1);}String line = "";try {while ((line = rd.readLine()) != null) {System.out.println(line);}} catch (Exception e) {logger.error("Unable to extract Http Response for snapdeal seller portal login", e);}//http://shipping.snapdeal.com/vendor/ONESHIP/product-shipment/shippedData/fetch/?shippedStartDate=2014%2F01%2F01&shippedEndDate=2014%2F01%2F08&specialPanelAccess=&statusCode=COURIER_DELIVERED&statusColumn=deliveredOn&dispatchCategoryId=0&sCode=COURIER_DELIVEREDlogger.info("Getting Delivery Information for DropShip Snapdeal Orders");String dropshipUrl = "http://shipping.snapdeal.com/vendor/DROPSHIP/product-shipment/shippedData/fetch/?shippedStartDate="+startDate+"&shippedEndDate="+endDate+"&specialPanelAccess=&statusCode=COURIER_DELIVERED&statusColumn=deliveredOn&dispatchCategoryId=0&sCode=COURIER_DELIVERED";logger.info("Drop Ship Url "+dropshipUrl);get = new HttpGet(dropshipUrl);//HttpClient client1 = new DefaultHttpClient();try {response = client.execute(get);} catch (Exception e) {logger.error("Unable to get Http Response for snapdeal dropship delivered orders", e);}try {rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));} catch (Exception e) {logger.error("Unable to read Http Response for snapdeal dropship delivered orders", e);}JSONArray jsonDataShip = null;String line1 = "";try {while ((line1 = rd.readLine()) != null) {if(line1.contains("jsonString")){String jsonString = line1.substring(line1.indexOf("["), line1.indexOf("'/>"));logger.info("Response get from SnapDeal DropShip.. ");jsonDataShip = new JSONArray(jsonString);break;}}} catch (Exception e) {logger.error("Unable to extract Http Response for snapdeal dropship delivered orders", e);}if(jsonDataShip!=null && jsonDataShip.length()>0){for(int i=0; i< jsonDataShip.length(); i++){JSONObject jsonObj = null;try {jsonObj = jsonDataShip.getJSONObject(i);if(jsonObj!=null){//System.out.println(jsonObj);String subOrderCode =(String) jsonObj.get("suborderCode");String referenceNumber =(String) jsonObj.get("referenceNumber");String deliveryDate =(String) jsonObj.get("deliveredOn");//System.out.println("Snapdeal Dropship Order Details...suborderCode... "+subOrderCode+" ...referenceNumber... "+ referenceNumber+ " ...deliveryDate... "+ deliveryDate);logger.info("Snapdeal Dropship Order Details...suborderCode... "+subOrderCode+" ...referenceNumber... "+ referenceNumber+ " ...deliveryDate... "+ deliveryDate);deliveryDate = ourDBDateFormat.format(gotSnapdealDateFormat.parse(deliveryDate).getTime());List<String> deliveredOrdelList = new ArrayList<String>();deliveredOrdelList.add(referenceNumber);deliveredOrdelList.add(subOrderCode);deliveredOrdelList.add(deliveryDate);deliveredOrderDataList.add(deliveredOrdelList);}} catch (Exception e) {logger.error("Unable to add delivered order details for updation regarding snapdeal dropship delivered orders", e);}}}logger.info("Getting Delivery Information for OneShip Snapdeal Orders");String oneShipUrl = "http://shipping.snapdeal.com/vendor/ONESHIP/product-shipment/shippedData/fetch/?shippedStartDate="+startDate+"&shippedEndDate="+endDate+"&specialPanelAccess=&statusCode=COURIER_DELIVERED&statusColumn=deliveredOn&dispatchCategoryId=0&sCode=COURIER_DELIVERED";logger.info("One Ship Url "+oneShipUrl);get = new HttpGet(oneShipUrl);//HttpClient client2 = new DefaultHttpClient();try {response = client.execute(get);} catch (Exception e) {logger.error("Unable to get Http Response for snapdeal oneship delivered orders", e);}try {rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));} catch (Exception e) {logger.error("Unable to read Http Response for snapdeal oneship delivered orders", e);}try {while ((line1 = rd.readLine()) != null) {if(line1.contains("jsonString")){String jsonString = line1.substring(line1.indexOf("["), line1.indexOf("'/>"));logger.info("Response get from SnapDeal OneShip.. ");jsonDataShip = new JSONArray(jsonString);break;}}} catch (Exception e) {logger.error("Unable to extract Http Response for snapdeal oneship delivered orders", e);}if(jsonDataShip!=null && jsonDataShip.length()>0){for(int i=0; i< jsonDataShip.length(); i++){JSONObject jsonObj = null;try {jsonObj = jsonDataShip.getJSONObject(i);if(jsonObj!=null){//System.out.println(jsonObj);String subOrderCode =(String) jsonObj.get("suborderCode");String referenceNumber =(String) jsonObj.get("referenceNumber");String deliveryDate =(String) jsonObj.get("deliveredOn");//System.out.println("Snapdeal Oneship Order Details...suborderCode... "+subOrderCode+" ...referenceNumber... "+ referenceNumber+ " ...deliveryDate... "+ deliveryDate);logger.info("Snapdeal Oneship Order Details...suborderCode... "+subOrderCode+" ...referenceNumber... "+ referenceNumber+ " ...deliveryDate... "+ deliveryDate);deliveryDate = ourDBDateFormat.format(gotSnapdealDateFormat.parse(deliveryDate).getTime());List<String> deliveredOrdelList = new ArrayList<String>();deliveredOrdelList.add(referenceNumber);deliveredOrdelList.add(subOrderCode);deliveredOrdelList.add(deliveryDate);deliveredOrderDataList.add(deliveredOrdelList);}} catch (Exception e) {logger.error("Unable to add delivered order details for updation regarding snapdeal oneship delivered orders", e);}}}if(deliveredOrderDataList!=null && deliveredOrderDataList.size()>0){logger.info("Delivered Orders Size .. "+deliveredOrderDataList.size());try{new TransactionClient().getClient().updateSnapdealOrdersStatus(deliveredOrderDataList);} catch(Exception e){logger.error("Unable to update delivery information for snapdeal orders", e);}}}}