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()+"");
517 rajveer 57
		params.put(PageContentKeys.USER_NAME, userinfo.getNameOfUser());
507 rajveer 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);
517 rajveer 118
			if(userinfo.getCartId() == -1){
119
				log.info("Cart does not exist. Nothing to delete.");
120
			}else{
121
				if(Utils.deleteItemFromCart(userinfo.getCartId(), itemId, userinfo.getUserId(), userinfo.isSessionId())){
122
					userinfo.setTotalItems(userinfo.getTotalItems() - 1 );
123
					setUserSessionInfo();
124
					return "delsuccess";	
125
				}
507 rajveer 126
			}
127
			return "delfailure";
128
		}
129
 
130
 
131
		// DELETE /entity
132
		public String update() {
133
	    	log.info("CartController.update");
134
	    	printParams();
135
	    	log.info("item id is " + this.request.getParameter("productid"));
136
	    	log.info("item id is " + this.request.getParameter("quantity"));
137
			String itemIdString = this.request.getParameter("productid");
138
			String quantityString = this.request.getParameter("quantity");
139
			long itemId = Long.parseLong(itemIdString);
140
			long quantity = Long.parseLong(quantityString);
517 rajveer 141
			if(quantity <= 0){
142
				log.info("Not valid item quantity. Unable to change item quantity.");
143
			}else{
144
				if(Utils.updateItemQuantityInCart(userinfo.getCartId(), itemId, quantity)){
145
					return "delsuccess";	
146
				}
507 rajveer 147
			}
148
			return "delfailure";
149
		}
150
 
151
 
152
    public void printParams(){
153
    	for(String param : reqparams.keySet()) {
154
    		log.info("param name is " + param);
155
    		log.info("param first is " + reqparams.get(param)[0]);
156
    	}
157
    	log.info(this.reqparams);
158
    }
159
 
160
	@Override
161
	public void setParameters(Map<String, String[]> reqmap) {
162
		log.info("setParameters:" + reqmap);
163
 
164
		this.reqparams = reqmap;
410 rajveer 165
	}
507 rajveer 166
 
167
    public String getHeaderSnippet(){
168
		return htmlSnippets.get("HEADER");
169
	}
410 rajveer 170
 
507 rajveer 171
	public String getMainMenuSnippet(){
172
		return htmlSnippets.get("MAIN_MENU");
173
	}
410 rajveer 174
 
507 rajveer 175
	public String getSearchBarSnippet(){
176
		return htmlSnippets.get("SEARCH_BAR");
177
	}
178
 
179
 
180
	public String getCustomerServiceSnippet(){
181
		return htmlSnippets.get("CUSTOMER_SERVICE");
182
	}
183
 
184
	public String getCartHeaderSnippet(){
185
		return htmlSnippets.get("CART_HEADER");
186
	}
187
 
188
	public String getCartDetailsSnippet(){
189
		return htmlSnippets.get("CART_DETAILS");
190
	}
191
 
192
	public String getMyResearchSnippet(){
193
		return htmlSnippets.get("MY_RESEARCH");
194
	}
195
 
196
	public String getFooterSnippet(){
197
		return htmlSnippets.get("FOOTER");
198
	}
199
 
200
	public String getJsFileSnippet(){
201
		return htmlSnippets.get("JS_FILES");
202
	}
203
 
204
	public String getCssFileSnippet(){
205
		return htmlSnippets.get("CSS_FILES");
206
	}
207
 
208
	public long getNumberOfItems(){
209
		return userinfo.getTotalItems();
210
	}
