Subversion Repositories SmartDukaan

Rev

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

Rev 10208 Rev 10232
Line 1... Line 1...
1
package in.shop2020.serving.controllers;
1
package in.shop2020.serving.controllers;
2
 
2
 
3
import in.shop2020.model.v1.catalog.Banner;
3
import in.shop2020.model.v1.catalog.Banner;
4
import in.shop2020.model.v1.catalog.BannerMap;
4
import in.shop2020.model.v1.catalog.BannerMap;
5
import in.shop2020.model.v1.catalog.CatalogService.Client;
5
import in.shop2020.model.v1.catalog.CatalogService.Client;
-
 
6
import in.shop2020.serving.cache.EhcacheWrapper;
6
import in.shop2020.serving.interceptors.SourceAware;
7
import in.shop2020.serving.interceptors.SourceAware;
7
import in.shop2020.serving.interceptors.TrackingInterceptor;
8
import in.shop2020.serving.interceptors.TrackingInterceptor;
8
import in.shop2020.serving.interceptors.UserAware;
9
import in.shop2020.serving.interceptors.UserAware;
9
import in.shop2020.serving.interceptors.UserInterceptor;
10
import in.shop2020.serving.interceptors.UserInterceptor;
10
import in.shop2020.serving.services.PageLoaderHandler;
11
import in.shop2020.serving.services.PageLoaderHandler;
Line 22... Line 23...
22
import javax.servlet.http.Cookie;
23
import javax.servlet.http.Cookie;
23
import javax.servlet.http.HttpServletRequest;
24
import javax.servlet.http.HttpServletRequest;
24
import javax.servlet.http.HttpServletResponse;
25
import javax.servlet.http.HttpServletResponse;
25
import javax.servlet.http.HttpSession;
26
import javax.servlet.http.HttpSession;
26
 
27
 
-
 
28
import net.sf.ehcache.CacheManager;
-
 
29
 
27
import org.apache.log4j.Logger;
30
import org.apache.log4j.Logger;
28
import org.apache.struts2.interceptor.ServletRequestAware;
31
import org.apache.struts2.interceptor.ServletRequestAware;
29
import org.apache.struts2.interceptor.ServletResponseAware;
32
import org.apache.struts2.interceptor.ServletResponseAware;
30
import org.apache.thrift.TException;
33
import org.apache.thrift.TException;
31
 
34
 
Line 62... Line 65...
62
	public static Map<String,List<Banner>> activeBanners = null;
65
	public static Map<String,List<Banner>> activeBanners = null;
63
	public static Map<String, List<BannerMap>> allBannersMap = null;
66
	public static Map<String, List<BannerMap>> allBannersMap = null;
64
	public static Map<String, List<BannerMap>> sideBannersMap = null;
67
	public static Map<String, List<BannerMap>> sideBannersMap = null;
65
 
68
 
66
	public void setBanners(){
69
	public void setBanners(){
-
 
70
		EhcacheWrapper<String, Map<String,List<Banner>>> bannerCache = new EhcacheWrapper<String, Map<String,List<Banner>>>(
-
 
71
				EhcacheWrapper.BANNER_CACHE_NAME, CacheManager.create());
-
 
72
		activeBanners = bannerCache.get("banner_key");
67
		if(activeBanners==null){
73
		if (activeBanners!=null) {
-
 
74
			log.info("Returning banners from cache");
-
 
75
			return;
-
 
76
		}
68
			try {
77
		try {
69
				CatalogClient catalogServiceClient = new CatalogClient();
78
			CatalogClient catalogServiceClient = new CatalogClient();
70
				Client client = catalogServiceClient.getClient();
79
			Client client = catalogServiceClient.getClient();
71
				log.info("Populating banner map"); 
80
			log.info("Populating banner map"); 
72
				activeBanners = client.getActiveBanners();
81
			activeBanners = client.getActiveBanners();
73
				if(!activeBanners.isEmpty()){
82
			if(!activeBanners.isEmpty()){
74
					allBannersMap = new HashMap<String, List<BannerMap>>();
83
				allBannersMap = new HashMap<String, List<BannerMap>>();
75
					sideBannersMap = new HashMap<String, List<BannerMap>>();
84
				sideBannersMap = new HashMap<String, List<BannerMap>>();
76
					for (Map.Entry<String, List<Banner>> entry :activeBanners.entrySet()){
85
				for (Map.Entry<String, List<Banner>> entry :activeBanners.entrySet()){
77
						for (Banner banner : entry.getValue()){
86
					for (Banner banner : entry.getValue()){
78
							if(banner.getBannerType().getValue()==1){
87
						if(banner.getBannerType().getValue()==1){
79
								allBannersMap.put(banner.getBannerName(), client.getBannerMapDetails(banner.getBannerName(),banner.getBannerType()));
88
							allBannersMap.put(banner.getBannerName(), client.getBannerMapDetails(banner.getBannerName(),banner.getBannerType()));
80
							}
89
						}
81
							else{
90
						else{
82
								sideBannersMap.put(banner.getBannerName(), client.getBannerMapDetails(banner.getBannerName(),banner.getBannerType()));
91
							sideBannersMap.put(banner.getBannerName(), client.getBannerMapDetails(banner.getBannerName(),banner.getBannerType()));
83
							}
-
 
84
						}
92
						}
85
					}
93
					}
86
				}
94
				}
87
			}
95
			}
-
 
96
			bannerCache.put("banner_key", activeBanners);
-
 
97
			log.info("Populating cache again for banners");
-
 
98
		}
88
			catch (TException e) {
99
		catch (TException e) {
89
				log.error("Unable to fetch banners ",e);
100
			log.error("Unable to fetch banners ",e);
90
			}
-
 
91
		}
101
		}
92
	}
102
	}
93
 
103
 
-
 
104
 
94
	public List<Banner> getActiveBanners() {
105
	public List<Banner> getActiveBanners() {
95
		setBanners();
-
 
96
		String uri = request.getRequestURI();
106
		String uri = request.getRequestURI();
97
		if (uri.equalsIgnoreCase("/")){
107
		if (uri.equalsIgnoreCase("/")){
98
			return activeBanners.get(uri);
108
			return activeBanners.get(uri);
99
		}
109
		}
100
		for (String key : activeBanners.keySet()) {
110
		for (String key : activeBanners.keySet()) {
Line 109... Line 119...
109
		}
119
		}
110
		return null;
120
		return null;
111
	}
121
	}
112
 
122
 
113
	public List<Banner> getActiveBanners(String uri) {
123
	public List<Banner> getActiveBanners(String uri) {
114
		setBanners();
-
 
115
		return activeBanners.get(uri);
124
		return activeBanners.get(uri);
116
	}
125
	}
117
 
126
 
118
	public List<BannerMap> getbannermapdetails(String bannerName) {
127
	public List<BannerMap> getbannermapdetails(String bannerName) {
119
		return allBannersMap.get(bannerName);
128
		return allBannersMap.get(bannerName);