Subversion Repositories SmartDukaan

Rev

Rev 5729 | Rev 6520 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5729 Rev 6430
Line 2... Line 2...
2
 
2
 
3
import in.shop2020.serving.cache.SnippetCacheWrapper;
3
import in.shop2020.serving.cache.SnippetCacheWrapper;
4
import in.shop2020.serving.cache.EhcacheWrapper.CacheKeys;
4
import in.shop2020.serving.cache.EhcacheWrapper.CacheKeys;
5
import in.shop2020.serving.services.SolrSearchService;
5
import in.shop2020.serving.services.SolrSearchService;
6
import in.shop2020.serving.services.SpecialPageConfigurer;
6
import in.shop2020.serving.services.SpecialPageConfigurer;
-
 
7
import in.shop2020.serving.utils.Utils;
7
 
8
 
8
import java.io.IOException;
9
import java.io.IOException;
9
import java.net.URLEncoder;
10
import java.net.URLEncoder;
10
import java.util.ArrayList;
11
import java.util.ArrayList;
11
import java.util.Arrays;
12
import java.util.Arrays;
Line 27... Line 28...
27
@Result(name = "index", location = "special-page-index.vm")
28
@Result(name = "index", location = "special-page-index.vm")
28
public class SpecialPageController extends BaseController {
29
public class SpecialPageController extends BaseController {
29
    private static final long serialVersionUID = 1L;
30
    private static final long serialVersionUID = 1L;
30
    private static Logger log = Logger.getLogger(Class.class);
31
    private static Logger log = Logger.getLogger(Class.class);
31
 
32
 
32
	private static final String[] facetDefIDs = 
33
/*	private static final String[] facetDefIDs = 
33
	    new String[] {"F_50010","F_50011","F_50002","F_50001",  "F_50006", "F_50007" };
34
	    new String[] {"F_50010","F_50011","F_50002","F_50001",  "F_50006", "F_50007" };
34
 
35
 
35
	private static final String[] facetLabels = 
36
	private static final String[] facetLabels = 
36
	    new String[] {"Category","Sub Category","Price", "Brand", "Data Connectivity", "Camera Resolution" };
37
	    new String[] {"Category","Sub Category","Price", "Brand", "Data Connectivity", "Camera Resolution" };
37
 
38
*/
38
	private List<String> results;
39
	private List<String> results;
39
	private Map<String, String> snippets;
40
	private Map<String, String> snippets;
40
	private Map<String, List<String[]>> facets;
41
	private Map<String, List<String[]>> facets;
41
	private List<String[]> crumbs;
42
	private List<String[]> crumbs;
42
 
43
 
Line 70... Line 71...
70
    	url = "?";
71
    	url = "?";
71
 
72
 
72
    	String urlCrumb = url;
73
    	String urlCrumb = url;
73
    	
74
    	
74
    	this.crumbs = new ArrayList<String[]>();
75
    	this.crumbs = new ArrayList<String[]>();
75
    	List<String> arrList = Arrays.asList(facetDefIDs);
76
    	List<String> arrList = Arrays.asList(Utils.facetDefIDs);
76
    	
77
    	
77
    	if(fqrys!= null){
78
    	if(fqrys!= null){
78
    		for(int i=0; i<fqrys.length; i++) {
79
    		for(int i=0; i<fqrys.length; i++) {
79
        		urlCrumb += "&fq=" + URLEncoder.encode(fqrys[i], "UTF-8");
80
        		urlCrumb += "&fq=" + URLEncoder.encode(fqrys[i], "UTF-8");
80
        		priceUrl += "&fq=" + URLEncoder.encode(fqrys[i], "UTF-8");
81
        		priceUrl += "&fq=" + URLEncoder.encode(fqrys[i], "UTF-8");
81
        		String filterUrl = url;
82
        		String filterUrl = url;
82
        		String facetName = StringUtils.split(fqrys[i], ":")[0];
83
        		String facetName = StringUtils.split(fqrys[i], ":")[0];
83
        		String facetValue = StringUtils.split(fqrys[i], ":")[1];
84
        		String facetValue = StringUtils.split(fqrys[i], ":")[1];
84
        		String facetLabel = facetLabels[arrList.indexOf(facetName)];
85
        		String facetLabel = Utils.facetLabels[arrList.indexOf(facetName)];
85
        		this.specialPageTitle += " | " + facetLabel + " " + facetValue;
86
        		this.specialPageTitle += " | " + facetLabel + " " + facetValue;
86
        		this.facetSelection += facetValue + " ";
87
        		this.facetSelection += facetValue + " ";
87
        		for(int j=0; j<fqrys.length; j++) {
88
        		for(int j=0; j<fqrys.length; j++) {
88
        			if(i==j){
89
        			if(i==j){
89
        				continue;
90
        				continue;
Line 114... Line 115...
114
    		url= url + "&maxPrice=" + this.request.getParameter("maxPrice");
115
    		url= url + "&maxPrice=" + this.request.getParameter("maxPrice");
115
    	}
116
    	}
116
 
117
 
117
    	String sortOrder = "F_50002+asc";
118
    	String sortOrder = "F_50002+asc";
118
    	
119
    	
119
    	SolrSearchService search = new SolrSearchService(query, fqrys, facetDefIDs, (page-1)*windowSize, windowSize, minPrice, maxPrice, 10000, sortOrder, sourceId);
120
    	SolrSearchService search = new SolrSearchService(query, fqrys, Utils.facetDefIDs, (page-1)*windowSize, windowSize, minPrice, maxPrice, 10000, sortOrder, sourceId);
120
    	this.results =  search.getResultMap(); 
121
    	this.results =  search.getResultMap(); 
121
 
122
 
122
    	
123
    	
123
    	this.facets = new LinkedHashMap<String, List<String[]>>();
124
    	this.facets = new LinkedHashMap<String, List<String[]>>();
124
    	String qryString = this.request.getQueryString();
125
    	String qryString = this.request.getQueryString();
125
    	log.info("qryString=" + qryString);
126
    	log.info("qryString=" + qryString);
126
    	
127
    	
127
    	for (int i=0; i<facetDefIDs.length; i++) {
128
    	for (int i=0; i<Utils.facetDefIDs.length; i++) {
128
    		String facetDefID = facetDefIDs[i];
129
    		String facetDefID = Utils.facetDefIDs[i];
129
    		String facetLabel = facetLabels[i];
130
    		String facetLabel = Utils.facetLabels[i];
130
    		Map<String, Integer> facetDetailMap = search.getFacetDetails(facetDefID);
131
    		Map<String, Integer> facetDetailMap = search.getFacetDetails(facetDefID);
131
    		if(facetDetailMap==null)
132
    		if(facetDetailMap==null)
132
    			continue;
133
    			continue;
133
    		List<String[]> values = new ArrayList<String[]>();
134
    		List<String[]> values = new ArrayList<String[]>();
134
    		String drilldownURL = url + "&fq=" + facetDefID + ":";
135
    		String drilldownURL = url + "&fq=" + facetDefID + ":";