Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
10225 vikram.rag 1
package in.shop2020.support.utils;
2
 
3
import in.shop2020.model.v1.catalog.CatalogService.Client;
4
import in.shop2020.model.v1.catalog.Item;
10227 vikram.rag 5
import in.shop2020.support.controllers.SnapdealListController;
10225 vikram.rag 6
import in.shop2020.thrift.clients.CatalogClient;
7
import in.shop2020.utils.GmailUtils;
8
 
9
import java.io.BufferedReader;
10
import java.io.File;
11
import java.io.IOException;
12
import java.io.InputStreamReader;
13
import java.io.UnsupportedEncodingException;
14
import java.util.ArrayList;
15
import java.util.List;
16
 
17
import javax.mail.MessagingException;
18
 
19
import org.apache.http.HttpResponse;
20
import org.apache.http.NameValuePair;
21
import org.apache.http.client.ClientProtocolException;
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.thrift.TException;
28
import org.apache.thrift.transport.TTransportException;
10227 vikram.rag 29
import org.slf4j.Logger;
30
import org.slf4j.LoggerFactory;
10225 vikram.rag 31
 
32
public class UpdateSDPricingUsingPanel extends Thread{
10229 vikram.rag 33
	private DefaultHttpClient client;
10225 vikram.rag 34
	private Float price;
35
	private String supc;
36
	private Item item;
37
	private Long timestamp;
38
	public String[] sendTo = new String[]{"vikram.raghav@shop2020.in"};
10227 vikram.rag 39
	private static Logger logger = LoggerFactory.getLogger(UpdateSDPricingUsingPanel.class);
10225 vikram.rag 40
	/*public String[] sendTo = new String[]{ "sandeep.sachdeva@shop2020.in", "vikram.raghav@shop2020.in", "rajneesh.arora@shop2020.in",
41
			"khushal.bhatia@shop2020.in","manoj.kumar@saholic.com","chaitnaya.vats@saholic.com",
42
			"yukti.jain@shop2020.in","chandan.kumar@shop2020.in","ankush.dhingra@shop2020.in"};
10229 vikram.rag 43
	 */public String emailFromAddress = "build@shop2020.in";
44
	 public String password = "cafe@nes";
45
	 public UpdateSDPricingUsingPanel(Float price,String supc,Item item,Long timestamp){
46
		 logger.info("Calling Update Snapdeal Price Constructor --" + " Price :" +price + " Supc :"+supc +" Item ID:" +item.getId());
47
		 this.price = price;
48
		 this.supc = supc;
49
		 this.item = item;
50
		 this.timestamp = timestamp; 
51
	 }
52
	 public UpdateSDPricingUsingPanel() {
53
	 }
54
	 public static void main(String... args) throws ClientProtocolException, IOException{
55
		 UpdateSDPricingUsingPanel UDSI = new UpdateSDPricingUsingPanel();
56
		 //UDSI.updatePricing(10131f,"SDL668125910","");
10225 vikram.rag 57
 
10229 vikram.rag 58
	 }
59
	 int updatePricing(Float price,String supc,Item item,Long timestamp) throws ClientProtocolException, IOException{
60
		 logger.info("Calling Update Snapdeal Price Constructor --" + " Price :" +price + " Supc :"+supc +" Item ID:" +item.getId());
61
		 HttpPost post = new HttpPost("http://seller.snapdeal.com/pricing/update");
62
		 List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
63
		 nameValuePairs.add(new BasicNameValuePair("sellingPrice",
10230 vikram.rag 64
				 String.valueOf(price.intValue())));
10229 vikram.rag 65
		 nameValuePairs.add(new BasicNameValuePair("id",
66
				 supc));
67
		 nameValuePairs.add(new BasicNameValuePair("oper","edit"));
68
		 post.setEntity(new UrlEncodedFormEntity(nameValuePairs,"utf-8"));
69
		 HttpResponse response = client.execute(post);
70
		 BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
71
		 String line = "";
72
		 while ((line = rd.readLine()) != null) {
73
			 System.out.println(line);
74
		 }
75
		 return 1;
76
	 }
10225 vikram.rag 77
 
10229 vikram.rag 78
	 public void handleLogin() throws ClientProtocolException, IOException{
79
		 logger.info("----Inside Handle Login ----" );
80
		 HttpGet get = new HttpGet("http://selleraccounts.snapdeal.com/keymaker/login");
81
		 HttpResponse response = null;
82
		 client = new DefaultHttpClient();
83
		 try {
84
			 response = client.execute(get);
85
		 } catch (ClientProtocolException e) {
86
			 e.printStackTrace();
87
		 } catch (IOException e) {
88
			 e.printStackTrace();
89
		 }
90
		 BufferedReader rd = null;
91
		 try {
92
			 rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
93
		 } catch (IllegalStateException e1) {
94
			 e1.printStackTrace();
95
		 } catch (IOException e1) {
96
			 e1.printStackTrace();
97
		 }
98
		 String line = "";
99
		 StringBuffer sb = new StringBuffer();
100
		 try {
101
			 while ((line = rd.readLine()) != null) {
102
				 sb.append(line);
103
			 }
104
		 } catch (IOException e) {
105
			 e.printStackTrace();
106
		 }
107
		 int i= sb.toString().indexOf("name=\"lt\" value=");
108
		 char[] charArray = sb.toString().toCharArray();
109
		 String lt = "";
110
		 int j=0;
111
		 for(j=i+16;j<=charArray.length;j++){
10225 vikram.rag 112
 
10229 vikram.rag 113
			 if(charArray[j]==' '){
114
				 break;
115
			 }
116
		 }
117
		 lt = sb.substring(i+17,j-1);
118
		 System.out.println("LT VALUE " + lt);
119
		 i= sb.toString().indexOf("name=\"execution\" value=");
120
		 charArray = sb.toString().toCharArray();
121
		 String ex = "";
122
		 j=0;
123
		 for(j=i+24;j<=charArray.length;j++){
124
			 if(charArray[j]==' '){
125
				 break;
126
			 }
127
		 }
128
		 ex = sb.substring(i+24,j-1);
129
		 System.out.println("EXECUTION VALUE " + ex);
130
		 HttpPost post = new HttpPost("http://selleraccounts.snapdeal.com/login?service=http%3A%2F%2Fseller.snapdeal.com%2Fj_spring_cas_security_check");
131
		 List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
132
		 nameValuePairs.add(new BasicNameValuePair("username",
133
		 "saholic-snapdeal@saholic.com"));
134
		 nameValuePairs.add(new BasicNameValuePair("password",
135
		 "bc452ce4"));
136
		 nameValuePairs.add(new BasicNameValuePair("_eventId","submit"));
137
		 nameValuePairs.add(new BasicNameValuePair("execution",ex));
138
		 nameValuePairs.add(new BasicNameValuePair("lt",lt));
139
		 nameValuePairs.add(new BasicNameValuePair("submit","LOGIN"));
140
		 post.setEntity(new UrlEncodedFormEntity(nameValuePairs,"utf-8"));
141
		 response = client.execute(post);
142
		 rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
143
		 line = "";
144
		 while ((line = rd.readLine()) != null) {
145
			 System.out.println(line);
146
		 }
147
		 get = new HttpGet("http://seller.snapdeal.com/pricing");
148
		 response = client.execute(get);
149
		 rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
150
		 while ((line = rd.readLine()) != null) {
151
			 //System.out.println(line);
152
		 }
153
		 logger.info("----Login Successful----" );
154
	 }
155
	 public void run()
156
	 {
157
		 try {
158
			 this.handleLogin();
159
			 this.updatePricing(this.price,this.supc,this.item,timestamp);
10231 vikram.rag 160
			 HttpGet get = new HttpGet("http://seller.snapdeal.com/pricing/search?searchType=SUPC&searchValue="+this.supc+"&gridType=normal&_search=false&nd="+System.currentTimeMillis()+"&rows=30&page=1&sidx=&sord=asc");
161
			 HttpResponse response = client.execute(get);
162
			 BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
163
			 String line = "";
164
			 while ((line = rd.readLine()) != null) {
165
				 logger.info(line);
166
			 }
10229 vikram.rag 167
			 GmailUtils mailer = new GmailUtils();
168
			 String text = "Product       : " +getProductName(this.item) +"\n"+ 
169
			 "Item ID       : " +this.item.getId() +"\n"+
170
			 "SUPC          : " +this.supc +"\n"+
171
			 "Updated Price : " +this.price;
172
			 mailer.sendSSLMessage(sendTo, "Price updated on Snapdeal Item ID " + this.item.getId(),text, emailFromAddress , password,new ArrayList<File>());
173
			 ArrayList<Long> updateList = new ArrayList<Long>();
174
			 try {
175
				 Client catalogClient = new CatalogClient().getClient();
10225 vikram.rag 176
 
10229 vikram.rag 177
				 updateList.add(this.item.getId());
178
				 catalogClient.updateMarketPlacePriceUpdateStatus(updateList,this.timestamp,7L);
179
			 } catch (TException e) {
180
				 try {
181
					 new CatalogClient().getClient().updateMarketPlacePriceUpdateStatus(updateList, timestamp,8);
182
				 } catch (TTransportException e1) {
183
					 e1.printStackTrace();
184
				 } catch (TException e1) {
185
					 e1.printStackTrace();
186
				 }
187
				 e.printStackTrace();
188
			 }
189
		 } catch (Exception e) {
190
			 e.printStackTrace();
191
			 GmailUtils mailer = new GmailUtils();
192
			 String text = "Product       : " +getProductName(this.item) +"\n"+ 
193
			 "Item ID       : " +this.item.getId() +"\n"+
194
			 "SUPC          : " +this.supc +"\n"+
195
			 "Updated Price : " +this.price;
196
			 try {
197
				 mailer.sendSSLMessage(sendTo, "Failed to update Price on Snapdeal Item ID " + this.item.getId(),text, emailFromAddress , password,new ArrayList<File>());
198
			 } catch (MessagingException e1) {
199
				 e1.printStackTrace();
200
			 }
10225 vikram.rag 201
 
10229 vikram.rag 202
		 } 
203
	 }
204
	 String getProductName(Item item){
205
		 return getName(item.getBrand())+" " + getName(item.getModelName())+" " + getName(item.getModelNumber())+" " + getName(item.getColor()); 
10225 vikram.rag 206
 
10229 vikram.rag 207
	 }
208
	 String getName(String name){
209
		 if(name==null || name.length()==0){
210
			 return "";
211
		 }
212
		 else{
213
			 return name;
214
		 }
215
	 }
216
 
217
 
10225 vikram.rag 218
}