Subversion Repositories SmartDukaan

Rev

Rev 1689 | Rev 2149 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
317 ashish 1
/**
2
 * 
3
 */
4
package in.shop2020.serving.controllers;
5
 
650 rajveer 6
 
1957 vikas 7
import in.shop2020.serving.utils.DataLogger;
8
import in.shop2020.serving.utils.DataLogger.Event;
555 chandransh 9
import in.shop2020.thrift.clients.UserContextServiceClient;
10
import in.shop2020.model.v1.user.UserContextService.Client;
375 ashish 11
 
317 ashish 12
import java.io.IOException;
1258 varun.gupt 13
import java.net.URLEncoder;
375 ashish 14
import java.util.Map;
507 rajveer 15
import java.util.StringTokenizer;
317 ashish 16
 
1957 vikas 17
import org.apache.commons.lang.StringUtils;
832 rajveer 18
import org.apache.log4j.Logger;
507 rajveer 19
import org.apache.struts2.convention.annotation.Action;
20
import org.apache.struts2.convention.annotation.Actions;
974 vikas 21
import org.apache.struts2.convention.annotation.Result;
1364 varun.gupt 22
import org.apache.velocity.VelocityContext;
317 ashish 23
 
24
/**
25
 * 
650 rajveer 26
 * @author rajveer
317 ashish 27
 *
28
 */
650 rajveer 29
 
