Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
6848 kshitij.so 1
package in.shop2020.serving.controllers;
2
 
3
import java.io.File;
8578 kshitij.so 4
import java.io.IOException;
5
import java.util.ArrayList;
6
import java.util.Calendar;
7
import java.util.GregorianCalendar;
6848 kshitij.so 8
import java.util.List;
9
 
10
import org.apache.log4j.Logger;
11
import org.apache.struts2.convention.annotation.Result;
12
import org.apache.struts2.convention.annotation.Results;
13
import javax.servlet.http.HttpServletRequest;
14
import org.apache.commons.io.FileUtils;
15
import org.apache.commons.lang.xwork.StringUtils;
8578 kshitij.so 16
 
17
import in.shop2020.config.ConfigException;
6848 kshitij.so 18
import in.shop2020.model.v1.catalog.Banner;
19
import in.shop2020.model.v1.catalog.BannerMap;
8578 kshitij.so 20
import in.shop2020.model.v1.catalog.BannerUriMapping;
21
import in.shop2020.model.v1.catalog.Campaign;
6848 kshitij.so 22
import in.shop2020.model.v1.catalog.CatalogService.Client;
23
import in.shop2020.serving.services.ScpService;
24
import in.shop2020.thrift.clients.CatalogClient;
25
import org.apache.thrift.TException;
26
import org.apache.thrift.transport.TTransportException;
27
 
28
 
29
@SuppressWarnings("serial")
8582 kshitij.so 30
 
6848 kshitij.so 31
@Results({
8578 kshitij.so 32
	@Result(name = "redirect", location = "${url}", type = "redirect"),
33
	@Result(name = "newCampaign", location = "campaign-editNew.vm"),
8582 kshitij.so 34
	@Result(name = "campaignEdit", location = "campaignEdit.vm")
8578 kshitij.so 35
})
8582 kshitij.so 36
 
