Subversion Repositories SmartDukaan

Rev

Rev 9651 | Rev 9719 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
9651 manish.sha 1
package in.shop2020;
2
 
3
import in.shop2020.model.v1.order.Order;
4
import in.shop2020.model.v1.order.OrderSource;
5
import in.shop2020.model.v1.order.OrderStatus;
6
import in.shop2020.model.v1.order.SnapdealOrder;
7
import in.shop2020.thrift.clients.TransactionClient;
8
 
9
import java.io.BufferedReader;
10
import java.io.IOException;
11
import java.io.InputStreamReader;
12
import java.io.UnsupportedEncodingException;
13
import java.text.SimpleDateFormat;
14
import java.util.ArrayList;
15
import java.util.Date;
16
import java.util.List;
17
 
18
import org.apache.http.HttpResponse;
19
import org.apache.http.NameValuePair;
20
import org.apache.http.client.ClientProtocolException;
21
import org.apache.http.client.HttpClient;
22
import org.apache.http.client.entity.UrlEncodedFormEntity;
23
import org.apache.http.client.methods.HttpGet;
24
import org.apache.http.client.methods.HttpPost;
25
import org.apache.http.impl.client.DefaultHttpClient;
26
import org.apache.http.message.BasicNameValuePair;
27
import org.apache.http.params.HttpParams;
28
import org.json.JSONArray;
29
import org.json.JSONException;
30
import org.json.JSONObject;
31
import org.slf4j.Logger;
32
import org.slf4j.LoggerFactory;
33
 