974 vikas 30
@Result(name = "show", location = "entity-show.vm")
650 rajveer 31
public class EntityController extends BaseController {
32
 
33
	private static final long serialVersionUID = 1L;
34
 
1957 vikas 35
	private static Logger log = Logger.getLogger(Class.class);
36
	private static Logger dataLog = DataLogger.getLogger();
317 ashish 37
	/**
38
	 * 
39
	 */
40
	private String id;
620 rajveer 41
	private long productId;
375 ashish 42
 
43
	public EntityController(){
44
		super();
45
	}
507 rajveer 46
 
974 vikas 47
	// GET /*/1000001
507 rajveer 48
	@Actions({
974 vikas 49
		@Action("/mobile-phones"),
1005 vikas 50
		@Action("/mobile-accessories"),
51
		@Action("/entity")
507 rajveer 52
	})
650 rajveer 53
    public String show() throws SecurityException, IOException {
317 ashish 54
    	log.info("id=" + id);
637 rajveer 55
 
1197 varun.gupt 56
    	String pageTitle = pageLoader.getPageTitleHtml(productId);
57
 
58
    	//Extracting Product name from Page Title
1689 rajveer 59
    	String currentUrl = request.getRequestURL().toString();
1197 varun.gupt 60
 
61
    	String[] items = pageTitle.split("\\|");
1269 varun.gupt 62
    	String productName = items[0] != null ? items[0].trim() : null;
1689 rajveer 63
    	String rootUrl = currentUrl.split("/")[2];
64
    	if(!currentUrl.startsWith("http://www.")){
65
    		currentUrl = currentUrl.replace("http://", "http://www.");
66
    	}
67
    	String productUrlEncoded = URLEncoder.encode(currentUrl, "UTF-8");
1197 varun.gupt 68
 
650 rajveer 69
    	htmlSnippets.put("PRODUCT_SUMMARY", pageLoader.getProductSummaryHtml(productId));
1258 varun.gupt 70
    	htmlSnippets.put("PRODUCT_ID", productId + "");
71
    	htmlSnippets.put("PRODUCT_NAME", productName);
1689 rajveer 72
    	htmlSnippets.put("PRODUCT_URL", currentUrl);
1364 varun.gupt 73
    	htmlSnippets.put("PRODUCT_URL_ENCODED", productUrlEncoded);
1689 rajveer 74
    	htmlSnippets.put("ROOT_URL", "http://www." + rootUrl);
1364 varun.gupt 75
		htmlSnippets.put("SOCIAL_UTILS", getSocialUtilsHtml(productId, productName, productUrlEncoded));
620 rajveer 76
		htmlSnippets.put("SLIDE_GUIDE", pageLoader.getSlideGuideHtml(productId));
1269 varun.gupt 77
		htmlSnippets.put("PAGE_TITLE", pageTitle.trim());
78
		htmlSnippets.put("PAGE_METADESC", pageLoader.getPageMetaDescriptionHtml(productId).trim());
79
		htmlSnippets.put("PAGE_METAKEYWORDS", pageLoader.getPageMetaKeywordsHtml(productId).trim());
620 rajveer 80
 
650 rajveer 81
		try {
555 chandransh 82
			UserContextServiceClient userServiceClient = new UserContextServiceClient();
83
			Client client = userServiceClient.getClient();
773 rajveer 84
			long itemId = Long.parseLong(id);
85
			long userId = userinfo.getUserId();
1511 rajveer 86
			if(userId != -1){
87
				client.updateBrowseHistory(userId, itemId);
88
			}
650 rajveer 89
 
449 rajveer 90
		} catch (Exception e) {
91
			// TODO Auto-generated catch block
92
			e.printStackTrace();
93
		}
94
 
1957 vikas 95
		dataLog.info(StringUtils.join(
96
                new String[] { Event.PRODUCT_VIEW.name(),
97
                        userinfo.getEmail(),
98
                        productName }, ", "));
650 rajveer 99
    	return "show";
317 ashish 100
    }
101
 
102
    /**
103
     * 
104
     * @param id
105
     */
106
    public void setId(String id) {
507 rajveer 107
    	StringTokenizer tokenizer = new StringTokenizer(id,"-");
108
    	while(tokenizer.hasMoreTokens()){
109
    		this.id = tokenizer.nextToken();
110
    	}
974 vikas 111
    	this.productId = Long.parseLong(this.id);
317 ashish 112
    }
113
 
387 rajveer 114
	public Map<String,String> getHtmlSnippets(){
388 rajveer 115
		System.out.println(" getHtmlSnippets  is called");
387 rajveer 116
		return htmlSnippets;
375 ashish 117
	}
388 rajveer 118
 
449 rajveer 119
	public String getSlideGuideSnippet(){
388 rajveer 120
		return htmlSnippets.get("SLIDE_GUIDE");
121
	}
122
 
449 rajveer 123
	public String getProductSummarySnippet(){
124
		return htmlSnippets.get("PRODUCT_SUMMARY");
125
	}
126
 
974 vikas 127
	public String getPageTitleSnippet(){
128
		return htmlSnippets.get("PAGE_TITLE");
129
	}
130
 
131
	public String getPageMetaDescSnippet(){
132
		return htmlSnippets.get("PAGE_METADESC");
133
	}
134
 
135
	public String getPageMetaKeywordsSnippet(){
136
		return htmlSnippets.get("PAGE_METAKEYWORDS");
137
	}
138
 
449 rajveer 139
	public String getSocialUtilsSnippet(){
140
		return htmlSnippets.get("SOCIAL_UTILS"); 
141
	}
142
 
143
	public String getLocatorSnippet(){
144
		return htmlSnippets.get("LOCATOR");
145
	}
146
 
147
	public String getRecommendationsSnippet(){
148
		return htmlSnippets.get("RECOMMENDATIONS");
149
	}
650 rajveer 150
 
449 rajveer 151
	public String getSimilarProductsSnippet(){
152
		return htmlSnippets.get("SIMILAR_PRODUCTS");
153
	}
650 rajveer 154
 
449 rajveer 155
	public String getAccessoriesSnippet(){
156
		return htmlSnippets.get("ACCESSORIES");
157
	}
158
 
650 rajveer 159
	public String getReviewsSnippet(){
160
		return htmlSnippets.get("REVIEWS");
449 rajveer 161
	}
162
 
1197 varun.gupt 163
	public String getProductName()	{
164
		return htmlSnippets.get("PRODUCT_NAME");
165
	}
1258 varun.gupt 166
 
167
	public String getProductId()	{
168
		return htmlSnippets.get("PRODUCT_ID");
169
	}
170
 
171
	public String getProductUrl()	{
172
		return htmlSnippets.get("PRODUCT_URL");
173
	}
1364 varun.gupt 174
 
175
	public String getRootUrl()	{
176
		return htmlSnippets.get("ROOT_URL");
177
	}
178
 
179
	private String getSocialUtilsHtml(long productId, String productName, String productEncodedUrl) {
180
		String htmlString = "";
181
		VelocityContext context = new VelocityContext();
182
 
183
		String templateFile = "templates/socialutils.vm";
184
 
185
		context.put("PRODUCT_ID", productId + "");
186
		context.put("PRODUCT_NAME", productName);
187
		context.put("PRODUCT_URL_ENCODED", productEncodedUrl);
188
 
189
		htmlString = pageLoader.getHtmlFromVelocity(templateFile, context);
190
		return htmlString;
191
	}
1197 varun.gupt 192
}