Rev 517 | Blame | Last modification | View Log | RSS feed
package in.shop2020.serving.controllers;import in.shop2020.model.v1.shoppingcart.ShoppingCartException;import in.shop2020.serving.controllers.BaseController;import in.shop2020.serving.pages.PageContentKeys;import in.shop2020.serving.pages.PageEnum;import in.shop2020.serving.pages.PageManager;import in.shop2020.serving.utils.Utils;import in.shop2020.thrift.clients.ShoppingCartClient;import in.shop2020.thrift.clients.UserContextServiceClient;import java.util.*;import org.apache.juli.logging.Log;import org.apache.juli.logging.LogFactory;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;import org.apache.struts2.interceptor.ParameterAware;import org.apache.struts2.rest.DefaultHttpHeaders;import org.apache.struts2.rest.HttpHeaders;import org.apache.thrift.TException;public class CartController extends BaseController implements ParameterAware{private static final long serialVersionUID = 1L;private static Log log = LogFactory.getLog(CartController.class);Map<String, String[]> reqparams = null;private Map<String,String> htmlSnippets;private PageManager pageManager = null;public CartController(){super();pageManager = PageManager.getPageManager();}// GET /cartpublic HttpHeaders index() {long userId = 0;boolean isSessionId = true;Map<PageContentKeys, String> params = new HashMap<PageContentKeys, String>();if(userinfo.isLoggedIn()){userId = userinfo.getUserId();isSessionId = false;}else{userId = userinfo.getSessionId();isSessionId = true;}params.put(PageContentKeys.CUSTOMER_ID, userId+"");params.put(PageContentKeys.IS_SESSION_ID, isSessionId+"");params.put(PageContentKeys.CART_ID, userinfo.getCartId()+"");params.put(PageContentKeys.ITEM_COUNT, userinfo.getTotalItems()+"");params.put(PageContentKeys.USER_NAME, userinfo.getNameOfUser());htmlSnippets = PageManager.getPageManager().getPageContents(PageEnum.SHOPPING_CART_PAGE, params);return new DefaultHttpHeaders("index").disableCaching();}// POST /entitypublic String create() {log.info("CartController.create");printParams();long userId = 0;boolean isSessionId = true;log.info("item id is " + this.reqparams.get("productid"));String itemIds = "1000008_1000005";if(this.reqparams.get("productid") != null){itemIds = this.reqparams.get("productid")[0];}// log.info("list of item ids is " + this.request.getParameter("productid"));// String itemIds = this.request.getParameter("productid");if(userinfo.isLoggedIn()){userId = userinfo.getUserId();isSessionId = false;}else{userId = userinfo.getSessionId();isSessionId = true;}long cartId = 0;StringTokenizer tokenizer = new StringTokenizer(itemIds,"_");int numberOfItems = tokenizer.countTokens();while(tokenizer.hasMoreTokens()){long itemId = Long.parseLong(tokenizer.nextToken());//cartId = Utils.addItemToCart(itemId, userId, isSessionId);try {ShoppingCartClient shoppingCartClient = new ShoppingCartClient();in.shop2020.model.v1.shoppingcart.ShoppingCartService.Client cartClient = shoppingCartClient.getClient();cartId = cartClient.createCart(userId, isSessionId);cartClient.addItemToCart(cartId, itemId, 1);} catch (ShoppingCartException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (TException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}//long cartId = Utils.addItemToCart(Long.parseLong(itemId), userId, isSessionId);userinfo.setCartId(cartId);userinfo.setTotalItems(Utils.getNumberOfItemsInCart(cartId) );this.session.setAttribute("userinfo", userinfo);return "success";}// DELETE /entitypublic String destroy() {log.info("CartController.destroy");printParams();log.info("item id is " + this.request.getParameter("productid"));String itemIdString = this.request.getParameter("productid");long itemId = Long.parseLong(itemIdString);if(userinfo.getCartId() == -1){log.info("Cart does not exist. Nothing to delete.");}else{if(Utils.deleteItemFromCart(userinfo.getCartId(), itemId, userinfo.getUserId(), userinfo.isSessionId())){userinfo.setTotalItems(userinfo.getTotalItems() - 1 );setUserSessionInfo();return "delsuccess";}}return "delfailure";}// DELETE /entitypublic String update() {log.info("CartController.update");printParams();log.info("item id is " + this.request.getParameter("productid"));log.info("item id is " + this.request.getParameter("quantity"));String itemIdString = this.request.getParameter("productid");String quantityString = this.request.getParameter("quantity");long itemId = Long.parseLong(itemIdString);long quantity = Long.parseLong(quantityString);if(quantity <= 0){log.info("Not valid item quantity. Unable to change item quantity.");}else{if(Utils.updateItemQuantityInCart(userinfo.getCartId(), itemId, quantity)){return "delsuccess";}}return "delfailure";}public void printParams(){for(String param : reqparams.keySet()) {log.info("param name is " + param);log.info("param first is " + reqparams.get(param)[0]);}log.info(this.reqparams);}@Overridepublic void setParameters(Map<String, String[]> reqmap) {log.info("setParameters:" + reqmap);this.reqparams = reqmap;}public String getHeaderSnippet(){return htmlSnippets.get("HEADER");}public String getMainMenuSnippet(){return htmlSnippets.get("MAIN_MENU");}public String getSearchBarSnippet(){return htmlSnippets.get("SEARCH_BAR");}public String getCustomerServiceSnippet(){return htmlSnippets.get("CUSTOMER_SERVICE");}public String getCartHeaderSnippet(){return htmlSnippets.get("CART_HEADER");}public String getCartDetailsSnippet(){return htmlSnippets.get("CART_DETAILS");}public String getMyResearchSnippet(){return htmlSnippets.get("MY_RESEARCH");}public String getFooterSnippet(){return htmlSnippets.get("FOOTER");}public String getJsFileSnippet(){return htmlSnippets.get("JS_FILES");}public String getCssFileSnippet(){return htmlSnippets.get("CSS_FILES");}public long getNumberOfItems(){return userinfo.getTotalItems();}}/*// GET /cartpublic HttpHeaders index() {changed on 18 augustCookie loginCookie = new Cookie("userId", "Rajveer");Map cookiesMap = new HashMap();cookiesMap.put("USER_ID", loginCookie);setCookiesMap(cookiesMap);log.info( "Cookies map is " + this.getCookiesMap());log.info("CartController.index");Map<PageContentKeys, String> params = new HashMap<PageContentKeys, String>();long userId = 0;boolean isSessionId = true;//if(this.session.getAttribute("loggedin")!=null){if(this.session.getAttribute("loggedin").toString().equals("true")){userId = Long.parseLong(this.session.getAttribute("userid").toString());isSessionId = false;}else{userId = Long.parseLong(this.session.getAttribute("userid").toString());isSessionId = true;}// }else{// System.out.println("No User is logged in. Redirect to login page.");// return new DefaultHttpHeaders("fatal");//// }params.put(PageContentKeys.CUSTOMER_ID, userId+"");params.put(PageContentKeys.IS_SESSION_ID, isSessionId+"");long userId = 0;boolean isSessionId = true;Map<PageContentKeys, String> params = new HashMap<PageContentKeys, String>();if(userinfo.isLoggedIn()){userId = userinfo.getUserId();isSessionId = false;}else{userId = userinfo.getSessionId();isSessionId = true;}params.put(PageContentKeys.CUSTOMER_ID, userId+"");params.put(PageContentKeys.IS_SESSION_ID, isSessionId+"");htmlSnippets = PageManager.getPageManager().getPageContents(PageEnum.SHOPPING_CART_PAGE, params);return new DefaultHttpHeaders("index").disableCaching();}*/// POST /entity/*public String create() {log.info("CartController.create");printParams();if(getCookiesMap() != null){Cookie loginCookie = (Cookie)getCookiesMap().get("USER_ID");log.info("login cookie name is " + loginCookie.getName() );log.info("login cookie value is " + loginCookie.getValue());}log.info("item id is " + this.reqparams.get("item_id"));itemId = this.reqparams.get("item_id")[0];addItemToCart(itemId);long userId = 0;boolean isSessionId = true;if(this.session.getAttribute("loggedin").toString().equals("true")){userId = Long.parseLong(this.session.getAttribute("userid").toString());isSessionId = false;}else{userId = Long.parseLong(this.session.getAttribute("userid").toString());isSessionId = true;}addItemToCart(Long.parseLong(itemId), userId, isSessionId);// Add data to the cartlong userId = 0;boolean isSessionId = true;log.info("item id is " + this.reqparams.get("productid"));String itemIds = "1000008_1000005";if(this.reqparams.get("productid") != null){itemIds = this.reqparams.get("productid")[0];}// log.info("list of item ids is " + this.request.getParameter("productid"));// String itemIds = this.request.getParameter("productid");if(userinfo.isLoggedIn()){userId = userinfo.getUserId();isSessionId = false;}else{userId = userinfo.getSessionId();isSessionId = true;}long cartId = 0;StringTokenizer tokenizer = new StringTokenizer(itemIds,"_");int numberOfItems = tokenizer.countTokens();while(tokenizer.hasMoreTokens()){long itemId = Long.parseLong(tokenizer.nextToken());cartId = Utils.addItemToCart(itemId, userId, isSessionId);}//long cartId = Utils.addItemToCart(Long.parseLong(itemId), userId, isSessionId);userinfo.setCartId(cartId);userinfo.setTotalItems(Utils.getNumberOfItemsInCart(cartId) );this.session.setAttribute("userinfo", userinfo);return "success";}public void printParams(){for(String param : reqparams.keySet()) {log.info("param name is " + param);log.info("param first is " + reqparams.get(param)[0]);}log.info(this.reqparams);}private boolean addItemToCart(String itemId){log.info("Session Id is " + request.getSession().getId());log.info("Item Id is " + itemId);return true;}private void addItemToCart(long catalogItemId, long userId, boolean isSessionId){UserContextServiceClient userContextServiceClient = null;in.shop2020.model.v1.user.UserContextService.Client userClient = null;ShoppingCartClient shoppingCartClient = null;in.shop2020.model.v1.shoppingcart.ShoppingCartService.Client cartClient = null;long cartId = -1;try {userContextServiceClient = new UserContextServiceClient();userClient = userContextServiceClient.getClient();shoppingCartClient = new ShoppingCartClient();cartClient = shoppingCartClient.getClient();cartId = cartClient.createCart(userId, isSessionId);cartClient.addItemToCart(cartId, catalogItemId, 1);int NumberOfLines = cartClient.getShadowCart(cartId).getLinesSize();this.session.setAttribute("totalitems", NumberOfLines+"");} catch (ShoppingCartException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (TException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}//if user is logged in create new cart//if( userClient.getState(userId, false).isIsLoggedIn()){}public long getNumberOfItems(){return userinfo.getTotalItems();}public String getShoppingCartSnippets(){return htmlSnippets.get("SHOPPING_CART");}@Overridepublic void setParameters(Map<String, String[]> reqmap) {log.info("setParameters:" + reqmap);this.reqparams = reqmap;}*///// @Override// public void setServletRequest(HttpServletRequest request) {// this.request = request;// }//