Untitled

 avatar
unknown
java
a year ago
3.5 kB
2
Indexable
public void importAffiliateOrdersRecordToTable() {
    if (!commonUtils.isServerConfiguredForScheduler()) {
        LOGGER.error("[AffiliateOrdersRecordProcessScheduler]importCSVRecordToTable] Server not mapped for scheduler");
        return;
    }

    String mailReceivers = null;
    DataRecords dataRecords = new DataRecords();

    try {
        mailReceivers = configParamRepository.findValueByName(KeyConstants.ORDER_REPORT_NOTIFICATION_MAIL_RECEIVER);
        LOGGER.info("[AffiliateOrdersRecordProcessScheduler]importRedemptionRecordToTable] Scheduler started");

        String today = new SimpleDateFormat("ddMMyyyy").format(new Date());
        String sftpPassword = configParamRepository.findValueByNameIgnoreCase(KeyConstants.SFTP_PASSWORD);
        hostPassword = StringUtils.isNotBlank(sftpPassword) ? sftpPassword : hostPassword;

        boolean file1ExistInServer = checkFileExistence("000001");
        boolean file2ExistInServer = checkFileExistence("000002");

        if (file1ExistInServer || file2ExistInServer) {
            LOGGER.info("[AffiliateOrdersRecordProcessScheduler]importCSVRecordToTable] CSV file exists in SFTP server");

            dataRecords = readCSVFile(today, file1ExistInServer ? "000001" : "000002");
            processAndSendEmail(dataRecords, mailReceivers);

        } else {
            LOGGER.info("[AffiliateOrdersRecordProcessScheduler]importCSVRecordToTable] CSV file does not exist in SFTP server");
            emailSender.sendMailWithoutAttachment(senderEmailId, mailReceivers, emailSubject, noFileExistEmailBody);
        }

    } catch (Exception e) {
        handleException(e, mailReceivers);

    } finally {
        LOGGER.info("[AffiliateOrdersRecordProcessScheduler]importCSVRecordToTable] Scheduler Completed");
    }
}

private boolean checkFileExistence(String fileSuffix) {
    return SFTPFileReading.readingFile(hostUserName, hostPassword, hostPort, hostName, filePath,
            hostRemoteFilePath + hostRemoteFileName + today + "_" + fileSuffix + ".csv");
}

private DataRecords readCSVFile(String today, String fileSuffix) {
    String localFileNameWithSuffix = localFileName + today + "_" + fileSuffix + ".csv";
    return FileReaderAndWriter.readCSVfile(filePath, localFileNameWithSuffix);
}

private void processAndSendEmail(DataRecords dataRecords, String mailReceivers) {
    if (dataRecords != null && !dataRecords.getRecords().isEmpty()) {
        Integer count = processStatusRecords(dataRecords.getRecords());
        String emailBodyText = count > 0 ? MessageFormat.format(emailBody, count, (dataRecords.getCount() - 1)) : failedEmailBody;
        emailSender.sendMailWithoutAttachment(senderEmailId, mailReceivers, emailSubject, emailBodyText);

        LOGGER.info("[ManualServiceImpl]importAffiliateOrdersRecordToTable Records count greater than zero {}", count);

    } else {
        emailSender.sendMailWithoutAttachment(senderEmailId, mailReceivers, emailSubject,
                dataRecords != null ? noDataEmailBody : noDataEmailBody);
        LOGGER.info("[AffiliateOrdersRecordProcessScheduler]importAffiliateOrdersRecordToTable] Records not found in file");
    }
}

private void handleException(Exception e, String mailReceivers) {
    LOGGER.error(String.format("[AffiliateOrdersRecordProcessScheduler]importCSVRecordToTable] Exception Occurred: %s", e.getMessage()));
    emailSender.sendMailWithoutAttachment(senderEmailId, mailReceivers, emailSubject, errorEmailBody);
}
Leave a Comment