8578 kshitij.so 37
public class UserImageController extends BaseController {
6848 kshitij.so 38
	private static Logger log = Logger.getLogger(Class.class);
8578 kshitij.so 39
	private File userImage;
40
	private String filePath;
41
	private String userImageContentType;
42
	private String userImageFileName;
43
	private String url;
44
	private HttpServletRequest servletRequest;
45
	private String[] status;
46
	private String bannerName;
47
	private String link;
48
	private String priority;
49
	private String hasMap;
50
	private String action;
51
	private String[] mapLink;
52
	private String[] mapCoordinates;
53
	private String[] uri;
54
	private String id;
55
	private String newsletterName;
56
	private String imageName;
57
	private String campaignId;
58
	public String create() {
6848 kshitij.so 59
		try {
8578 kshitij.so 60
			filePath = servletRequest.getSession().getServletContext().getRealPath("/images/banners/");
61
			setUrl("/user-image");
62
			String imageName = null;
63
			if (StringUtils.isNotEmpty(userImageFileName)) {
64
				imageName = getImageName();
65
				File fileToCreate = new File(filePath, imageName); 
66
				FileUtils.copyFile(this.userImage, fileToCreate);
67
				try {
68
					ScpService scp = new ScpService();
69
					scp.scpFile("/var/lib/tomcat6/webapps/ROOT/images/banners/"+imageName, filePath+"/"+imageName);
70
				} catch (Exception e) {
71
					log.error("Scp To Servers Failed",e);
72
					addActionError("Image Failed To Upload");
73
					return "redirect";
74
				}
75
			}
76
			else{
77
				Client CatalogClient = new CatalogClient().getClient();
78
				imageName =CatalogClient.getBannerDetails(action).getImageName(); 
79
			}
80
			if (StringUtils.isEmpty(link)) {
81
				log.info("Empty Link Field");
82
				this.link="#";
83
			}
84
			Banner banner = new Banner();
85
			banner.setBannerName(bannerName);
86
			banner.setImageName(imageName);
87
			banner.setLink(link);
88
			banner.setPriority(Long.parseLong(priority));
89
			banner.setHasMap(Boolean.parseBoolean(hasMap));
90
			if (StringUtils.isNotEmpty(action)) {
91
				deleteBannerAndMap(action);
92
			}
93
			List<BannerMap> bannerMaps = new ArrayList<BannerMap>();
94
			if(banner.isHasMap()) {
95
				for(int i=0;i<mapLink.length;i++){
96
					log.info("maplink"+mapLink[i]);
97
					log.info("maplink"+mapCoordinates[i]);
98
					if(mapLink[i].isEmpty()) {
99
						continue;
100
					}
101
					BannerMap bannerMap = new BannerMap();
102
					bannerMap.setBannerName(bannerName);
103
					bannerMap.setCoordinates(mapCoordinates[i]);
104
					bannerMap.setMapLink(mapLink[i]);
105
					bannerMaps.add(bannerMap);
106
				}	
107
			}
108
			Client CatalogClient = new CatalogClient().getClient();
109
			CatalogClient.addBanner(banner);
110
			if(bannerMaps.size()>0){
111
				addBannerMap(bannerMaps);
112
			}
113
			List<BannerUriMapping> bannerUriMappings = new ArrayList<BannerUriMapping>();
114
			for (int i=0;i<uri.length;i++){
115
				if(uri[i].isEmpty()) {
116
					continue;
117
				}
118
				BannerUriMapping bannerUriMapping = new BannerUriMapping();
119
				bannerUriMapping.setBannerName(bannerName);
120
				bannerUriMapping.setUri(uri[i]);
121
				bannerUriMapping.setIsActive(Boolean.valueOf(status[i]));
122
				bannerUriMappings.add(bannerUriMapping);
123
			}
124
			addBannerUriMapping(bannerUriMappings);
125
		} catch (Exception e) {   
126
			log.error("Error while uploading/changing map",e);
127
			addActionError("Failed To Do Changes");
128
			return "redirect";
129
		}
130
		addActionMessage("Changes Applied Successfully");
131
		return "index";
132
	}
133
 
134
	public String createNewsletter() throws IOException{
135
		filePath = servletRequest.getSession().getServletContext().getRealPath("/images/campaignImages/");
136
		if (StringUtils.isNotEmpty(userImageFileName)) {
137
			File fileToCreate = new File(filePath, imageName); 
138
			FileUtils.copyFile(this.userImage, fileToCreate);
139
			ScpService scp = new ScpService();
140
			try {
141
				scp.scpFile("/var/lib/tomcat6/webapps/ROOT/images/campaignImages/"+imageName, filePath+"/"+imageName);
142
			} catch (ConfigException e) {
143
				log.info("Unable to do scp "+e);
144
				addActionError("Failed To Do Changes");
145
				return "campaign-editNew";
146
			}
147
			Campaign campaign = new Campaign();
148
			campaign.setCampaignName(this.newsletterName);
149
			campaign.setImageName(imageName);
150
			Client CatalogClient;
151
			try {
152
				CatalogClient = new CatalogClient().getClient();
153
				CatalogClient.addCampaign(campaign);
154
			} catch (Exception e) {
155
				log.info("Unable to add campaign "+e);
156
				addActionError("Failed To Do Changes");
157
				return "campaign-editNew";
158
			}
159
		}
160
		addActionMessage("Changes Applied Successfully");
161
		return "campaign-editNew";
162
	}
163
 
164
	public void addBannerUriMapping(List<BannerUriMapping> bannerUriMappings) throws TException{
165
		Client CatalogClient = new CatalogClient().getClient();
166
		CatalogClient.addBannerUri(bannerUriMappings);
167
	}
168
 
169
	public void addBannerMap(List<BannerMap> bannerMaps) throws TException{
170
		Client CatalogClient = new CatalogClient().getClient();
171
		CatalogClient.addBannerMap(bannerMaps);
172
	}
173
 
174
	public List<Banner> getAllBanners() {
175
		Client CatalogClient = null;
176
		List<Banner> banners = null;
177
		try {
6848 kshitij.so 178
			CatalogClient = new CatalogClient().getClient();
8578 kshitij.so 179
			banners = CatalogClient.getAllBanners();
6848 kshitij.so 180
		} catch (TTransportException e) {
8578 kshitij.so 181
			log.info("Unable to fetch all banners "+e);
182
		} catch (TException ex) {
183
			log.info("Unable to fetch all banners "+ex);
6848 kshitij.so 184
		}
8578 kshitij.so 185
		return banners;	
186
	}
187
 
188
	public String destroy() throws TException {
189
		Client CatalogClient = new CatalogClient().getClient();
190
		CatalogClient.deleteBanner(bannerName);
191
		setUrl("/user-image");
192
		return "redirect";
193
 
194
	}
195
 
196
	public Banner getUpdates() throws TException {
197
		Client CatalogClient = null;
6848 kshitij.so 198
		CatalogClient = new CatalogClient().getClient();
199
		return CatalogClient.getBannerDetails(bannerName);
8578 kshitij.so 200
	} 
201
 
202
	public Banner getUpdates(String name) throws TException {
203
		Client CatalogClient = null;
6848 kshitij.so 204
		CatalogClient = new CatalogClient().getClient();
205
		return CatalogClient.getBannerDetails(name);
8578 kshitij.so 206
	} 
6848 kshitij.so 207
 
8578 kshitij.so 208
	public List<BannerMap> getbannermapdetails() throws TException {
209
		Client CatalogClient = null;
210
		CatalogClient = new CatalogClient().getClient();
211
		return CatalogClient.getBannerMapDetails(bannerName);
212
	}
6848 kshitij.so 213
 
8578 kshitij.so 214
	public String getImageName() {
215
		Calendar cal=GregorianCalendar.getInstance();
216
		return String.valueOf(cal.getTimeInMillis())+".jpg";
217
	}
218
 
219
	public List<BannerUriMapping> getUriMapping(String bannerName) throws TException{
220
		Client CatalogClient = new CatalogClient().getClient();
221
		return CatalogClient.getUriMapping(bannerName);
222
	}
223
 
224
	public void deleteBannerAndMap(String bannerName) throws TException{
225
		Client CatalogClient = new CatalogClient().getClient();
226
		CatalogClient.deleteBanner(bannerName);
227
	}
228
 
229
	public List<BannerUriMapping> getUriMapping() throws TException{
230
		Client CatalogClient = new CatalogClient().getClient();
231
		return CatalogClient.getUriMapping(bannerName);
232
	}
233
 
234
	public List<Campaign> getCampaigns(String campaignName) throws TException{
235
		Client CatalogClient = new CatalogClient().getClient();
236
		return CatalogClient.getCampaigns(campaignName);
237
	}
238
 
239
	public void deleteCampaign() throws NumberFormatException, TException{
240
		Client CatalogClient = new CatalogClient().getClient();
241
		CatalogClient.deleteCampaign(Long.valueOf(campaignId));
242
	}
243
 
244
	public List<String> getAllCampaigns() throws TException{
245
		Client CatalogClient = new CatalogClient().getClient();
246
		log.info(CatalogClient.getAllCampaigns());
247
		return CatalogClient.getAllCampaigns();
248
	}
249
 
250
	public String index() {
251
		return "index";
252
	}
253
 
254
	public String show() {
255
		if (StringUtils.equals(id, "newCampaign")){
256
			log.info("Returing camapign edit new");
257
			return "newCampaign";
258
		}
259
		return "show";
260
	}
261
 
262
	public String editNewsletter(){
263
		return "campaignEdit";
264
	}
265
 
266
	public String edit() {
267
		return "edit";
268
	}
269
 
270
 
271
	public String editNew() {
272
		return "editNew";
273
	}
274
 
275
	public File getUserImage() {
276
		return userImage;
277
	}
278
 
279
	public void setUserImage(File userImage) {
280
		log.info("set file"+userImage.toString());
281
		this.userImage = userImage;
282
	}
283
 
284
	public String getUserImageContentType() {
285
		return userImageContentType;
286
	}
287
 
288
	public void setUserImageContentType(String userImageContentType) {
289
		this.userImageContentType = userImageContentType;
290
	}
291
 
292
	public String getUserImageFileName() {
293
		return userImageFileName;
294
	}
295
 
296
	public void setUserImageFileName(String userImageFileName) {
297
		log.info("userimage file name set"+userImageFileName);
298
		this.userImageFileName = userImageFileName;
299
	}
300
 
301
	public void setUrl(String url) {
6848 kshitij.so 302
		this.url = url;
303
	}
304
 
305
	public String getUrl() {
306
		return url;
307
	}
8578 kshitij.so 308
 
309
	public void setIsActive(String[] isActive) {
6848 kshitij.so 310
		this.status=isActive;
311
	}
8578 kshitij.so 312
 
313
	public String[] getIsActive() {
6848 kshitij.so 314
		return status;
315
	}
8578 kshitij.so 316
 
317
 
6848 kshitij.so 318
	public void setBannerName(String bannerName) {
319
		this.bannerName=bannerName;
320
	}
8578 kshitij.so 321
 
6848 kshitij.so 322
	public String getBannerName() {
323
		return bannerName;
324
	}
8578 kshitij.so 325
 
6848 kshitij.so 326
	public void setLink(String link) {
327
		this.link=link;
328
	}
8578 kshitij.so 329
 
6848 kshitij.so 330
	public String getLink() {
331
		return link;
332
	}
8578 kshitij.so 333
 
6848 kshitij.so 334
	public void setAction(String action) {
335
		this.action=action;
336
	}
8578 kshitij.so 337
 
6848 kshitij.so 338
	public String getAction() {
339
		return action;
340
	}
8578 kshitij.so 341
 
6848 kshitij.so 342
	public void setPriority(String priority) {
343
		this.priority=priority;
344
	}
8578 kshitij.so 345
 
6848 kshitij.so 346
	public String getPriority() {
347
		return priority;
348
	}
8578 kshitij.so 349
 
350
	public void setId(String id) {
351
		log.info("set id banner "+id);
352
		this.id = id;
353
		this.bannerName = id;
6848 kshitij.so 354
	}
8578 kshitij.so 355
 
6848 kshitij.so 356
	public String[] getMapLink() {
357
		return mapLink;
358
	}
359
	public void setMapLink(String[] mapLink) {
360
		this.mapLink = mapLink;
361
	}
8578 kshitij.so 362
	public String[] getMapCoordinates() {
6848 kshitij.so 363
		return mapCoordinates;
364
	}
365
	public void setMapCoordinates(String[] mapCoordinates) {
366
		this.mapCoordinates = mapCoordinates;
367
	}
8578 kshitij.so 368
 
369
	public void setUri(String[] uri) {
370
		this.uri = uri;
371
	}
372
 
373
	public String[] getUri() {
374
		return uri;
375
	}
376
 
6848 kshitij.so 377
	public void setHasMap(String hasMap) {
378
		this.hasMap=hasMap;
379
	}
8578 kshitij.so 380
 
6848 kshitij.so 381
	public String getHasMap() {
382
		return hasMap;
383
	}
8578 kshitij.so 384
 
385
	public void setNewsletterName(String newsletterName) {
386
		this.newsletterName = newsletterName;
387
	}
388
 
389
	public String getNewsletterName() {
390
		return newsletterName;
391
	}
392
 
393
	public void setCampaignId(String campaignId) {
394
		this.campaignId = campaignId;
395
	}
396
 
397
	public String getCampaignId() {
398
		return campaignId;
399
	}
400
 
401
	@Override
402
	public void setServletRequest(HttpServletRequest servletRequest) {
403
		this.servletRequest = servletRequest;
404
 
405
	}
406
 
407
	public void setImageName(String imageName) {
408
		this.imageName = imageName;
409
	}
410
 
6848 kshitij.so 411
}