Subversion Repositories SmartDukaan

Rev

Rev 9698 | Rev 12488 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.serving.services;

import in.shop2020.model.v1.order.OrderSource;
import in.shop2020.serving.model.Order;
import in.shop2020.serving.model.OrderItems;
import in.shop2020.thrift.clients.TransactionClient;

import java.io.BufferedReader;
import java.io.InputStreamReader;
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.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 com.google.gson.Gson;

public class FlipkartOrderStatusReconciliation{
        public static void main(String[] args) {
                HttpClient client = new DefaultHttpClient();
                HttpPost post = new HttpPost("https://seller.flipkart.com/login");
                BufferedReader rd= null;
                
                List<List<String>> deliveredOrderDataList = new ArrayList<List<String>>();
                SimpleDateFormat gotFlipkartDateFormat = new SimpleDateFormat("MMM dd, yyyy");
                //SimpleDateFormat createDateFormatter = new SimpleDateFormat("MMM dd, yyyy hh:mm aaa");
                SimpleDateFormat ourDBDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                long minCreationDate = 0l;
                try {
                        minCreationDate = new TransactionClient().getClient().getMinCreatedTimeStampUndeliveredOrdersForSource(OrderSource.FLIPKART.getValue());
                        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                        nameValuePairs.add(new BasicNameValuePair("authName",
                        "flipkart"));
                        nameValuePairs.add(new BasicNameValuePair("username",
                        "flipkart-support@saholic.com"));
                        nameValuePairs.add(new BasicNameValuePair("password",
                        "076c27ee24d7596b06608a8ed2559f87"));
                        post.setEntity(new UrlEncodedFormEntity(nameValuePairs,"utf-8"));
                        HttpResponse response = client.execute(post);
                        rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
                        String line = "";
                        Gson gson;
                        List<Order> orders = new ArrayList<Order>();
                        OrderItems new_orders;
                        HttpGet get_new;
                        
                        long time;
                        int i=1;
                        while ((line = rd.readLine()) != null) {
                                System.out.println(line);
                        }
                        time = System.currentTimeMillis();
                        
                        while(true){
                                get_new = new HttpGet("https://seller.flipkart.com/dashboard/som/shipped_order_items?status=delivered&page="+i+"&page_size=100&_="+time);
                                response = client.execute(get_new);
                                rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
                                line = "";
                                gson = new Gson();
                                //System.out.println("RD....."+rd.readLine());
                                new_orders = (OrderItems) gson.fromJson(rd, OrderItems.class);
                                if(new_orders.getOrder_items().size()>0){
                                        orders.addAll(new_orders.getOrder_items());
                                }
                                else{
                                        break;
                                }
                                i++;
                        }
                        
                        for(Order order:orders){
                                if(minCreationDate > 0l && gotFlipkartDateFormat.parse(gotFlipkartDateFormat.format(minCreationDate)).getTime() <= gotFlipkartDateFormat.parse(order.getCreatedDate()).getTime()){
                                        List<String> delivered_dataList = new ArrayList<String>();
                                        delivered_dataList.add(order.getExternalId());
                                        delivered_dataList.add(order.getOrderItemId());
                                        delivered_dataList.add(ourDBDateFormat.format(gotFlipkartDateFormat.parse(order.getModifiedDate()).getTime()));
                                        System.out.println("Flipkart Order Id... "+order.getExternalId() + " ... Flipkart Sub Order Code... "+ order.getOrderItemId() +" ... Delivery Date ... "+ ourDBDateFormat.format(gotFlipkartDateFormat.parse(order.getModifiedDate()).getTime()) + "....Created Date..... "+ order.getCreatedDate());
                                        deliveredOrderDataList.add(delivered_dataList);
                                }
                        }
                        //System.out.println("deliveredOrderDataList size... "+deliveredOrderDataList.size());
                        if(deliveredOrderDataList!=null && deliveredOrderDataList.size()>0){
                                new TransactionClient().getClient().updateFlipkartOrdersStatus(deliveredOrderDataList);
                        }
                        
                } catch(Exception e){
                        e.printStackTrace();
                }
        }
}