Subversion Repositories SmartDukaan

Rev

Rev 27087 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 27087 Rev 37729
Line 22... Line 22...
22
@Transactional(rollbackFor = Throwable.class)
22
@Transactional(rollbackFor = Throwable.class)
23
public class LeadSyncRunner {
23
public class LeadSyncRunner {
24
 
24
 
25
	@Autowired
25
	@Autowired
26
	LeadRepository leadRepository;
26
	LeadRepository leadRepository;
-
 
27
 
-
 
28
	@Autowired
-
 
29
	com.spice.profitmandi.dao.service.lead.LeadCreationService leadCreationService;
27
	
30
	
28
	private static final Logger LOGGER = LogManager.getLogger(LeadSyncRunner.class);
31
	private static final Logger LOGGER = LogManager.getLogger(LeadSyncRunner.class);
29
	
32
	
30
	public void syncLeads() throws Exception {
33
	public void syncLeads() throws Exception {
31
		XmlMapper xmlMapper = new XmlMapper();
34
		XmlMapper xmlMapper = new XmlMapper();
32
		XmlStreamReader xmlStreamReader = new XmlStreamReader(new File("/root/leads.xml"));
35
		XmlStreamReader xmlStreamReader = new XmlStreamReader(new File("/root/leads.xml"));
33
		Items items = xmlMapper.readValue(xmlStreamReader, Items.class);
36
		Items items = xmlMapper.readValue(xmlStreamReader, Items.class);
34
		List<Item> itemList = items.getItems();
37
		List<Item> itemList = items.getItems();
-
 
38
		int skipped = 0;
35
		for (Item item : itemList) {
39
		for (Item item : itemList) {
36
			Lead lead = new Lead();
40
			Lead lead = new Lead();
37
			lead.setAddress(item.getLocation().trim());
41
			lead.setAddress(item.getLocation().trim());
38
			lead.setLeadMobile(item.getNumber().trim());
42
			lead.setLeadMobile(item.getNumber().trim());
39
			lead.setCity(item.getLocation().trim());
43
			lead.setCity(item.getLocation().trim());
Line 56... Line 60...
56
			lead.setFirstName(item.getName().trim());
60
			lead.setFirstName(item.getName().trim());
57
			lead.setStatus(LeadStatus.followUp);
61
			lead.setStatus(LeadStatus.followUp);
58
			lead.setColor("yellow");
62
			lead.setColor("yellow");
59
			lead.setCreatedTimestamp(LocalDate.parse(item.getCreated(), DateTimeFormatter.ISO_DATE).atStartOfDay());
63
			lead.setCreatedTimestamp(LocalDate.parse(item.getCreated(), DateTimeFormatter.ISO_DATE).atStartOfDay());
60
			lead.setUpdatedTimestamp(LocalDateTime.now());
64
			lead.setUpdatedTimestamp(LocalDateTime.now());
-
 
65
			// Unattended: the nightly XML sync has no user. A number already being worked is
-
 
66
			// skipped (and mailed to the Call Center desk) rather than duplicated; a number whose
61
			leadRepository.persist(lead);
67
			// open lead has gone stale is taken over silently.
-
 
68
			if (leadCreationService.createUnattended(lead).isBlocked()) {
-
 
69
				skipped++;
-
 
70
			}
-
 
71
		}
-
 
72
		if (skipped > 0) {
-
 
73
			LOGGER.info("Lead sync: {} row(s) skipped, already being worked", skipped);
62
		}
74
		}
63
	}
75
	}
64
}
76
}