Rev 11238 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.serving.controllers;import in.shop2020.config.ConfigException;import in.shop2020.model.v1.catalog.Banner;import in.shop2020.model.v1.catalog.BannerCongregate;import in.shop2020.model.v1.catalog.BannerMap;import in.shop2020.model.v1.catalog.BannerUriMapping;import in.shop2020.model.v1.catalog.Campaign;import in.shop2020.model.v1.catalog.CatalogService.Client;import in.shop2020.model.v1.catalog.BannerType;import in.shop2020.serving.services.ScpService;import in.shop2020.thrift.clients.CatalogClient;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.Calendar;import java.util.GregorianCalendar;import java.util.List;import javax.servlet.http.HttpServletRequest;import org.apache.commons.io.FileUtils;import org.apache.commons.lang.StringUtils;import org.apache.log4j.Logger;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;import org.apache.thrift.TException;import org.apache.thrift.transport.TTransportException;@SuppressWarnings("serial")@Results({@Result(name = "redirect", location = "${url}", type = "redirect"),@Result(name = "newCampaign", location = "campaign-editNew.vm"),@Result(name = "campaignEdit", location = "campaignEdit.vm"),@Result(name = "newSideBanner", location = "SideBanner-New.vm"),@Result(name = "sideBannerEdit", location = "SideBanner-Edit.vm")})public class UserImageController extends BaseController {private static Logger log = Logger.getLogger(Class.class);private File userImage;private String filePath;private String userImageContentType;private String userImageFileName;private String url;private HttpServletRequest servletRequest;private String[] status;private String bannerName;private String link;private String priority;private String hasMap;private String action;private String[] mapLink;private String[] mapCoordinates;private String[] uri;private String id;private String newsletterName;private String imageName;private String campaignId;private String fileExtention;private String bannerType;private String actionType;private String[] linkTarget;public String create() {try {filePath = servletRequest.getSession().getServletContext().getRealPath("/images/banners/");setUrl("/user-image");String imageName = null;Banner antecedent = new Banner();if (StringUtils.isNotEmpty(userImageFileName)) {imageName = getImageName();if (action!=null){antecedent.setBannerName(action);antecedent.setBannerType(BannerType.valueOf(actionType));}File fileToCreate = new File(filePath, imageName);FileUtils.copyFile(this.userImage, fileToCreate);try {ScpService scp = new ScpService();scp.scpFile("/var/lib/tomcat6/webapps/ROOT/images/banners/"+imageName, filePath+"/"+imageName);} catch (Exception e) {log.error("Scp To Servers Failed",e);addActionError("Image Failed To Upload");return "redirect";}}else{Client CatalogClient = new CatalogClient().getClient();imageName =CatalogClient.getBannerDetails(action,BannerType.valueOf(actionType)).getImageName();antecedent.setBannerName(action);antecedent.setBannerType(BannerType.valueOf(actionType));}if (StringUtils.isEmpty(link)) {log.info("Empty Link Field");this.link="#";}Banner banner = new Banner();banner.setBannerName(bannerName);banner.setImageName(imageName);banner.setLink(link);banner.setHasMap(Boolean.parseBoolean(hasMap));banner.setPriority(Long.valueOf(priority));banner.setBannerType(BannerType.valueOf(bannerType));List<BannerMap> bannerMaps = new ArrayList<BannerMap>();if(banner.isHasMap()) {for(int i=0;i<mapLink.length;i++){if(mapLink[i].isEmpty()) {continue;}BannerMap bannerMap = new BannerMap();bannerMap.setBannerName(bannerName);bannerMap.setCoordinates(mapCoordinates[i]);bannerMap.setMapLink(mapLink[i]);bannerMaps.add(bannerMap);}}List<BannerUriMapping> bannerUriMappings = new ArrayList<BannerUriMapping>();for (int i=0;i<uri.length;i++){if(uri[i].isEmpty()) {continue;}BannerUriMapping bannerUriMapping = new BannerUriMapping();bannerUriMapping.setBannerName(bannerName);bannerUriMapping.setUri(uri[i]);bannerUriMapping.setIsActive(Boolean.valueOf(status[i]));bannerUriMapping.setTarget(Boolean.valueOf(linkTarget[i]));bannerUriMappings.add(bannerUriMapping);}BannerCongregate bannerCongregate = new BannerCongregate();bannerCongregate.setBanner(banner);bannerCongregate.setBannerMaps(bannerMaps);bannerCongregate.setBannerUriMappings(bannerUriMappings);bannerCongregate.setAntecedent(antecedent);Client CatalogClient = new CatalogClient().getClient();CatalogClient.addBanner(bannerCongregate);} catch (Exception e) {log.error("Error while uploading/changing map",e);addActionError("Failed To Do Changes");return "redirect";}addActionMessage("Changes Applied Successfully");return "index";}public String createNewsletter() throws IOException{filePath = servletRequest.getSession().getServletContext().getRealPath("/images/campaignImages/");setUrl("/user-image!editNewsletter?newsletterName="+this.newsletterName);if (StringUtils.isNotEmpty(userImageFileName)) {imageName = getImageName();File fileToCreate = new File(filePath, imageName);FileUtils.copyFile(this.userImage, fileToCreate);ScpService scp = new ScpService();try {scp.scpFile("/var/lib/tomcat6/webapps/ROOT/images/campaignImages/"+imageName, filePath+"/"+imageName);} catch (ConfigException e) {log.info("Unable to do scp "+e);addActionError("Image Failed To Upload");return "redirect";}Campaign campaign = new Campaign();campaign.setCampaignName(this.newsletterName);campaign.setImageName(imageName);Client CatalogClient;try {CatalogClient = new CatalogClient().getClient();CatalogClient.addCampaign(campaign);} catch (Exception e) {log.info("Unable to add campaign "+e);addActionError("Failed To Do Changes");return "redirect";}addActionMessage("Changes Applied Successfully");return "redirect";}else{addActionError("Image Missing");return "redirect";}}public String deleteCampaign() {setUrl("/user-image!editNewsletter?newsletterName="+this.newsletterName);try {Client CatalogClient = new CatalogClient().getClient();CatalogClient.deleteCampaign(Long.valueOf(campaignId));addActionMessage("Image deleted");return "redirect";}catch (Exception e) {log.info("Unable to delete campaign "+e);addActionError("Unable to delete image");return "redirect";}}public void addBannerUriMapping(List<BannerUriMapping> bannerUriMappings) throws TException{Client CatalogClient = new CatalogClient().getClient();CatalogClient.addBannerUri(bannerUriMappings);}public void addBannerMap(List<BannerMap> bannerMaps) throws TException{Client CatalogClient = new CatalogClient().getClient();CatalogClient.addBannerMap(bannerMaps);}public List<Banner> getAllBanners() {Client CatalogClient = null;List<Banner> banners = null;try {CatalogClient = new CatalogClient().getClient();banners = CatalogClient.getAllBanners();} catch (TTransportException e) {log.info("Unable to fetch all banners "+e);} catch (TException ex) {log.info("Unable to fetch all banners "+ex);}return banners;}public String destroy() throws TException {Client CatalogClient = new CatalogClient().getClient();CatalogClient.deleteBanner(bannerName,BannerType.valueOf(bannerType));setUrl("/user-image");return "redirect";}public Banner getUpdates(String bannerType) throws TException {Client CatalogClient = null;CatalogClient = new CatalogClient().getClient();Banner banner = CatalogClient.getBannerDetails(bannerName,BannerType.valueOf(bannerType));try{setFileExtention(banner.getImageName().split("[.]")[1]);}catch (Exception e){log.error("Split image name error "+e);}return banner;}public Banner getUpdates(String name,String bannerType) throws TException {Client CatalogClient = null;CatalogClient = new CatalogClient().getClient();return CatalogClient.getBannerDetails(name,BannerType.valueOf(bannerType));}public List<BannerMap> getbannermapdetail(String bannerType) throws TException {Client CatalogClient = null;CatalogClient = new CatalogClient().getClient();return CatalogClient.getBannerMapDetails(bannerName,BannerType.valueOf(bannerType));}public String getImageName() {Calendar cal=GregorianCalendar.getInstance();return String.valueOf(cal.getTimeInMillis())+"."+fileExtention;}public String getTimeInMilliseconds(){Calendar cal=GregorianCalendar.getInstance();return String.valueOf(cal.getTimeInMillis());}public List<BannerUriMapping> getUriMapping(String bannerName,BannerType bannerType) throws TException{Client CatalogClient = new CatalogClient().getClient();return CatalogClient.getUriMapping(bannerName,bannerType);}public List<BannerUriMapping> getUriMapping(String bannerType) throws TException{Client CatalogClient = new CatalogClient().getClient();return CatalogClient.getUriMapping(bannerName,BannerType.valueOf(bannerType));}public List<Campaign> getCampaigns(String campaignName) throws TException{Client CatalogClient = new CatalogClient().getClient();return CatalogClient.getCampaigns(campaignName);}public List<String> getAllCampaigns() throws TException{Client CatalogClient = new CatalogClient().getClient();return CatalogClient.getAllCampaigns();}public String index() {return "index";}public String show() {if (StringUtils.equals(id, "newCampaign")){return "newCampaign";}if (StringUtils.equals(id, "newSideBanner")){return "newSideBanner";}if (StringUtils.equals(id, "map-image")){return "map-image";}return "show";}public String editNewsletter(){return "campaignEdit";}public String editSideBanner(){return "sideBannerEdit";}public String edit() {return "edit";}public String editNew() {return "editNew";}public File getUserImage() {return userImage;}public void setUserImage(File userImage) {this.userImage = userImage;}public String getUserImageContentType() {return userImageContentType;}public void setUserImageContentType(String userImageContentType) {this.userImageContentType = userImageContentType;}public String getUserImageFileName() {return userImageFileName;}public void setUserImageFileName(String userImageFileName) {this.userImageFileName = userImageFileName;}public void setUrl(String url) {this.url = url;}public String getUrl() {return url;}public void setIsActive(String[] isActive) {this.status=isActive;}public String[] getIsActive() {return status;}public void setBannerName(String bannerName) {this.bannerName=bannerName;}public String getBannerName() {return bannerName;}public void setLink(String link) {this.link=link;}public String getLink() {return link;}public void setAction(String action) {this.action=action;}public String getAction() {return action;}public void setPriority(String priority) {this.priority=priority;}public String getPriority() {return priority;}public void setId(String id) {this.id = id;this.bannerName = id;}public String[] getMapLink() {return mapLink;}public void setMapLink(String[] mapLink) {this.mapLink = mapLink;}public String[] getMapCoordinates() {return mapCoordinates;}public void setMapCoordinates(String[] mapCoordinates) {this.mapCoordinates = mapCoordinates;}public void setUri(String[] uri) {this.uri = uri;}public String[] getUri() {return uri;}public void setHasMap(String hasMap) {this.hasMap=hasMap;}public String getHasMap() {return hasMap;}public void setNewsletterName(String newsletterName) {this.newsletterName = newsletterName;}public String getNewsletterName() {return newsletterName;}public void setCampaignId(String campaignId) {this.campaignId = campaignId;}public String getCampaignId() {return campaignId;}@Overridepublic void setServletRequest(HttpServletRequest servletRequest) {this.servletRequest = servletRequest;}public void setImageName(String imageName) {this.imageName = imageName;}public void setFileExtention(String fileExtention) {this.fileExtention = fileExtention;}public String getFileExtention() {return fileExtention;}public void setBannerType(String bannerType) {this.bannerType = bannerType;}public String getBannerType() {return bannerType;}public void setActionType(String actionType) {this.actionType = actionType;}public String getActionType() {return actionType;}public void setLinkTarget(String[] linkTarget) {this.linkTarget = linkTarget;}}