Subversion Repositories SmartDukaan

Rev

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