211
}
212
/*
419 rajveer 213
	 // GET /cart
507 rajveer 214
	 public HttpHeaders index() {
215
    	 changed on 18 august
410 rajveer 216
    	Cookie loginCookie = new Cookie("userId", "Rajveer");
217
    	Map cookiesMap = new HashMap();
218
    	cookiesMap.put("USER_ID", loginCookie);
219
    	setCookiesMap(cookiesMap);
220
 
221
    	log.info( "Cookies map is " + this.getCookiesMap());
222
    	log.info("CartController.index");
223
 
224
		Map<PageContentKeys, String> params = new HashMap<PageContentKeys, String>();
225
 
416 rajveer 226
    	long userId = 0;
227
    	boolean isSessionId = true;
419 rajveer 228
    	//if(this.session.getAttribute("loggedin")!=null){
229
	    	if(this.session.getAttribute("loggedin").toString().equals("true")){
230
	    		userId = Long.parseLong(this.session.getAttribute("userid").toString());
231
	    		isSessionId = false;
232
	    	}else{
233
	    		userId = Long.parseLong(this.session.getAttribute("userid").toString());
234
	    		isSessionId = true;
235
	    	}
236
//    	}else{
237
//    		System.out.println("No User is logged in. Redirect to login page.");
238
//    		return new DefaultHttpHeaders("fatal");
239
//
240
//    	}
241
 
242
 
243
 
244
		params.put(PageContentKeys.CUSTOMER_ID, userId+"");
245
		params.put(PageContentKeys.IS_SESSION_ID, isSessionId+"");
246
 
507 rajveer 247
 
419 rajveer 248
    	long userId = 0;
249
    	boolean isSessionId = true;
250
		Map<PageContentKeys, String> params = new HashMap<PageContentKeys, String>();
416 rajveer 251
 
419 rajveer 252
		if(userinfo.isLoggedIn()){
253
			userId = userinfo.getUserId();
254
			isSessionId = false;
255
		}
256
		else{
257
			userId = userinfo.getSessionId();
258
			isSessionId = true;
259
		}
260
 
416 rajveer 261
		params.put(PageContentKeys.CUSTOMER_ID, userId+"");
262
		params.put(PageContentKeys.IS_SESSION_ID, isSessionId+"");
263
 
410 rajveer 264
		htmlSnippets = PageManager.getPageManager().getPageContents(PageEnum.SHOPPING_CART_PAGE, params);
265
 
266
 
267
 
268
    	return new DefaultHttpHeaders("index").disableCaching();
269
    }
507 rajveer 270
*/    
410 rajveer 271
    // POST /entity
