| Line 1... |
Line 1... |
| 1 |
package com.spice.profitmandi.web.controller;
|
1 |
package com.spice.profitmandi.web.controller;
|
| 2 |
|
2 |
|
| - |
|
3 |
import java.text.MessageFormat;
|
| 3 |
import java.time.LocalDateTime;
|
4 |
import java.time.LocalDateTime;
|
| 4 |
import java.util.ArrayList;
|
5 |
import java.util.ArrayList;
|
| 5 |
import java.util.List;
|
6 |
import java.util.List;
|
| 6 |
import java.util.Map;
|
7 |
import java.util.Map;
|
| 7 |
import java.util.function.Function;
|
8 |
import java.util.function.Function;
|
| 8 |
import java.util.stream.Collector;
|
9 |
import java.util.stream.Collector;
|
| 9 |
import java.util.stream.Collectors;
|
10 |
import java.util.stream.Collectors;
|
| 10 |
|
11 |
|
| - |
|
12 |
import javax.mail.internet.InternetAddress;
|
| - |
|
13 |
import javax.mail.internet.MimeMessage;
|
| 11 |
import javax.servlet.http.HttpServletRequest;
|
14 |
import javax.servlet.http.HttpServletRequest;
|
| 12 |
|
15 |
|
| 13 |
import org.apache.logging.log4j.LogManager;
|
16 |
import org.apache.logging.log4j.LogManager;
|
| 14 |
import org.apache.logging.log4j.Logger;
|
17 |
import org.apache.logging.log4j.Logger;
|
| 15 |
import org.json.JSONObject;
|
18 |
import org.json.JSONObject;
|
| 16 |
import org.springframework.beans.factory.annotation.Autowired;
|
19 |
import org.springframework.beans.factory.annotation.Autowired;
|
| - |
|
20 |
import org.springframework.mail.javamail.JavaMailSender;
|
| - |
|
21 |
import org.springframework.mail.javamail.MimeMessageHelper;
|
| 17 |
import org.springframework.stereotype.Controller;
|
22 |
import org.springframework.stereotype.Controller;
|
| 18 |
import org.springframework.transaction.annotation.Transactional;
|
23 |
import org.springframework.transaction.annotation.Transactional;
|
| 19 |
import org.springframework.ui.Model;
|
24 |
import org.springframework.ui.Model;
|
| 20 |
import org.springframework.web.bind.annotation.RequestMapping;
|
25 |
import org.springframework.web.bind.annotation.RequestMapping;
|
| 21 |
import org.springframework.web.bind.annotation.RequestMethod;
|
26 |
import org.springframework.web.bind.annotation.RequestMethod;
|
| Line 61... |
Line 66... |
| 61 |
private RefferalMonthlyAmountRepository refferalMonthlyAmountRepository;
|
66 |
private RefferalMonthlyAmountRepository refferalMonthlyAmountRepository;
|
| 62 |
|
67 |
|
| 63 |
@Autowired
|
68 |
@Autowired
|
| 64 |
private UserRepository userRepository;
|
69 |
private UserRepository userRepository;
|
| 65 |
|
70 |
|
| - |
|
71 |
@Autowired
|
| - |
|
72 |
JavaMailSender mailSender;
|
| - |
|
73 |
|
| 66 |
private static final Logger LOGGER = LogManager.getLogger(RefferalRepository.class);
|
74 |
private static final Logger LOGGER = LogManager.getLogger(RefferalRepository.class);
|
| 67 |
|
75 |
|
| 68 |
@RequestMapping(value = "/getRefferalsRequest", method = RequestMethod.GET)
|
76 |
@RequestMapping(value = "/getRefferalsRequest", method = RequestMethod.GET)
|
| 69 |
public String getRefferalsRequest(HttpServletRequest request,
|
77 |
public String getRefferalsRequest(HttpServletRequest request,
|
| 70 |
@RequestParam(name = "offset", defaultValue = "0") int offset,
|
78 |
@RequestParam(name = "offset", defaultValue = "0") int offset,
|
| Line 210... |
Line 218... |
| 210 |
if (refferal.getStatus().equals(RefferalStatus.validate)) {
|
218 |
if (refferal.getStatus().equals(RefferalStatus.validate)) {
|
| 211 |
refferal.setStatus(RefferalStatus.approved);
|
219 |
refferal.setStatus(RefferalStatus.approved);
|
| 212 |
refferal.setUpdatedTimestamp(LocalDateTime.now());
|
220 |
refferal.setUpdatedTimestamp(LocalDateTime.now());
|
| 213 |
refferal.setApprovedTimestamp(LocalDateTime.now());
|
221 |
refferal.setApprovedTimestamp(LocalDateTime.now());
|
| 214 |
refferalRepository.persist(refferal);
|
222 |
refferalRepository.persist(refferal);
|
| - |
|
223 |
|
| - |
|
224 |
String subject = "Refferal Request Approved for " + refferal.getRefereeEmail();
|
| - |
|
225 |
String messageText = "Request Approved for" + refferal.getRefereeEmail();
|
| - |
|
226 |
|
| - |
|
227 |
this.sendMailWithAttachments(subject, messageText);
|
| 215 |
model.addAttribute("response", mvcResponseSender.createResponseString(true));
|
228 |
model.addAttribute("response", mvcResponseSender.createResponseString(true));
|
| 216 |
|
229 |
|
| 217 |
} else {
|
230 |
} else {
|
| 218 |
model.addAttribute("response", mvcResponseSender.createResponseString(false));
|
231 |
model.addAttribute("response", mvcResponseSender.createResponseString(false));
|
| 219 |
|
232 |
|
| 220 |
}
|
233 |
}
|
| 221 |
|
234 |
|
| 222 |
return "response";
|
235 |
return "response";
|
| 223 |
}
|
236 |
}
|
| 224 |
|
237 |
|
| - |
|
238 |
private void sendMailWithAttachments(String subject, String messageText) throws Exception {
|
| - |
|
239 |
MimeMessage message = mailSender.createMimeMessage();
|
| - |
|
240 |
MimeMessageHelper helper = new MimeMessageHelper(message, true);
|
| - |
|
241 |
String[] email = { "neerajgupta2021@gmail.com" };
|
| - |
|
242 |
helper.setSubject(subject);
|
| - |
|
243 |
helper.setText(messageText);
|
| - |
|
244 |
helper.setTo(email);
|
| - |
|
245 |
InternetAddress senderAddress = new InternetAddress("noreply@smartdukaan.com", "Smartdukaan Alerts");
|
| - |
|
246 |
helper.setFrom(senderAddress);
|
| - |
|
247 |
mailSender.send(message);
|
| - |
|
248 |
|
| - |
|
249 |
}
|
| - |
|
250 |
|
| 225 |
@RequestMapping(value = "/rejectRefferal", method = RequestMethod.PUT)
|
251 |
@RequestMapping(value = "/rejectRefferal", method = RequestMethod.PUT)
|
| 226 |
public String rejectRefferal(HttpServletRequest request,
|
252 |
public String rejectRefferal(HttpServletRequest request,
|
| 227 |
@RequestParam(name = "refferalId", defaultValue = "0") int refferalId, @RequestParam String rejectionReason,
|
253 |
@RequestParam(name = "refferalId", defaultValue = "0") int refferalId, @RequestParam String rejectionReason,
|
| 228 |
Model model) throws Exception {
|
254 |
Model model) throws Exception {
|
| 229 |
Refferal refferal = refferalRepository.selectById(refferalId);
|
255 |
Refferal refferal = refferalRepository.selectById(refferalId);
|
| Line 243... |
Line 269... |
| 243 |
return "response";
|
269 |
return "response";
|
| 244 |
}
|
270 |
}
|
| 245 |
|
271 |
|
| 246 |
@RequestMapping(value = "/approvedRefferals", method = RequestMethod.GET)
|
272 |
@RequestMapping(value = "/approvedRefferals", method = RequestMethod.GET)
|
| 247 |
public String approvedRefferals(HttpServletRequest request, Model model) throws Exception {
|
273 |
public String approvedRefferals(HttpServletRequest request, Model model) throws Exception {
|
| - |
|
274 |
|
| - |
|
275 |
Map<String, Long> pastApproved = null;
|
| 248 |
DateRangeModel drm = new DateRangeModel();
|
276 |
DateRangeModel drm = new DateRangeModel();
|
| 249 |
drm.setStartDate(LocalDateTime.now().minusMonths(1).withDayOfMonth(1));
|
277 |
drm.setStartDate(LocalDateTime.now().minusMonths(1).withDayOfMonth(1));
|
| 250 |
drm.setEndDate(LocalDateTime.now().minusMonths(1).withDayOfMonth(16));
|
278 |
drm.setEndDate(LocalDateTime.now().minusMonths(1).withDayOfMonth(16));
|
| 251 |
|
279 |
|
| 252 |
List<Refferal> previousMonthapprovedRefferal = refferalRepository
|
280 |
List<Refferal> previousMonthapprovedRefferal = refferalRepository
|
| Line 281... |
Line 309... |
| 281 |
|
309 |
|
| 282 |
Map<String, Long> oldApproved = oldPreMonthapproved.stream()
|
310 |
Map<String, Long> oldApproved = oldPreMonthapproved.stream()
|
| 283 |
.collect(Collectors.groupingBy(Refferal::getRefereeEmail, Collectors.counting()));
|
311 |
.collect(Collectors.groupingBy(Refferal::getRefereeEmail, Collectors.counting()));
|
| 284 |
LOGGER.info("preApproved" + preApproved);
|
312 |
LOGGER.info("preApproved" + preApproved);
|
| 285 |
|
313 |
|
| - |
|
314 |
if (preApproved.isEmpty() && oldApproved.isEmpty()) {
|
| - |
|
315 |
pastApproved = refferalRepository.selectByStatus(RefferalStatus.approved).stream()
|
| - |
|
316 |
.collect(Collectors.groupingBy(Refferal::getRefereeEmail, Collectors.counting()));
|
| - |
|
317 |
}
|
| - |
|
318 |
|
| 286 |
LOGGER.info("oldApproved" + oldApproved);
|
319 |
LOGGER.info("oldApproved" + oldApproved);
|
| - |
|
320 |
LOGGER.info("pastApproved" + pastApproved);
|
| 287 |
model.addAttribute("oldMonth", LocalDateTime.now().minusMonths(2).getMonth());
|
321 |
model.addAttribute("oldMonth", LocalDateTime.now().minusMonths(2).getMonth());
|
| 288 |
model.addAttribute("oldApproved", oldApproved);
|
322 |
model.addAttribute("oldApproved", oldApproved);
|
| 289 |
model.addAttribute("previousMonth", LocalDateTime.now().minusMonths(1).getMonth());
|
323 |
model.addAttribute("previousMonth", LocalDateTime.now().minusMonths(1).getMonth());
|
| - |
|
324 |
model.addAttribute("pastApproved", pastApproved);
|
| 290 |
model.addAttribute("preApproved", preApproved);
|
325 |
model.addAttribute("preApproved", preApproved);
|
| 291 |
|
326 |
|
| 292 |
return "refferal-approve";
|
327 |
return "refferal-approve";
|
| 293 |
}
|
328 |
}
|
| 294 |
|
329 |
|
| Line 321... |
Line 356... |
| 321 |
List<Refferal> preCurrMonthapproved = previousAndcurrentMonthapprovedRefferal.stream()
|
356 |
List<Refferal> preCurrMonthapproved = previousAndcurrentMonthapprovedRefferal.stream()
|
| 322 |
.filter(x -> x.getCreatedTimestamp().isBefore(currentMonthdate)).collect(Collectors.toList());
|
357 |
.filter(x -> x.getCreatedTimestamp().isBefore(currentMonthdate)).collect(Collectors.toList());
|
| 323 |
List<Refferal> approvedRefferals = new ArrayList<>(previousMonthapprovedRefferal);
|
358 |
List<Refferal> approvedRefferals = new ArrayList<>(previousMonthapprovedRefferal);
|
| 324 |
approvedRefferals.addAll(preCurrMonthapproved);
|
359 |
approvedRefferals.addAll(preCurrMonthapproved);
|
| 325 |
|
360 |
|
| - |
|
361 |
if (approvedRefferals.isEmpty()) {
|
| - |
|
362 |
List<Refferal> pastApproved = refferalRepository.selectByStatusAndEmailId(RefferalStatus.approved,
|
| - |
|
363 |
user.getEmailId());
|
| - |
|
364 |
approvedRefferals.addAll(pastApproved);
|
| - |
|
365 |
}
|
| 326 |
for (Refferal refferl : approvedRefferals) {
|
366 |
for (Refferal refferl : approvedRefferals) {
|
| 327 |
refferl.setStatus(RefferalStatus.transferred);
|
367 |
refferl.setStatus(RefferalStatus.transferred);
|
| 328 |
refferl.setUpdatedTimestamp(LocalDateTime.now());
|
368 |
refferl.setUpdatedTimestamp(LocalDateTime.now());
|
| 329 |
}
|
369 |
}
|
| 330 |
|
370 |
|