Commit 8636667c authored by shishir suman's avatar shishir suman
Browse files

bug fixes

1 merge request!56Uphrh 7903 mobile otp
Showing with 75 additions and 12 deletions
+75 -12
......@@ -151,22 +151,42 @@ public class NightlyJobScheduler {
if(secretaryUserRole != null && secretaryUserRole.size() > 0) {
secretaryUserRole.stream().forEach(user -> {
if(user.getStatus() == 1 && user.getEmail() != null && !user.getEmail().isBlank()) {
long previousDay = LocalDate.now().minusDays(1).toEpochDay();
SearchDateRange dateRange = SearchDateRange.builder().from(previousDay).to(null).build();
List<Ticket> openTicketsByID = searchService.getOpenTicketsByID(null, dateRange);
EmailDetails emailDetails = EmailDetails.builder().recipient(user.getEmail())
.subject(aggregatorSubject).build();
log.info("Details - " + user.getEmail() + " " + "subject - " + aggregatorSubject);
log.info("open tickets - ", openTicketsByID);
// send mail
if (openTicketsByID.size() > 0) {
emailService.sendMailTicketAggregateMailToSecretary(emailDetails, user, openTicketsByID);
}
sendPendingTicketsMail(user);
// send escalated ticket mail
sendEscalatedTicketMail(user);
}
});
}
}
private void sendEscalatedTicketMail(User user) {
long previousDay = LocalDate.now().minusDays(1).toEpochDay();
SearchDateRange dateRange = SearchDateRange.builder().from(previousDay).to(null).build();
List<Ticket> openTicketsByID = searchService.getEscalatedTicketsByID(null, dateRange);
EmailDetails emailDetails = EmailDetails.builder().recipient(user.getEmail())
.subject(aggregatorSubject).build();
log.info("Details - " + user.getEmail() + " " + "subject - " + aggregatorSubject);
log.info("open tickets - ", openTicketsByID);
// send mail
if (openTicketsByID.size() > 0) {
emailService.sendMailTicketAggregateMailToSecretary(emailDetails, user, openTicketsByID);
}
}
private void sendPendingTicketsMail(User user) {
long previousDay = LocalDate.now().minusDays(1).toEpochDay();
SearchDateRange dateRange = SearchDateRange.builder().from(previousDay).to(null).build();
List<Ticket> openTicketsByID = searchService.getOpenTicketsByID(null, dateRange);
EmailDetails emailDetails = EmailDetails.builder().recipient(user.getEmail())
.subject(aggregatorSubject).build();
log.info("Details - " + user.getEmail() + " " + "subject - " + aggregatorSubject);
log.info("open tickets - ", openTicketsByID);
// send mail
if (openTicketsByID.size() > 0) {
emailService.sendMailTicketAggregateMailToSecretary(emailDetails, user, openTicketsByID);
}
}
public List<MailConfigDto> getAll() {
Iterable<MailConfig> configIterable = mailConfigRepository.findAll();
List<MailConfigDto> configs = new ArrayList<>();
......
......@@ -20,4 +20,6 @@ public interface SearchService {
List<Ticket> getOpenTicketsByID(Long id);
List<Ticket> getOpenTicketsByID(Long id, SearchDateRange dateRange);
List<Ticket> getEscalatedTicketsByID(Long id, SearchDateRange dateRange);
}
\ No newline at end of file
......@@ -164,6 +164,45 @@ public class SearchServiceImpl implements SearchService {
return Collections.emptyList();
}
@Override
public List<Ticket> getEscalatedTicketsByID(Long id, SearchDateRange dateRange) {
BoolQueryBuilder ticketBooleanQueryBuilder = QueryBuilders.boolQuery();
if(id != null && id > 0) {
QueryBuilder ticketIdQueryBuilder = QueryBuilders.matchQuery("assigned_to_id", id);
ticketBooleanQueryBuilder.must(ticketIdQueryBuilder);
}
if(dateRange != null && dateRange.getFrom() != null && dateRange.getFrom() > 0) {
QueryBuilder rangeBuilder = QueryBuilders.rangeQuery("updated_date_ts").gt(dateRange.getFrom());
if(dateRange.getTo() != null && dateRange.getTo() > 0){
rangeBuilder = QueryBuilders.rangeQuery("updated_date_ts").gt(dateRange.getFrom()).lte(dateRange.getTo());
}
ticketBooleanQueryBuilder.must(rangeBuilder);
}
QueryBuilder priorityQueryBuilder = QueryBuilders.matchQuery("priority", "MEDIUM");
ticketBooleanQueryBuilder.must(priorityQueryBuilder);
QueryBuilder statusQueryBuilder = QueryBuilders.matchQuery("status", TicketStatus.OPEN.name());
ticketBooleanQueryBuilder.must(statusQueryBuilder);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(ticketBooleanQueryBuilder);
org.elasticsearch.action.search.SearchRequest search =
new org.elasticsearch.action.search.SearchRequest("ticket");
search.searchType(SearchType.QUERY_THEN_FETCH);
search.source(searchSourceBuilder);
log.info(">>>>>>>>>>>> Ticket query for id list - {}", searchSourceBuilder);
try {
SearchResponse searchResponse = esConfig.elasticsearchClient().search(search, RequestOptions.DEFAULT);
return getTicketDocumentsFromHits(searchResponse.getHits());
} catch (IOException e) {
log.error("Error while searching ticket by ticket id list", e);
}
return Collections.emptyList();
}
private void escalatePendingTickets(SearchResponse searchResponse) {
Iterator<SearchHit> hits = searchResponse.getHits().iterator();
TaskExecutor taskExecutor = new ConcurrentTaskScheduler();
......
......@@ -18,7 +18,9 @@ public enum ErrorCode {
MAIL_002("Failed to update configuration."),
MAIL_003("Failed to fetch configurations."),
MAIL_004("Failed to activate configuration."),
MAIL_005("Failed to deactivate configuration.");
MAIL_005("Failed to deactivate configuration."),
CONFIG_001("Invalid Request"),
CONFIG_002("Error in updating request");
private String description;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment