Subversion Repositories SmartDukaan

Rev

Rev 7306 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.support.controllers;

import java.util.Arrays;
import java.util.List;

import in.shop2020.model.v1.catalog.CatalogServiceException;
import in.shop2020.model.v1.catalog.Item;
import in.shop2020.model.v1.catalog.StorePricing;
import in.shop2020.thrift.clients.CatalogClient;
import in.shop2020.utils.ModelUtils;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.InterceptorRefs;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.thrift.TException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


@InterceptorRefs({
    @InterceptorRef("defaultStack"),
    @InterceptorRef("login")
})
@Results({
    @Result(name="authfail", type="redirectAction", params = {"actionName" , "reports"})
})
public class StoreAdminController implements ServletRequestAware, ServletResponseAware {

        private static Logger logger = LoggerFactory.getLogger(StoreAdminController.class);
        private HttpServletRequest request;
        private HttpServletResponse response;
        private String itemString;
        private String id;
        
        private long itemId;
        private double recommendedPrice;
        private double minPrice;
        private double maxPrice;
        private double minAdvancePrice;
        private boolean activeonstore;
        
        public String index()   {
                return "index";
        }
        
        public String show()    {
                return "index";
        }

        public String create() {
                StorePricing sp = new StorePricing(itemId, recommendedPrice, minPrice, maxPrice, minAdvancePrice);
                try     {
                        CatalogClient csc = new CatalogClient();
                        in.shop2020.model.v1.catalog.CatalogService.Client catalogClient= csc.getClient();
                        catalogClient.updateStorePricing(sp);
                        Item item = getItem(itemId);
                        if(item.isActiveOnStore() != isActiveonstore()){
                                item.setActiveOnStore(isActiveonstore());
                                catalogClient.updateItem(item);
                        }
                } catch (TException e) {
                        logger.error("", e);
                } catch (CatalogServiceException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                return "index";
        }
        
        public List<Item> searchItem(){
                List<Item> items = null;
                if(itemString != null){
                        try{
                                CatalogClient csc = new CatalogClient();
                                in.shop2020.model.v1.catalog.CatalogService.Client catalogClient= csc.getClient();
                                List<String> searchTerms = Arrays.asList(itemString.split(" "));
                                items = catalogClient.searchItemsInRange(searchTerms, 0, 50);
                        }catch (Exception e) {
                                logger.error("", e);
                        }
                }
                return items;
        }
        

        public StorePricing getStorePricing(){
                StorePricing sp = null;
                if(id != null){
                        try{
                                long itemId = Long.parseLong(id);
                                CatalogClient csc = new CatalogClient();
                                in.shop2020.model.v1.catalog.CatalogService.Client catalogClient= csc.getClient();
                                sp = catalogClient.getStorePricing(itemId);
                        }catch (Exception e) {
                                logger.error("", e);
                        }
                }
                return sp;
        }

        public Item getItem(long itemId){
                Item item = null;
                try{
                        CatalogClient csc = new CatalogClient();
                        in.shop2020.model.v1.catalog.CatalogService.Client catalogClient= csc.getClient();
                        item = catalogClient.getItem(itemId);
                }catch (Exception e) {
                        logger.error("", e);
                }
                return item;
        }

        
    public String getServletContextPath() {
        return request.getContextPath();
    }
    
        @Override
        public void setServletRequest(HttpServletRequest request) {
                this.request = request;
        }
        
        @Override
        public void setServletResponse(HttpServletResponse response) {
                this.response = response;
        }
                
        public String getProductNameFromItem(Item item) {
                return ModelUtils.extractProductNameFromItem(item);
        }
        
        public void setItemString(String itemString){
                this.itemString = itemString;
        }
        
        public void setId(String id){
                this.id = id;
        }

        public void setItemId(long itemId) {
                this.itemId = itemId;
        }

        public long getItemId() {
                return itemId;
        }

        public void setRecommendedPrice(double recommendedPrice) {
                this.recommendedPrice = recommendedPrice;
        }

        public double getRecommendedPrice() {
                return recommendedPrice;
        }

        public void setMinPrice(double minPrice) {
                this.minPrice = minPrice;
        }

        public double getMinPrice() {
                return minPrice;
        }

        public void setMaxPrice(double maxPrice) {
                this.maxPrice = maxPrice;
        }

        public double getMaxPrice() {
                return maxPrice;
        }

        public void setMinAdvancePrice(double minAdvancePrice) {
                this.minAdvancePrice = minAdvancePrice;
        }

        public double getMinAdvancePrice() {
                return minAdvancePrice;
        }

        public void setActiveonstore(String activeonstore) {
                if(activeonstore.equals("on")){
                        this.activeonstore = true;
                }else{
                        this.activeonstore = false;
                }
        }

        public boolean isActiveonstore() {
                return activeonstore;
        }

}