Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
410 rajveer 1
package in.shop2020.serving.controllers;
2
 
3
import in.shop2020.model.v1.shoppingcart.ShoppingCartException;
4
import in.shop2020.serving.controllers.BaseController;
5
import in.shop2020.serving.pages.PageContentKeys;
6
import in.shop2020.serving.pages.PageEnum;
7
import in.shop2020.serving.pages.PageManager;
419 rajveer 8
import in.shop2020.serving.utils.Utils;
410 rajveer 9
import in.shop2020.thrift.clients.ShoppingCartClient;
10
import in.shop2020.thrift.clients.UserContextServiceClient;
11
 
12
import java.util.*;
13
 
14
import org.apache.juli.logging.Log;
15
import org.apache.juli.logging.LogFactory;
16
import org.apache.struts2.convention.annotation.Result;
17
import org.apache.struts2.convention.annotation.Results;
18
import org.apache.struts2.interceptor.ParameterAware;
19
import org.apache.struts2.rest.DefaultHttpHeaders;
20
import org.apache.struts2.rest.HttpHeaders;
21
import org.apache.thrift.TException;
22
 
507 rajveer 23
public class CartController extends BaseController implements ParameterAware{
410 rajveer 24
 
25
	private static final long serialVersionUID = 1L;
507 rajveer 26
	private static Log log = LogFactory.getLog(CartController.class);
27
	Map<String, String[]> reqparams = null;
410 rajveer 28
 
29
	private Map<String,String> htmlSnippets;
507 rajveer 30
	private PageManager pageManager = null;
410 rajveer 31
 
32
	public CartController(){
507 rajveer 33
		super();
34
		pageManager = PageManager.getPageManager();	
35
	}
36
 
37
	 // GET /cart
38
	 public HttpHeaders index() {
39
    	long userId = 0;
40
    	boolean isSessionId = true;
41
		Map<PageContentKeys, String> params = new HashMap<PageContentKeys, String>();
410 rajveer 42
 
507 rajveer 43
		if(userinfo.isLoggedIn()){
44
			userId = userinfo.getUserId();
45
			isSessionId = false;
46
		}
47
		else{
48
			userId = userinfo.getSessionId();
49
			isSessionId = true;
50
		}
51
 
52
		params.put(PageContentKeys.CUSTOMER_ID, userId+"");
53
		params.put(PageContentKeys.IS_SESSION_ID, isSessionId+"");
54
		params.put(PageContentKeys.CART_ID, userinfo.getCartId()+"");
55
 
56
		params.put(PageContentKeys.ITEM_COUNT, userinfo.getTotalItems()+"");
57
 
58
		htmlSnippets = PageManager.getPageManager().getPageContents(PageEnum.SHOPPING_CART_PAGE, params);
59
 
60
    	return new DefaultHttpHeaders("index").disableCaching();
61
	 }
62
 
63
		// POST /entity
64
		public String create() {
65
	    	log.info("CartController.create");
66
 
67
	    	printParams();
68
 
69
	    	long userId = 0;
70
	    	boolean isSessionId = true;
71
 
72
	    	log.info("item id is " + this.reqparams.get("productid"));
73
 
74
	    	String itemIds = "1000008_1000005"; 
75
	    	if(this.reqparams.get("productid") != null){
76
	    		itemIds = this.reqparams.get("productid")[0];
77
	    	}
78
 
79
 
80
//		    	log.info("list of item ids is " + this.request.getParameter("productid"));
81
//				String itemIds = this.request.getParameter("productid");
82
 
83
			if(userinfo.isLoggedIn()){
84
				userId = userinfo.getUserId();
85
				isSessionId = false;
86
			}
87
			else{
88
				userId = userinfo.getSessionId();
89
				isSessionId = true;
90
			}
91
			long cartId = 0;
92
 
93
			StringTokenizer tokenizer = new StringTokenizer(itemIds,"_");
94
			int numberOfItems = tokenizer.countTokens();
95
			while(tokenizer.hasMoreTokens()){
96
				long itemId = Long.parseLong(tokenizer.nextToken());
97
				cartId = Utils.addItemToCart(itemId, userId, isSessionId);
98
			}
99
 
100
	    	//long cartId = Utils.addItemToCart(Long.parseLong(itemId), userId, isSessionId);
101
 
102
	    	userinfo.setCartId(cartId);
103
	    	userinfo.setTotalItems(Utils.getNumberOfItemsInCart(cartId) );
104
 
105
	    	this.session.setAttribute("userinfo", userinfo);
106
 
107
			return "success";
108
	    }
109
 
110
 
111
		// DELETE /entity
112
		public String destroy() {
113
	    	log.info("CartController.destroy");
114
	    	printParams();
115
	    	log.info("item id is " + this.request.getParameter("productid"));
116
			String itemIdString = this.request.getParameter("productid");
117
			long itemId = Long.parseLong(itemIdString);
118
 
119
			if(Utils.deleteItemFromCart(itemId, userinfo.getUserId(), userinfo.isSessionId())){
120
				return "delsuccess";	
121
			}
122
			return "delfailure";
123
		}
124
 
125
 
126
		// DELETE /entity
127
		public String update() {
128
	    	log.info("CartController.update");
129
	    	printParams();
130
	    	log.info("item id is " + this.request.getParameter("productid"));
131
	    	log.info("item id is " + this.request.getParameter("quantity"));
132
			String itemIdString = this.request.getParameter("productid");
133
			String quantityString = this.request.getParameter("quantity");
134
			long itemId = Long.parseLong(itemIdString);
135
			long quantity = Long.parseLong(quantityString);
136
 
137
			if(Utils.updateItemQuantityInCart(userinfo.getCartId(), itemId, quantity)){
138
				return "delsuccess";	
139
			}
140
			return "delfailure";
141
		}
142
 
143
 
144
    public void printParams(){
145
    	for(String param : reqparams.keySet()) {
146
    		log.info("param name is " + param);
147
    		log.info("param first is " + reqparams.get(param)[0]);
148
    	}
149
    	log.info(this.reqparams);
150
    }
151
 
152
	@Override
153
	public void setParameters(Map<String, String[]> reqmap) {
154
		log.info("setParameters:" + reqmap);
155
 
156
		this.reqparams = reqmap;
410 rajveer 157
	}
507 rajveer 158
 
159
    public String getHeaderSnippet(){
160
		return htmlSnippets.get("HEADER");
161
	}
410 rajveer 162
 
507 rajveer 163
	public String getMainMenuSnippet(){
164
		return htmlSnippets.get("MAIN_MENU");
165
	}
410 rajveer 166
 
507 rajveer 167
	public String getSearchBarSnippet(){
168
		return htmlSnippets.get("SEARCH_BAR");
169
	}
170
 
171
 
172
	public String getCustomerServiceSnippet(){
173
		return htmlSnippets.get("CUSTOMER_SERVICE");
174
	}
175
 
176
	public String getCartHeaderSnippet(){
177
		return htmlSnippets.get("CART_HEADER");
178
	}
179
 
180
	public String getCartDetailsSnippet(){
181
		return htmlSnippets.get("CART_DETAILS");
182
	}
183
 
184
	public String getMyResearchSnippet(){
185
		return htmlSnippets.get("MY_RESEARCH");
186
	}
187
 
188
	public String getFooterSnippet(){
189
		return htmlSnippets.get("FOOTER");
190
	}
191
 
192
	public String getJsFileSnippet(){
193
		return htmlSnippets.get("JS_FILES");
194
	}
195
 
196
	public String getCssFileSnippet(){
197
		return htmlSnippets.get("CSS_FILES");
198
	}
199
 
200
	public long getNumberOfItems(){
201
		return userinfo.getTotalItems();
202
	}
203
}
204
/*
419 rajveer 205
	 // GET /cart
507 rajveer 206
	 public HttpHeaders index() {
207
    	 changed on 18 august
410 rajveer 208
    	Cookie loginCookie = new Cookie("userId", "Rajveer");
209
    	Map cookiesMap = new HashMap();
210
    	cookiesMap.put("USER_ID", loginCookie);
211
    	setCookiesMap(cookiesMap);
212
 
213
    	log.info( "Cookies map is " + this.getCookiesMap());
214
    	log.info("CartController.index");
215
 
216
		Map<PageContentKeys, String> params = new HashMap<PageContentKeys, String>();
217
 
416 rajveer 218
    	long userId = 0;
219
    	boolean isSessionId = true;
419 rajveer 220
    	//if(this.session.getAttribute("loggedin")!=null){
221
	    	if(this.session.getAttribute("loggedin").toString().equals("true")){
222
	    		userId = Long.parseLong(this.session.getAttribute("userid").toString());
223
	    		isSessionId = false;
224
	    	}else{
225
	    		userId = Long.parseLong(this.session.getAttribute("userid").toString());
226
	    		isSessionId = true;
227
	    	}
228
//    	}else{
229
//    		System.out.println("No User is logged in. Redirect to login page.");
230
//    		return new DefaultHttpHeaders("fatal");
231
//
232
//    	}
233
 
234
 
235
 
236
		params.put(PageContentKeys.CUSTOMER_ID, userId+"");
237
		params.put(PageContentKeys.IS_SESSION_ID, isSessionId+"");
238
 
507 rajveer 239
 
419 rajveer 240
    	long userId = 0;
241
    	boolean isSessionId = true;
242
		Map<PageContentKeys, String> params = new HashMap<PageContentKeys, String>();
416 rajveer 243
 
419 rajveer 244
		if(userinfo.isLoggedIn()){
245
			userId = userinfo.getUserId();
246
			isSessionId = false;
247
		}
248
		else{
249
			userId = userinfo.getSessionId();
250
			isSessionId = true;
251
		}
252
 
416 rajveer 253
		params.put(PageContentKeys.CUSTOMER_ID, userId+"");
254
		params.put(PageContentKeys.IS_SESSION_ID, isSessionId+"");
255
 
410 rajveer 256
		htmlSnippets = PageManager.getPageManager().getPageContents(PageEnum.SHOPPING_CART_PAGE, params);
257
 
258
 
259
 
260
    	return new DefaultHttpHeaders("index").disableCaching();
261
    }
507 rajveer 262
*/    
410 rajveer 263
    // POST /entity
