Subversion Repositories SmartDukaan

Rev

Rev 27068 | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.smartdukaan.cron.scheduled.leadsync;

import java.io.File;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;

import org.apache.commons.io.input.XmlStreamReader;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.spice.profitmandi.dao.entity.user.Lead;
import com.spice.profitmandi.dao.enumuration.dtr.LeadStatus;
import com.spice.profitmandi.dao.repository.dtr.LeadRepository;

@Component
@Transactional(rollbackFor = Throwable.class)
public class LeadSyncRunner {

        @Autowired
        LeadRepository leadRepository;
        
        private static final Logger LOGGER = LogManager.getLogger(LeadSyncRunner.class);
        
        public void syncLeads() throws Exception {
                XmlMapper xmlMapper = new XmlMapper();
                XmlStreamReader xmlStreamReader = new XmlStreamReader(new File("/root/leads.xml"));
                Items items = xmlMapper.readValue(xmlStreamReader, Items.class);
                List<Item> itemList = items.getItems();
                for (Item item : itemList) {
                        Lead lead = new Lead();
                        lead.setAddress(item.getLocation().trim());
                        lead.setLeadMobile(item.getNumber().trim());
                        lead.setCity(item.getLocation().trim());
                        lead.setState(item.getState());
                        lead.setLastName(item.getBusiness().trim());
                        if(lead.getState().equals("Uttar Pradesh")) {
                                lead.setAssignTo(1);
                        } else if (lead.getState().equals("Haryana")) {
                                lead.setAssignTo(1);
                        } else if (lead.getState().equals("Delhi")) {
                                lead.setAssignTo(1);
                        } else {
                                //Assign to sm
                                //lead.setAssignTo(53);
                                lead.setAssignTo(1);
                        }
                        lead.setAuthId(lead.getAssignTo());
                        lead.setCreatedBy("daily-sync");
                        lead.setSource("SD-WEB");
                        lead.setFirstName(item.getName().trim());
                        lead.setStatus(LeadStatus.followUp);
                        lead.setColor("yellow");
                        lead.setCreatedTimestamp(LocalDate.parse(item.getCreated(), DateTimeFormatter.ISO_DATE).atStartOfDay());
                        lead.setUpdatedTimestamp(LocalDateTime.now());
                        leadRepository.persist(lead);
                }
        }
}