507 rajveer 272
    /*
410 rajveer 273
    public String create() {
507 rajveer 274
 
410 rajveer 275
    	log.info("CartController.create");
276
    	printParams();
277
    	if(getCookiesMap() != null){
278
    		Cookie loginCookie = (Cookie)getCookiesMap().get("USER_ID");
279
    		log.info("login cookie name is " + loginCookie.getName() );
280
    		log.info("login cookie value is " + loginCookie.getValue());
281
    	}
282
    	log.info("item id is " + this.reqparams.get("item_id"));
283
    	itemId = this.reqparams.get("item_id")[0];
284
 
285
    	addItemToCart(itemId);
416 rajveer 286
    	long userId = 0;
287
    	boolean isSessionId = true;
288
    	if(this.session.getAttribute("loggedin").toString().equals("true")){
289
    		userId = Long.parseLong(this.session.getAttribute("userid").toString());
290
    		isSessionId = false;
291
    	}else{
292
    		userId = Long.parseLong(this.session.getAttribute("userid").toString());
293
    		isSessionId = true;
294
    	}
295
    	addItemToCart(Long.parseLong(itemId), userId, isSessionId);
410 rajveer 296
    	// Add data to the cart
507 rajveer 297
 
419 rajveer 298
    	long userId = 0;
299
    	boolean isSessionId = true;
410 rajveer 300
 
449 rajveer 301
    	log.info("item id is " + this.reqparams.get("productid"));
419 rajveer 302
 
449 rajveer 303
    	String itemIds = "1000008_1000005"; 
304
    	if(this.reqparams.get("productid") != null){
305
    		itemIds = this.reqparams.get("productid")[0];
306
    	}
307
 
308
 
309
//    	log.info("list of item ids is " + this.request.getParameter("productid"));
310
//		String itemIds = this.request.getParameter("productid");
311
 
419 rajveer 312
		if(userinfo.isLoggedIn()){
313
			userId = userinfo.getUserId();
314
			isSessionId = false;
315
		}
316
		else{
317
			userId = userinfo.getSessionId();
318
			isSessionId = true;
319
		}
449 rajveer 320
		long cartId = 0;
321
 
322
		StringTokenizer tokenizer = new StringTokenizer(itemIds,"_");
323
		int numberOfItems = tokenizer.countTokens();
324
		while(tokenizer.hasMoreTokens()){
325
			long itemId = Long.parseLong(tokenizer.nextToken());
326
			cartId = Utils.addItemToCart(itemId, userId, isSessionId);
327
		}
328
 
329
    	//long cartId = Utils.addItemToCart(Long.parseLong(itemId), userId, isSessionId);
419 rajveer 330
 
331
    	userinfo.setCartId(cartId);
449 rajveer 332
    	userinfo.setTotalItems(Utils.getNumberOfItemsInCart(cartId) );
419 rajveer 333
 
334
    	this.session.setAttribute("userinfo", userinfo);
335
 
410 rajveer 336
		return "success";
337
    }
338
 
507 rajveer 339
 
410 rajveer 340
    public void printParams(){
341
    	for(String param : reqparams.keySet()) {
342
    		log.info("param name is " + param);
343
    		log.info("param first is " + reqparams.get(param)[0]);
344
    	}
345
    	log.info(this.reqparams);
346
    }
347
 
348
    private boolean addItemToCart(String itemId){
349
    	log.info("Session Id is "  + request.getSession().getId());
350
    	log.info("Item Id is "  + itemId);
351
    	return true;
352
    }
353
 
354
 
416 rajveer 355
	private	void addItemToCart(long catalogItemId, long userId, boolean isSessionId){
410 rajveer 356
		UserContextServiceClient userContextServiceClient = null;
357
		in.shop2020.model.v1.user.UserContextService.Client userClient = null;
358
 
359
		ShoppingCartClient shoppingCartClient = null;
360
		in.shop2020.model.v1.shoppingcart.ShoppingCartService.Client cartClient = null;
361
		long cartId = -1;
362
 
363
		try {
364
			userContextServiceClient = new UserContextServiceClient();
365
			userClient = userContextServiceClient.getClient();
366
 
367
			shoppingCartClient = new ShoppingCartClient();
368
			cartClient = shoppingCartClient.getClient();
416 rajveer 369
 
370
			cartId = cartClient.createCart(userId, isSessionId);
410 rajveer 371
			cartClient.addItemToCart(cartId, catalogItemId, 1);
419 rajveer 372
 
373
			int NumberOfLines = cartClient.getShadowCart(cartId).getLinesSize();
374
			this.session.setAttribute("totalitems", NumberOfLines+"");
375
 
376
 
410 rajveer 377
		} catch (ShoppingCartException e) {
378
			// TODO Auto-generated catch block
379
			e.printStackTrace();
380
		} catch (TException e) {
381
			// TODO Auto-generated catch block
382
			e.printStackTrace();
383
		} catch (Exception e) {
384
			// TODO Auto-generated catch block
385
			e.printStackTrace();
386
		}
387
 
388
		//if user is logged in create  new cart
389
		//if( userClient.getState(userId, false).isIsLoggedIn()){
390
	}
391
 
458 rajveer 392
	public long getNumberOfItems(){
449 rajveer 393
		return userinfo.getTotalItems();
394
	}
395
 
410 rajveer 396
	public String getShoppingCartSnippets()
397
	{
398
		return htmlSnippets.get("SHOPPING_CART");
399
	}
400
 
401
	@Override
402
	public void setParameters(Map<String, String[]> reqmap) {
403
		log.info("setParameters:" + reqmap);
404
 
405
		this.reqparams = reqmap;
406
	}
507 rajveer 407
	*/
416 rajveer 408
//	
409
//	@Override
410
//	public void setServletRequest(HttpServletRequest request) {
411
//		this.request = request;
412
//	}
413
//    
507 rajveer 414