| Line 260... |
Line 260... |
| 260 |
@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header")})
|
260 |
@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header")})
|
| 261 |
public ResponseEntity<?> leadDescription(HttpServletRequest request, @RequestParam(name = "gmailId") String
|
261 |
public ResponseEntity<?> leadDescription(HttpServletRequest request, @RequestParam(name = "gmailId") String
|
| 262 |
gmailId,
|
262 |
gmailId,
|
| 263 |
@RequestParam(name = "status") LeadStatus status) throws ProfitMandiBusinessException {
|
263 |
@RequestParam(name = "status") LeadStatus status) throws ProfitMandiBusinessException {
|
| 264 |
AuthUser authUser = authRepository.selectByGmailId(gmailId);
|
264 |
AuthUser authUser = authRepository.selectByGmailId(gmailId);
|
| 265 |
if (authUser == null) {
|
- |
|
| 266 |
throw new ProfitMandiBusinessException("gmailId", gmailId, "Invalid gmailId");
|
- |
|
| 267 |
}
|
- |
|
| 268 |
List<Lead> leads = null;
|
265 |
List<Lead> leads = null;
|
| 269 |
LOGGER.info("emails" + status);
|
266 |
LOGGER.info("emails" + status);
|
| 270 |
|
267 |
|
| - |
|
268 |
List<VisitRequest> visitRequests = visitRequestRepository.selectByAuthIdAndDate(authUser.getId(),
|
| - |
|
269 |
LocalDate.now());
|
| - |
|
270 |
Map<Integer, List<VisitRequest>> visitRequestMap = null;
|
| - |
|
271 |
if (!visitRequests.isEmpty()) {
|
| - |
|
272 |
visitRequestMap = visitRequests.stream().collect(Collectors.groupingBy(x -> x.getVisitId()));
|
| - |
|
273 |
}
|
| 271 |
if (status.equals(LeadStatus.followUp)) {
|
274 |
if (status.equals(LeadStatus.followUp)) {
|
| 272 |
leads = leadRepository.selectLeadsScheduledBetweenDate(Arrays.asList(authUser.getId()), null, null);
|
- |
|
| 273 |
|
275 |
|
| 274 |
// Only fetch visitRequests when needed for followUp status
|
- |
|
| 275 |
List<VisitRequest> visitRequests = visitRequestRepository.selectByAuthIdAndDate(authUser.getId(),
|
276 |
leads = leadRepository.selectLeadsScheduledBetweenDate(Arrays.asList(authUser.getId()), null, null);
|
| 276 |
LocalDate.now());
|
- |
|
| 277 |
if (!visitRequests.isEmpty()) {
|
- |
|
| 278 |
Map<Integer, List<VisitRequest>> visitRequestMap = visitRequests.stream()
|
- |
|
| 279 |
.collect(Collectors.groupingBy(VisitRequest::getVisitId));
|
- |
|
| 280 |
|
277 |
|
| 281 |
Comparator<VisitRequest> visitComparator = Comparator.comparing(VisitRequest::getCreatedTimestamp);
|
278 |
if (visitRequestMap != null) {
|
| 282 |
for (Lead lead : leads) {
|
279 |
for (Lead lead : leads) {
|
| 283 |
List<VisitRequest> visitRequest = visitRequestMap.get(lead.getId());
|
280 |
List<VisitRequest> visitRequest = visitRequestMap.get(lead.getId());
|
| - |
|
281 |
|
| 284 |
if (visitRequest != null) {
|
282 |
if (visitRequest != null) {
|
| 285 |
if (visitRequest.size() > 1) {
|
283 |
if (visitRequest.size() > 1) {
|
| - |
|
284 |
|
| - |
|
285 |
Comparator<VisitRequest> visitComparato = Comparator
|
| - |
|
286 |
.comparing(VisitRequest::getCreatedTimestamp);
|
| - |
|
287 |
|
| 286 |
VisitRequest youngestVisit = visitRequest.stream().max(visitComparator).get();
|
288 |
VisitRequest youngestVisit = visitRequest.stream().max(visitComparato).get();
|
| 287 |
lead.setVisitStatus(youngestVisit.getStatus());
|
289 |
lead.setVisitStatus(youngestVisit.getStatus());
|
| - |
|
290 |
|
| 288 |
} else {
|
291 |
} else {
|
| 289 |
lead.setVisitStatus(visitRequest.get(0).getStatus());
|
292 |
lead.setVisitStatus(visitRequest.get(0).getStatus());
|
| - |
|
293 |
|
| 290 |
}
|
294 |
}
|
| 291 |
}
|
295 |
}
|
| - |
|
296 |
|
| 292 |
}
|
297 |
}
|
| 293 |
}
|
298 |
}
|
| 294 |
|
299 |
|
| 295 |
leads = leads.stream()
|
300 |
leads = leads.stream()
|
| 296 |
.sorted(Comparator.comparing(Lead::getScheduledTimestamp, Comparator.nullsFirst(Comparator.reverseOrder())))
|
301 |
.sorted(Comparator.comparing(Lead::getScheduledTimestamp, Comparator.nullsFirst(Comparator.reverseOrder())))
|
| 297 |
.collect(Collectors.toList());
|
302 |
.collect(Collectors.toList());
|
| - |
|
303 |
/*
|
| - |
|
304 |
* Collections.sort(leads, (o1, o2) -> { if (o1.getScheduledTimestamp() != null
|
| - |
|
305 |
* && o2.getScheduledTimestamp() != null) { return
|
| - |
|
306 |
* o1.getScheduledTimestamp().isBefore(o2.getScheduledTimestamp()) ? -1 : 1; }
|
| - |
|
307 |
* else if (o1.getScheduledTimestamp() != null) { return 1; } else { return -1;
|
| - |
|
308 |
* } });
|
| - |
|
309 |
*/
|
| - |
|
310 |
|
| 298 |
} else {
|
311 |
} else {
|
| 299 |
leads = leadRepository.selectByAssignAuthIdAndStatus(authUser.getId(), status);
|
312 |
leads = leadRepository.selectByAssignAuthIdAndStatus(authUser.getId(), status);
|
| - |
|
313 |
|
| 300 |
}
|
314 |
}
|
| 301 |
|
315 |
|
| 302 |
return responseSender.ok(leads);
|
316 |
return responseSender.ok(leads);
|
| - |
|
317 |
|
| 303 |
}
|
318 |
}
|
| 304 |
|
319 |
|
| 305 |
@RequestMapping(value = "/getlead", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
320 |
@RequestMapping(value = "/getlead", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
| 306 |
@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header")})
|
321 |
@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header")})
|
| 307 |
public ResponseEntity<?> getLead(HttpServletRequest request, @RequestParam(name = "id") int id) throws
|
322 |
public ResponseEntity<?> getLead(HttpServletRequest request, @RequestParam(name = "id") int id) throws
|