507 rajveer 264
    /*
410 rajveer 265
    public String create() {
507 rajveer 266
 
410 rajveer 267
    	log.info("CartController.create");
268
    	printParams();
269
    	if(getCookiesMap() != null){
270
    		Cookie loginCookie = (Cookie)getCookiesMap().get("USER_ID");
271
    		log.info("login cookie name is " + loginCookie.getName() );
272
    		log.info("login cookie value is " + loginCookie.getValue());
273
    	}
274
    	log.info("item id is " + this.reqparams.get("item_id"));
275
    	itemId = this.reqparams.get("item_id")[0];
276
 
277
    	addItemToCart(itemId);
416 rajveer 278
    	long userId = 0;
279
    	boolean isSessionId = true;
280
    	if(this.session.getAttribute("loggedin").toString().equals("true")){
281
    		userId = Long.parseLong(this.session.getAttribute("userid").toString());
282
    		isSessionId = false;
283
    	}else{
284
    		userId = Long.parseLong(this.session.getAttribute("userid").toString());
285
    		isSessionId = true;
286
    	}
287
    	addItemToCart(Long.parseLong(itemId), userId, isSessionId);
410 rajveer 288
    	// Add data to the cart
507 rajveer 289
 
419 rajveer 290
    	long userId = 0;
291
    	boolean isSessionId = true;
410 rajveer 292
 
449 rajveer 293
    	log.info("item id is " + this.reqparams.get("productid"));
419 rajveer 294
 
449 rajveer 295
    	String itemIds = "1000008_1000005"; 
296
    	if(this.reqparams.get("productid") != null){
297
    		itemIds = this.reqparams.get("productid")[0];
298
    	}
299
 
300
 
301
//    	log.info("list of item ids is " + this.request.getParameter("productid"));
302
//		String itemIds = this.request.getParameter("productid");
303
 
419 rajveer 304
		if(userinfo.isLoggedIn()){
305
			userId = userinfo.getUserId();
306
			isSessionId = false;
307
		}
308
		else{
309
			userId = userinfo.getSessionId();
310
			isSessionId = true;
311
		}
449 rajveer 312
		long cartId = 0;
313
 
314
		StringTokenizer tokenizer = new StringTokenizer(itemIds,"_");
315
		int numberOfItems = tokenizer.countTokens();
316
		while(tokenizer.hasMoreTokens()){
317
			long itemId = Long.parseLong(tokenizer.nextToken());
318
			cartId = Utils.addItemToCart(itemId, userId, isSessionId);
319
		}
320
 
321
    	//long cartId = Utils.addItemToCart(Long.parseLong(itemId), userId, isSessionId);
419 rajveer 322
 
323
    	userinfo.setCartId(cartId);
449 rajveer 324
    	userinfo.setTotalItems(Utils.getNumberOfItemsInCart(cartId) );
419 rajveer 325
 
326
    	this.session.setAttribute("userinfo", userinfo);
327
 
410 rajveer 328
		return "success";
329
    }
330
 
507 rajveer 331
 
410 rajveer 332
    public void printParams(){
333
    	for(String param : reqparams.keySet()) {
334
    		log.info("param name is " + param);
335
    		log.info("param first is " + reqparams.get(param)[0]);
336
    	}
337
    	log.info(this.reqparams);
338
    }
339
 
340
    private boolean addItemToCart(String itemId){
341
    	log.info("Session Id is "  + request.getSession().getId());
342
    	log.info("Item Id is "  + itemId);
343
    	return true;
344
    }
345
 
346
 
416 rajveer 347
	private	void addItemToCart(long catalogItemId, long userId, boolean isSessionId){
410 rajveer 348
		UserContextServiceClient userContextServiceClient = null;
349
		in.shop2020.model.v1.user.UserContextService.Client userClient = null;
350
 
351
		ShoppingCartClient shoppingCartClient = null;
352
		in.shop2020.model.v1.shoppingcart.ShoppingCartService.Client cartClient = null;
353
		long cartId = -1;
354
 
355
		try {
356
			userContextServiceClient = new UserContextServiceClient();
357
			userClient = userContextServiceClient.getClient();
358
 
359
			shoppingCartClient = new ShoppingCartClient();
360
			cartClient = shoppingCartClient.getClient();
416 rajveer 361
 
362
			cartId = cartClient.createCart(userId, isSessionId);
410 rajveer 363
			cartClient.addItemToCart(cartId, catalogItemId, 1);
419 rajveer 364
 
365
			int NumberOfLines = cartClient.getShadowCart(cartId).getLinesSize();
366
			this.session.setAttribute("totalitems", NumberOfLines+"");
367
 
368
 
410 rajveer 369
		} catch (ShoppingCartException e) {
370
			// TODO Auto-generated catch block
371
			e.printStackTrace();
372
		} catch (TException e) {
373
			// TODO Auto-generated catch block
374
			e.printStackTrace();
375
		} catch (Exception e) {
376
			// TODO Auto-generated catch block
377
			e.printStackTrace();
378
		}
379
 
380
		//if user is logged in create  new cart
381
		//if( userClient.getState(userId, false).isIsLoggedIn()){
382
	}
383
 
458 rajveer 384
	public long getNumberOfItems(){
449 rajveer 385
		return userinfo.getTotalItems();
386
	}
387
 
410 rajveer 388
	public String getShoppingCartSnippets()
389
	{
390
		return htmlSnippets.get("SHOPPING_CART");
391
	}
392
 
393
	@Override
394
	public void setParameters(Map<String, String[]> reqmap) {
395
		log.info("setParameters:" + reqmap);
396
 
397
		this.reqparams = reqmap;
398
	}
507 rajveer 399
	*/
416 rajveer 400
//	
401
//	@Override
402
//	public void setServletRequest(HttpServletRequest request) {
403
//		this.request = request;
404
//	}
405
//    
507 rajveer 406