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
 
23
 
24
@Results({
449 rajveer 25
    @Result(name="fail", type="redirectAction", 
419 rajveer 26
    		params = {"actionName" , "cart"}),
27
    @Result(name="redirect", location="${url}", type="redirect")
410 rajveer 28
})
29
 
416 rajveer 30
public class CartController extends BaseController implements ParameterAware {
410 rajveer 31
 
32
	private static final long serialVersionUID = 1L;
33
 
34
	private Map<String, String[]> reqparams;
35
	private Map<String, Object> sessions;
36
	private String redirectURL;
37
	private static Log log = LogFactory.getLog(CartController.class);
449 rajveer 38
	//private String itemId;
416 rajveer 39
	//HttpServletRequest request;
410 rajveer 40
	private Map<String,String> htmlSnippets;
41
 
42
	public CartController(){
43
 
44
	}
45
 
46
 
419 rajveer 47
	 // GET /cart
410 rajveer 48
    public HttpHeaders index() {
419 rajveer 49
    	/* changed on 18 august
410 rajveer 50
    	Cookie loginCookie = new Cookie("userId", "Rajveer");
51
    	Map cookiesMap = new HashMap();
52
    	cookiesMap.put("USER_ID", loginCookie);
53
    	setCookiesMap(cookiesMap);
54
 
55
    	log.info( "Cookies map is " + this.getCookiesMap());
56
    	log.info("CartController.index");
57
 
58
		Map<PageContentKeys, String> params = new HashMap<PageContentKeys, String>();
59
 
416 rajveer 60
    	long userId = 0;
61
    	boolean isSessionId = true;
419 rajveer 62
    	//if(this.session.getAttribute("loggedin")!=null){
63
	    	if(this.session.getAttribute("loggedin").toString().equals("true")){
64
	    		userId = Long.parseLong(this.session.getAttribute("userid").toString());
65
	    		isSessionId = false;
66
	    	}else{
67
	    		userId = Long.parseLong(this.session.getAttribute("userid").toString());
68
	    		isSessionId = true;
69
	    	}
70
//    	}else{
71
//    		System.out.println("No User is logged in. Redirect to login page.");
72
//    		return new DefaultHttpHeaders("fatal");
73
//
74
//    	}
75
 
76
 
77
 
78
		params.put(PageContentKeys.CUSTOMER_ID, userId+"");
79
		params.put(PageContentKeys.IS_SESSION_ID, isSessionId+"");
80
*/
81
 
82
    	long userId = 0;
83
    	boolean isSessionId = true;
84
		Map<PageContentKeys, String> params = new HashMap<PageContentKeys, String>();
416 rajveer 85
 
419 rajveer 86
		if(userinfo.isLoggedIn()){
87
			userId = userinfo.getUserId();
88
			isSessionId = false;
89
		}
90
		else{
91
			userId = userinfo.getSessionId();
92
			isSessionId = true;
93
		}
94
 
416 rajveer 95
		params.put(PageContentKeys.CUSTOMER_ID, userId+"");
96
		params.put(PageContentKeys.IS_SESSION_ID, isSessionId+"");
97
 
410 rajveer 98
		htmlSnippets = PageManager.getPageManager().getPageContents(PageEnum.SHOPPING_CART_PAGE, params);
99
 
100
 
101
 
102
    	return new DefaultHttpHeaders("index").disableCaching();
103
    }
104
 
105
    // POST /entity
106
    public String create() {
419 rajveer 107
    	/*
410 rajveer 108
    	log.info("CartController.create");
109
    	printParams();
110
    	if(getCookiesMap() != null){
111
    		Cookie loginCookie = (Cookie)getCookiesMap().get("USER_ID");
112
    		log.info("login cookie name is " + loginCookie.getName() );
113
    		log.info("login cookie value is " + loginCookie.getValue());
114
    	}
115
    	log.info("item id is " + this.reqparams.get("item_id"));
116
    	itemId = this.reqparams.get("item_id")[0];
117
 
118
    	addItemToCart(itemId);
416 rajveer 119
    	long userId = 0;
120
    	boolean isSessionId = true;
121
    	if(this.session.getAttribute("loggedin").toString().equals("true")){
122
    		userId = Long.parseLong(this.session.getAttribute("userid").toString());
123
    		isSessionId = false;
124
    	}else{
125
    		userId = Long.parseLong(this.session.getAttribute("userid").toString());
126
    		isSessionId = true;
127
    	}
128
    	addItemToCart(Long.parseLong(itemId), userId, isSessionId);
410 rajveer 129
    	// Add data to the cart
419 rajveer 130
    	*/
131
    	long userId = 0;
132
    	boolean isSessionId = true;
410 rajveer 133
 
449 rajveer 134
    	log.info("item id is " + this.reqparams.get("productid"));
419 rajveer 135
 
449 rajveer 136
    	String itemIds = "1000008_1000005"; 
137
    	if(this.reqparams.get("productid") != null){
138
    		itemIds = this.reqparams.get("productid")[0];
139
    	}
140
 
141
 
142
//    	log.info("list of item ids is " + this.request.getParameter("productid"));
143
//		String itemIds = this.request.getParameter("productid");
144
 
419 rajveer 145
		if(userinfo.isLoggedIn()){
146
			userId = userinfo.getUserId();
147
			isSessionId = false;
148
		}
149
		else{
150
			userId = userinfo.getSessionId();
151
			isSessionId = true;
152
		}
449 rajveer 153
		long cartId = 0;
154
 
155
		StringTokenizer tokenizer = new StringTokenizer(itemIds,"_");
156
		int numberOfItems = tokenizer.countTokens();
157
		while(tokenizer.hasMoreTokens()){
158
			long itemId = Long.parseLong(tokenizer.nextToken());
159
			cartId = Utils.addItemToCart(itemId, userId, isSessionId);
160
		}
161
 
162
    	//long cartId = Utils.addItemToCart(Long.parseLong(itemId), userId, isSessionId);
419 rajveer 163
 
164
    	userinfo.setCartId(cartId);
449 rajveer 165
    	userinfo.setTotalItems(Utils.getNumberOfItemsInCart(cartId) );
419 rajveer 166
 
167
    	this.session.setAttribute("userinfo", userinfo);
168
 
410 rajveer 169
		return "success";
170
    }
171
 
172
    public void printParams(){
173
    	for(String param : reqparams.keySet()) {
174
    		log.info("param name is " + param);
175
    		log.info("param first is " + reqparams.get(param)[0]);
176
    	}
177
    	log.info(this.reqparams);
178
    }
179
 
180
    private boolean addItemToCart(String itemId){
181
    	log.info("Session Id is "  + request.getSession().getId());
182
    	log.info("Item Id is "  + itemId);
183
    	return true;
184
    }
185
 
186
 
416 rajveer 187
	private	void addItemToCart(long catalogItemId, long userId, boolean isSessionId){
410 rajveer 188
		UserContextServiceClient userContextServiceClient = null;
189
		in.shop2020.model.v1.user.UserContextService.Client userClient = null;
190
 
191
		ShoppingCartClient shoppingCartClient = null;
192
		in.shop2020.model.v1.shoppingcart.ShoppingCartService.Client cartClient = null;
193
		long cartId = -1;
194
 
195
		try {
196
			userContextServiceClient = new UserContextServiceClient();
197
			userClient = userContextServiceClient.getClient();
198
 
199
			shoppingCartClient = new ShoppingCartClient();
200
			cartClient = shoppingCartClient.getClient();
416 rajveer 201
 
202
			cartId = cartClient.createCart(userId, isSessionId);
410 rajveer 203
			cartClient.addItemToCart(cartId, catalogItemId, 1);
419 rajveer 204
 
205
			int NumberOfLines = cartClient.getShadowCart(cartId).getLinesSize();
206
			this.session.setAttribute("totalitems", NumberOfLines+"");
207
 
208
 
410 rajveer 209
		} catch (ShoppingCartException e) {
210
			// TODO Auto-generated catch block
211
			e.printStackTrace();
212
		} catch (TException e) {
213
			// TODO Auto-generated catch block
214
			e.printStackTrace();
215
		} catch (Exception e) {
216
			// TODO Auto-generated catch block
217
			e.printStackTrace();
218
		}
219
 
220
		//if user is logged in create  new cart
221
		//if( userClient.getState(userId, false).isIsLoggedIn()){
222
	}
223
 
458 rajveer 224
	public long getNumberOfItems(){
449 rajveer 225
		return userinfo.getTotalItems();
226
	}
227
 
410 rajveer 228
	public String getShoppingCartSnippets()
229
	{
230
		return htmlSnippets.get("SHOPPING_CART");
231
	}
232
 
233
	@Override
234
	public void setParameters(Map<String, String[]> reqmap) {
235
		log.info("setParameters:" + reqmap);
236
 
237
		this.reqparams = reqmap;
238
	}
416 rajveer 239
//	
240
//	@Override
241
//	public void setServletRequest(HttpServletRequest request) {
242
//		this.request = request;
243
//	}
244
//    
410 rajveer 245
}