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.model.v1.order.EbayOrder;import in.shop2020.model.v1.order.Order;import in.shop2020.model.v1.order.TransactionService;import in.shop2020.support.utils.ReportsUtils;import in.shop2020.thrift.clients.CatalogClient;import in.shop2020.thrift.clients.TransactionClient;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 EbayColorChangeController extends ActionSupport implements ServletRequestAware {private static Logger logger = LoggerFactory.getLogger(EbayColorChangeController.class);private static final int PAISAPAYID_INDEX = 0;private static final int SALES_REC_NUM_INDEX = 1;private static final int NEW_ITEM_ID_INDEX = 2;private HttpServletRequest request;private HttpSession session;private String errorMsg = "";private File listingFile;public String create() throws IOException {Workbook wb = new HSSFWorkbook(new FileInputStream(listingFile));int totalNumRows = 0;int successfullyProcessedNumRows = 0;for (Row row : wb.getSheetAt(0)) {String key = "";try {totalNumRows++;if(totalNumRows==1) {continue;}row.getCell(PAISAPAYID_INDEX).setCellType(Cell.CELL_TYPE_STRING);String paisaPayId = row.getCell(PAISAPAYID_INDEX).getStringCellValue();Long itemId = new Double(row.getCell(NEW_ITEM_ID_INDEX).getNumericCellValue()).longValue();Long salesRecordNumber = new Double(row.getCell(SALES_REC_NUM_INDEX).getNumericCellValue()).longValue();TransactionService.Client transactionClient = new TransactionClient().getClient();EbayOrder ebayOrder = transactionClient.getEbayOrderBySalesRecNumber(salesRecordNumber);if(ebayOrder.getPaisaPayId().equals(paisaPayId)) {Order order = transactionClient.getOrder(ebayOrder.getOrderId());transactionClient.changeItem(order.getId(), itemId);} else {logger.error("Mismatch for paisaPayId : " + paisaPayId + " and salesRecordNumber : " + salesRecordNumber);setErrorMsg(getErrorMsg() + "<br/>Mismatch for paisaPayId : " + paisaPayId + " and salesRecordNumber : " + salesRecordNumber);addActionError("Mismatch for paisaPayId : " + paisaPayId + " and salesRecordNumber : " + salesRecordNumber);}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 listings");}return "authsuccess";}public String index() {if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), "/ebay-dashboard"))return "authfail";return "authsuccess";}@Overridepublic void setServletRequest(HttpServletRequest request) {this.request = request;this.session = request.getSession();}public String getErrorMsg() {return errorMsg;}public void setErrorMsg(String errorMsg) {this.errorMsg = errorMsg;}public File getListingFile() {return listingFile;}public void setListingFile(File listingFile) {this.listingFile = listingFile;}}