Blame | Last modification | View Log | RSS feed
package in.shop2020.support.controllers;import in.shop2020.model.v1.catalog.CatalogService;import in.shop2020.model.v1.catalog.EbayItem;import in.shop2020.support.utils.ReportsUtils;import in.shop2020.thrift.clients.CatalogClient;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.text.SimpleDateFormat;import java.util.Collection;import java.util.Date;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.commons.io.FileUtils;import org.apache.poi.hssf.usermodel.HSSFWorkbook;import org.apache.poi.ss.usermodel.Cell;import org.apache.poi.ss.usermodel.Row;import org.apache.poi.ss.usermodel.Workbook;import org.apache.struts2.convention.annotation.InterceptorRef;import org.apache.struts2.convention.annotation.InterceptorRefs;import org.apache.struts2.convention.annotation.Result;import org.apache.struts2.convention.annotation.Results;import org.apache.struts2.interceptor.ServletRequestAware;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import com.opensymphony.xwork2.ActionSupport;@SuppressWarnings("serial")@InterceptorRefs({@InterceptorRef("defaultStack"),@InterceptorRef("login")})@Results({@Result(name="authfail", type="redirectAction", params = {"actionName" , "reports"})})public class EbaySubsidyUploaderController extends ActionSupport implements ServletRequestAware {private static Logger logger = LoggerFactory.getLogger(EbaySubsidyUploaderController.class);private static final int LISTING_INDEX=0;private static final int SUBSIDY_INDEX=1;private HttpServletRequest request;private HttpSession session;private String errorMsg = "";private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");private File subsidyFile;public String index() {if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), "/ebay-dashboard"))return "authfail";return "authsuccess";}public String create() throws IOException {FileUtils.copyFile(subsidyFile, new File("/tmp/subsidy_file " + sdf.format(new Date()) + ".xls"));Workbook wb = new HSSFWorkbook(new FileInputStream(subsidyFile));int totalNumRows = 0;int successfullyProcessedNumRows = 0;for (Row row : wb.getSheetAt(0)) {String key = "";try {totalNumRows++;if(totalNumRows==1) {continue;}row.getCell(LISTING_INDEX).setCellType(Cell.CELL_TYPE_STRING);String listingId = row.getCell(LISTING_INDEX).getStringCellValue();Double subsidy = row.getCell(SUBSIDY_INDEX).getNumericCellValue();CatalogService.Client catalogClient = new CatalogClient().getClient();EbayItem ebayItem = catalogClient.getEbayItem(listingId);ebayItem.setSubsidy(subsidy);catalogClient.updateEbayItem(ebayItem);successfullyProcessedNumRows++;} catch (Exception e) {logger.error(e + "\n" + e.getMessage() + e.getCause());setErrorMsg(getErrorMsg() + "</br>Error in row number " + totalNumRows);addActionError("Error in row number " + totalNumRows);}}if(errorMsg.isEmpty()) {setErrorMsg("Sucessfully uploaded subsidy");}return "authsuccess";}public String getErrorMsg() {return errorMsg;}public void setErrorMsg(String errorMsg) {this.errorMsg = errorMsg;}public File getSubsidyFile() {return subsidyFile;}public void setSubsidyFile(File subsidyFile) {this.subsidyFile = subsidyFile;}@Overridepublic void setServletRequest(HttpServletRequest request) {this.request = request;this.session = request.getSession();}}