Rev 5559 | Rev 5693 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.support.controllers;import in.shop2020.model.v1.order.Attribute;import in.shop2020.model.v1.order.Order;import in.shop2020.model.v1.order.TransactionService.Client;import in.shop2020.model.v1.order.TransactionServiceException;import in.shop2020.thrift.clients.TransactionClient;import java.util.ArrayList;import java.util.Calendar;import java.util.List;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.interceptor.ServletResponseAware;import org.apache.struts2.util.ServletContextAware;import org.apache.thrift.TException;import org.apache.thrift.transport.TTransportException;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class PickupStoreController implements ServletResponseAware, ServletRequestAware, ServletContextAware {private static Logger logger = LoggerFactory.getLogger(PickupStoreController.class);private HttpServletRequest request;private HttpServletResponse response;private ServletContext context;private String storeIdString;private long storeId;private String id;private String error = "";@Overridepublic void setServletRequest(HttpServletRequest req) {this.request = req;}public HttpServletRequest getServletRequest() {return request;}@Overridepublic void setServletResponse(HttpServletResponse res) {this.response = res;}public HttpServletResponse getServletResponse() {return response;}@Overridepublic void setServletContext(ServletContext context) {this.context = context;}public String getServletContextPath() {return context.getContextPath();}public String index(){storeIdString = (String) request.getSession().getAttribute("STORE_ID");if(storeIdString == null){storeIdString = request.getParameter("storeid");if(storeIdString == null){return "authfail";}else{request.getSession().setAttribute("STORE_ID", storeIdString);}}storeId = Long.parseLong(storeIdString);return "index";}public String show(){storeIdString = (String) request.getSession().getAttribute("STORE_ID");if(storeIdString == null){storeIdString = request.getParameter("storeid");if(storeIdString == null){return "authfail";}else{request.getSession().setAttribute("STORE_ID", storeIdString);}}storeId = Long.parseLong(storeIdString);return "show";}// Handles the POST request (Form Submission)public String create() {storeIdString = (String) request.getSession().getAttribute("STORE_ID");if(storeIdString == null){return "authfail";}storeId = Long.parseLong(storeIdString);String orderIdString = request.getParameter("orderid");String action = request.getParameter("action");long orderId = Long.parseLong(orderIdString);logger.info("orderIdString" + orderIdString);if(orderIdString != null){try {Client client = (new TransactionClient()).getClient();if(action.equals("markreceived")){client.markOrderAsReceivedAtStore(Long.parseLong(orderIdString), Calendar.getInstance().getTimeInMillis());}else if(action.equals("markdelivered")){String receiver = request.getParameter("receiver");String secretCode = request.getParameter("secretcode");Order order = client.getOrder(orderId);List<Attribute> attributes = client.getAllAttributesForOrderId(orderId);for(Attribute attribute: attributes){if(attribute.getName().equals("SECRET_CODE")){if(!attribute.getValue().equalsIgnoreCase(secretCode)){error = "Secret code does not match";}}}List<Attribute> newAttributes = new ArrayList<Attribute>();if(order.isCod()){double amount = Double.parseDouble(request.getParameter("amount"));if(order.getTotal_amount() != amount){error = "<br>Amount does not match";}}if(!error.equalsIgnoreCase("")){setId("deliver");return show();}else{if(order.isCod()){String paymentType = request.getParameter("paymenttype");newAttributes.add(new Attribute("PAYMENT_MODE", paymentType));client.setOrderAttributes(orderId, newAttributes);}}client.markOrderAsDelivered(Long.parseLong(orderIdString), Calendar.getInstance().getTimeInMillis(), receiver);}else if(action.equals("markreturned")){String orderIdsString = request.getParameter("orderIds");long providerId = Long.parseLong(request.getParameter("providerID"));List<Long> orderIds = new ArrayList<Long>();for(String orderIdString1: orderIdsString.split(":")){orderIds.add(Long.parseLong(orderIdString1));}client.markOrdersAsReturnedFromStore(providerId, orderIds);}return "index";} catch (TTransportException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (NumberFormatException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (TransactionServiceException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (TException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return "index";}public List<Order> getReceivePendingOrders() throws TException{Client client = (new TransactionClient()).getClient();return client.getReceivePendingOrders(storeId);}public List<Order> getReceivedAtStoreOrders() throws TException{Client client = (new TransactionClient()).getClient();return client.getReceivedAtStoreOrders(storeId);}public void setId(String id) {this.id = id;}public String getId() {return id;}public void setError(String error) {this.error = error;}public String getError() {return error;}public long getStoreId(){return storeId;}}