Subversion Repositories SmartDukaan

Rev

Rev 26498 | Rev 26792 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 26498 Rev 26766
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