34
public class SnapdealOrderStatusReconciliation{
35
	private static Logger logger;
36
 
37
	public static void main(String[] args) throws UnsupportedEncodingException{
38
		logger = LoggerFactory.getLogger(SnapdealOrderStatusReconciliation.class);
39
		List<OrderStatus> statuses = new ArrayList<OrderStatus>();
40
		statuses.add(OrderStatus.SHIPPED_FROM_WH);
41
		statuses.add(OrderStatus.SHIPPED_TO_LOGST);
42
 
43
		List<List<String>> deliveredOrderDataList = new ArrayList<List<String>>();
44
		long minCreationDate = 0l;
45
		TransactionClient tsc = null;
46
		try {
47
			tsc = new TransactionClient();
48
			minCreationDate = tsc.getClient().getMinCreatedTimeStampUndeliveredOrdersForSource(OrderSource.SNAPDEAL.getValue());
49
		} catch (Exception e) {
50
			logger.error("Unable to establish connection to the transaction service while getting Minimum Order Created Timstamp for Undelivered Orders ", e);
51
		}//Dec 14, 2013 12:00:00 AM
52
 
53
		SimpleDateFormat snapdealDateFormat = new SimpleDateFormat("yyyy-MM-dd");
54
		SimpleDateFormat gotSnapdealDateFormat = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss aaa");
55
		SimpleDateFormat ourDBDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
56
		String startDate= "";
57
		if(minCreationDate > 0l){
58
			startDate = snapdealDateFormat.format(new Date(minCreationDate));
59
		}
60
		else{
61
			startDate = snapdealDateFormat.format(new Date(System.currentTimeMillis()));
62
		}
63
		logger.info("Snapdeal Order Recon Start Date .. "+startDate);
64
		startDate = startDate.replace("-", "%2F");
65
 
66
		String endDate = snapdealDateFormat.format(new Date(System.currentTimeMillis()));
67
		logger.info("Snapdeal Order Recon End Date .. "+endDate);
68
		endDate = endDate.replace("-", "%2F");
69
 
70
 
71
		HttpClient client = new DefaultHttpClient();
72
		HttpPost post = new HttpPost("http://shipping.snapdeal.com/login_security_check?spring-security-redirect=http://shipping.snapdeal.com/vendor/product-shipment/shippingDashboard&");
73
		HttpGet get;
74
		BufferedReader rd= null;
9700 manish.sha 75
 
9651 manish.sha 76
		List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
77
		nameValuePairs.add(new BasicNameValuePair("j_username",
78
		"khushal.bhatia@saholic.com"));
79
		nameValuePairs.add(new BasicNameValuePair("j_password",
80
		"s@h0l1c"));
81
		post.setEntity(new UrlEncodedFormEntity(nameValuePairs,"utf-8"));
82
		HttpResponse response = null;
83
		try {
84
			response = client.execute(post);
9700 manish.sha 85
		} catch (Exception e) {
86
			logger.error("Unable to get Http Response for snapdeal seller portal login", e);
9651 manish.sha 87
		}
88
		try {
89
			rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
9700 manish.sha 90
		} catch (Exception e1) {
91
			logger.error("Unable to read Http Response for snapdeal seller portal login", e1);
92
		} 
93
 
9651 manish.sha 94
		String line = "";
95
		try {
96
			while ((line = rd.readLine()) != null) {
97
				System.out.println(line);
98
			}
9700 manish.sha 99
		} catch (Exception e) {
100
			logger.error("Unable to extract Http Response for snapdeal seller portal login", e);
9651 manish.sha 101
		}
102
 
103
		//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_DELIVERED
104
 
105
		logger.info("Getting Delivery Information for DropShip Snapdeal Orders");
106
		get = new HttpGet("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");
107
 
108
		try {
109
			response = client.execute(get);
9700 manish.sha 110
		} catch (Exception e) {
111
			logger.error("Unable to get Http Response for snapdeal dropship delivered orders", e);
112
		} 
9651 manish.sha 113
 
114
		try {
115
			rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
9700 manish.sha 116
		} catch (Exception e) {
117
			logger.error("Unable to read Http Response for snapdeal dropship delivered orders", e);
118
		} 
9651 manish.sha 119
 
120
		JSONArray jsonDataShip = null;
121
		String line1 = "";
122
		try {
123
			while ((line1 = rd.readLine()) != null) {
124
				if(line1.contains("jsonString")){
125
					String jsonString = line1.substring(line1.indexOf("["), line1.indexOf("'/>"));
126
					logger.info("Response get from SnapDeal DropShip.. "+jsonString);
127
					jsonDataShip = new JSONArray(jsonString);
128
					break;
129
				}
130
			}
9700 manish.sha 131
		} catch (Exception e) {
132
			logger.error("Unable to extract Http Response for snapdeal dropship delivered orders", e);
133
		} 
9651 manish.sha 134
 
135
		if(jsonDataShip!=null && jsonDataShip.length()>0){
136
			for(int i=0; i< jsonDataShip.length(); i++){
137
				JSONObject jsonObj = null;
138
				try {
139
					jsonObj = jsonDataShip.getJSONObject(i);
140
 
141
					if(jsonObj!=null){
142
						System.out.println(jsonObj);
143
						String subOrderCode =(String) jsonObj.get("suborderCode");
144
						String referenceNumber =(String) jsonObj.get("referenceNumber");
145
						String deliveryDate =(String) jsonObj.get("deliveredOn");
9700 manish.sha 146
						System.out.println("Snapdeal Dropship Order Details...suborderCode... "+subOrderCode+" ...referenceNumber... "+ referenceNumber+ " ...deliveryDate... "+ deliveryDate);
147
						logger.info("Snapdeal Dropship Order Details...suborderCode... "+subOrderCode+" ...referenceNumber... "+ referenceNumber+ " ...deliveryDate... "+ deliveryDate);
9651 manish.sha 148
						deliveryDate = ourDBDateFormat.format(gotSnapdealDateFormat.parse(deliveryDate).getTime());
149
						List<String> deliveredOrdelList = new ArrayList<String>();
150
						deliveredOrdelList.add(referenceNumber);
151
						deliveredOrdelList.add(subOrderCode);
152
						deliveredOrdelList.add(deliveryDate);
153
						deliveredOrderDataList.add(deliveredOrdelList);
154
					}
155
				} catch (Exception e) {
9700 manish.sha 156
					logger.error("Unable to add delivered order details for updation regarding snapdeal dropship delivered orders", e);
9651 manish.sha 157
				}
158
			}
159
		}
160
 
161
		logger.info("Getting Delivery Information for OneShip Snapdeal Orders");
162
		get = new HttpGet("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");
163
 
164
		try {
165
			response = client.execute(get);
9700 manish.sha 166
		} catch (Exception e) {
167
			logger.error("Unable to get Http Response for snapdeal oneship delivered orders", e);
168
		} 
9651 manish.sha 169
 
170
		try {
171
			rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
9700 manish.sha 172
		} catch (Exception e) {
173
			logger.error("Unable to read Http Response for snapdeal oneship delivered orders", e);
174
		} 
9651 manish.sha 175
 
176
		try {
177
			while ((line1 = rd.readLine()) != null) {
178
				if(line1.contains("jsonString")){
179
					String jsonString = line1.substring(line1.indexOf("["), line1.indexOf("'/>"));
180
					logger.info("Response get from SnapDeal OneShip.. "+jsonString);
181
					jsonDataShip = new JSONArray(jsonString);
182
					break;
183
				}
184
			}
9700 manish.sha 185
		} catch (Exception e) {
186
			logger.error("Unable to extract Http Response for snapdeal oneship delivered orders", e);
187
		} 
188
 
9651 manish.sha 189
		if(jsonDataShip!=null && jsonDataShip.length()>0){
190
			for(int i=0; i< jsonDataShip.length(); i++){
191
				JSONObject jsonObj = null;
192
				try {
193
					jsonObj = jsonDataShip.getJSONObject(i);
194
 
195
					if(jsonObj!=null){
196
						System.out.println(jsonObj);
197
						String subOrderCode =(String) jsonObj.get("suborderCode");
198
						String referenceNumber =(String) jsonObj.get("referenceNumber");
199
						String deliveryDate =(String) jsonObj.get("deliveredOn");
9700 manish.sha 200
						System.out.println("Snapdeal Oneship Order Details...suborderCode... "+subOrderCode+" ...referenceNumber... "+ referenceNumber+ " ...deliveryDate... "+ deliveryDate);
201
						logger.info("Snapdeal Oneship Order Details...suborderCode... "+subOrderCode+" ...referenceNumber... "+ referenceNumber+ " ...deliveryDate... "+ deliveryDate);
9651 manish.sha 202
						deliveryDate = ourDBDateFormat.format(gotSnapdealDateFormat.parse(deliveryDate).getTime());
203
						List<String> deliveredOrdelList = new ArrayList<String>();
204
						deliveredOrdelList.add(referenceNumber);
205
						deliveredOrdelList.add(subOrderCode);
206
						deliveredOrdelList.add(deliveryDate);
207
 
208
						deliveredOrderDataList.add(deliveredOrdelList);
209
					}
210
				} catch (Exception e) {
9700 manish.sha 211
					logger.error("Unable to add delivered order details for updation regarding snapdeal oneship delivered orders", e);
9651 manish.sha 212
				}
213
			}
214
		}
215
		if(tsc!=null){
216
			if(deliveredOrderDataList!=null && deliveredOrderDataList.size()>0){
217
				try{
218
					tsc.getClient().updateSnapdealOrdersStatus(deliveredOrderDataList);
219
				} catch(Exception e){
9700 manish.sha 220
					logger.error("Unable to update delivery information for snapdeal orders", e);
9651 manish.sha 221
				}
222
			}
223
		}
224
	}
225
}