Subversion Repositories SmartDukaan

Rev

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

Rev 26766 Rev 26792
Line 26... Line 26...
26
import org.springframework.web.bind.annotation.RequestMethod;
26
import org.springframework.web.bind.annotation.RequestMethod;
27
import org.springframework.web.bind.annotation.RequestParam;
27
import org.springframework.web.bind.annotation.RequestParam;
28
 
28
 
29
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
29
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
30
import com.spice.profitmandi.common.model.CustomRetailer;
30
import com.spice.profitmandi.common.model.CustomRetailer;
-
 
31
import com.spice.profitmandi.common.model.FocusedModelShortageModel;
31
import com.spice.profitmandi.dao.entity.user.Refferal;
32
import com.spice.profitmandi.dao.entity.user.Refferal;
32
import com.spice.profitmandi.dao.entity.user.RefferalMonthlyAmount;
33
import com.spice.profitmandi.dao.entity.user.RefferalMonthlyAmount;
33
import com.spice.profitmandi.dao.entity.user.User;
34
import com.spice.profitmandi.dao.entity.user.User;
34
import com.spice.profitmandi.dao.enumuration.dtr.RefferalStatus;
35
import com.spice.profitmandi.dao.enumuration.dtr.RefferalStatus;
35
import com.spice.profitmandi.dao.model.DateRangeModel;
36
import com.spice.profitmandi.dao.model.DateRangeModel;
Line 199... Line 200...
199
			refferal.setStatus(RefferalStatus.validate);
200
			refferal.setStatus(RefferalStatus.validate);
200
			refferal.setUpdatedTimestamp(LocalDateTime.now());
201
			refferal.setUpdatedTimestamp(LocalDateTime.now());
201
			refferalRepository.persist(refferal);
202
			refferalRepository.persist(refferal);
202
			model.addAttribute("response", mvcResponseSender.createResponseString(true));
203
			model.addAttribute("response", mvcResponseSender.createResponseString(true));
203
 
204
 
-
 
205
			String subject = "Referral Approval Request for " + refferal.getRefereeEmail();
-
 
206
 
-
 
207
			String messageText = this.getMessageForReferral(refferal);
-
 
208
			MimeMessage message = mailSender.createMimeMessage();
-
 
209
			MimeMessageHelper helper = new MimeMessageHelper(message, true);
-
 
210
			String[] email = { "tarun.verma@smartdukaan.com", "tejbeer.kaur@shop2020.in" };
-
 
211
			helper.setSubject(subject);
-
 
212
			helper.setText(messageText, true);
-
 
213
			helper.setTo(email);
-
 
214
			InternetAddress senderAddress = new InternetAddress("noreply@smartdukaan.com", "Smartdukaan Alerts");
-
 
215
			helper.setFrom(senderAddress);
-
 
216
			mailSender.send(message);
-
 
217
 
204
		} else {
218
		} else {
205
			model.addAttribute("response", mvcResponseSender.createResponseString(false));
219
			model.addAttribute("response", mvcResponseSender.createResponseString(false));
206
 
220
 
207
		}
221
		}
208
 
222
 
209
		return "response";
223
		return "response";
210
	}
224
	}
211
 
225
 
-
 
226
	private String getMessageForReferral(Refferal referral) {
-
 
227
 
-
 
228
		StringBuilder sb = new StringBuilder();
-
 
229
		sb.append("<html><body><p>Alert</p><p> Referral Requests:-</p>"
-
 
230
				+ "<br/><table style='border:1px solid black ;padding: 5px';>");
-
 
231
		sb.append("<tbody>\n" + "	    				<tr>\n"
-
 
232
				+ "	    					<th style='border:1px solid black;padding: 5px'>RefereeName</th>\n"
-
 
233
				+ "	    					<th style='border:1px solid black;padding: 5px'>Referee Email</th>\n"
-
 
234
				+ "	    					<th style='border:1px solid black;padding: 5px'>Referral Name</th>\n"
-
 
235
				+ "	    					<th style='border:1px solid black;padding: 5px'>Refferal Mobile</th>\n"
-
 
236
				+ "	    					<th style='border:1px solid black;padding: 5px'>city</th>\n"
-
 
237
				+ "	    					<th style='border:1px solid black;padding: 5px'>state</th>\n"
-
 
238
				+ "	    				</tr>");
-
 
239
 
-
 
240
		sb.append("<tr>");
-
 
241
		sb.append("<td style='border:1px solid black;padding: 5px'>" + referral.getRefereeName() + "</td>");
-
 
242
 
-
 
243
		sb.append("<td style='border:1px solid black;padding: 5px'>" + referral.getRefereeEmail() + "</td>");
-
 
244
		sb.append("<td style='border:1px solid black;padding: 5px'>" + referral.getFirstName() + "</td>");
-
 
245
		sb.append("<td style='border:1px solid black;padding: 5px'>" + referral.getMobile() + "</td>");
-
 
246
		sb.append("<td style='border:1px solid black;padding: 5px'>" + referral.getCity() + "</td>");
-
 
247
		sb.append("<td style='border:1px solid black;padding: 5px'>" + referral.getState() + "</td>");
-
 
248
 
-
 
249
		sb.append("</tr>");
-
 
250
 
-
 
251
		sb.append("</tbody></table></body></html>");
-
 
252
 
-
 
253
		return sb.toString();
-
 
254
	}
-
 
255
 
212
	@RequestMapping(value = "/approveRefferal", method = RequestMethod.PUT)
256
	@RequestMapping(value = "/approveRefferal", method = RequestMethod.PUT)
213
	public String approveRefferal(HttpServletRequest request,
257
	public String approveRefferal(HttpServletRequest request,
214
			@RequestParam(name = "refferalId", defaultValue = "0") int refferalId, Model model) throws Exception {
258
			@RequestParam(name = "refferalId", defaultValue = "0") int refferalId, Model model) throws Exception {
215
 
259
 
216
		Refferal refferal = refferalRepository.selectById(refferalId);
260
		Refferal refferal = refferalRepository.selectById(refferalId);
Line 219... Line 263...
219
			refferal.setStatus(RefferalStatus.approved);
263
			refferal.setStatus(RefferalStatus.approved);
220
			refferal.setUpdatedTimestamp(LocalDateTime.now());
264
			refferal.setUpdatedTimestamp(LocalDateTime.now());
221
			refferal.setApprovedTimestamp(LocalDateTime.now());
265
			refferal.setApprovedTimestamp(LocalDateTime.now());
222
			refferalRepository.persist(refferal);
266
			refferalRepository.persist(refferal);
223
 
267
 
224
			String subject = "Refferal Request Approved for " + refferal.getRefereeEmail();
268
			String subject = "Referral Request Approved for " + refferal.getRefereeEmail();
225
			String messageText = "Request Approved for" + refferal.getRefereeEmail();
269
			String messageText = this.getMessageForReferral(refferal);
226
 
270
 
227
			this.sendMailWithAttachments(subject, messageText);
271
			this.sendMailWithAttachments(subject, messageText);
228
			model.addAttribute("response", mvcResponseSender.createResponseString(true));
272
			model.addAttribute("response", mvcResponseSender.createResponseString(true));
229
 
273
 
230
		} else {
274
		} else {
Line 236... Line 280...
236
	}
280
	}
237
 
281
 
238
	private void sendMailWithAttachments(String subject, String messageText) throws Exception {
282
	private void sendMailWithAttachments(String subject, String messageText) throws Exception {
239
		MimeMessage message = mailSender.createMimeMessage();
283
		MimeMessage message = mailSender.createMimeMessage();
240
		MimeMessageHelper helper = new MimeMessageHelper(message, true);
284
		MimeMessageHelper helper = new MimeMessageHelper(message, true);
241
		String[] email = { "neerajgupta2021@gmail.com" };
285
		String[] email = { "neeraj.gupta@smartdukaan.com" };
242
		helper.setSubject(subject);
286
		helper.setSubject(subject);
243
		helper.setText(messageText);
287
		helper.setText(messageText, true);
244
		helper.setTo(email);
288
		helper.setTo(email);
245
		InternetAddress senderAddress = new InternetAddress("noreply@smartdukaan.com", "Smartdukaan Alerts");
289
		InternetAddress senderAddress = new InternetAddress("noreply@smartdukaan.com", "Smartdukaan Alerts");
246
		helper.setFrom(senderAddress);
290
		helper.setFrom(senderAddress);
247
		mailSender.send(message);
291
		mailSender.send(message);
248
 
292
 
Line 270... Line 314...
270
	}
314
	}
271
 
315
 
272
	@RequestMapping(value = "/approvedRefferals", method = RequestMethod.GET)
316
	@RequestMapping(value = "/approvedRefferals", method = RequestMethod.GET)
273
	public String approvedRefferals(HttpServletRequest request, Model model) throws Exception {
317
	public String approvedRefferals(HttpServletRequest request, Model model) throws Exception {
274
 
318
 
275
		Map<String, Long> pastApproved = null;
319
		Map<String, Long> pastApprovedCountMap = null;
-
 
320
		List<Refferal> pastrefferal = null;
-
 
321
 
276
		DateRangeModel drm = new DateRangeModel();
322
		DateRangeModel drm = new DateRangeModel();
277
		drm.setStartDate(LocalDateTime.now().minusMonths(1).withDayOfMonth(1));
323
		drm.setStartDate(LocalDateTime.now().minusMonths(1).withDayOfMonth(1));
278
		drm.setEndDate(LocalDateTime.now().minusMonths(1).withDayOfMonth(16));
324
		drm.setEndDate(LocalDateTime.now().minusMonths(1).withDayOfMonth(16));
279
 
325
 
280
		List<Refferal> previousMonthapprovedRefferal = refferalRepository
326
		List<Refferal> previousMonthapprovedRefferal = refferalRepository
Line 287... Line 333...
287
		List<Refferal> preCurrMonthapproved = refferalRepository
333
		List<Refferal> preCurrMonthapproved = refferalRepository
288
				.selectByStatusAndDateRange(RefferalStatus.approved, drm).stream()
334
				.selectByStatusAndDateRange(RefferalStatus.approved, drm).stream()
289
				.filter(x -> x.getCreatedTimestamp().isBefore(currentMonthdate)).collect(Collectors.toList());
335
				.filter(x -> x.getCreatedTimestamp().isBefore(currentMonthdate)).collect(Collectors.toList());
290
		preCurrMonthapproved.addAll(previousMonthapprovedRefferal);
336
		preCurrMonthapproved.addAll(previousMonthapprovedRefferal);
291
 
337
 
-
 
338
		LOGGER.info("preCurrMonthapproved" + preCurrMonthapproved);
-
 
339
 
292
		Map<String, Long> preApproved = preCurrMonthapproved.stream()
340
		Map<String, Long> preApproved = preCurrMonthapproved.stream()
293
				.collect(Collectors.groupingBy(Refferal::getRefereeEmail, Collectors.counting()));
341
				.collect(Collectors.groupingBy(Refferal::getRefereeEmail, Collectors.counting()));
294
 
342
 
295
		drm.setStartDate(LocalDateTime.now().minusMonths(2).withDayOfMonth(1));
343
		drm.setStartDate(LocalDateTime.now().minusMonths(2).withDayOfMonth(1));
296
		drm.setEndDate(LocalDateTime.now().minusMonths(2).withDayOfMonth(16));
344
		drm.setEndDate(LocalDateTime.now().minusMonths(2).withDayOfMonth(16));
Line 304... Line 352...
304
 
352
 
305
		List<Refferal> oldPreMonthapproved = refferalRepository.selectByStatusAndDateRange(RefferalStatus.approved, drm)
353
		List<Refferal> oldPreMonthapproved = refferalRepository.selectByStatusAndDateRange(RefferalStatus.approved, drm)
306
				.stream().filter(x -> x.getCreatedTimestamp().isBefore(previousMonthdate)).collect(Collectors.toList());
354
				.stream().filter(x -> x.getCreatedTimestamp().isBefore(previousMonthdate)).collect(Collectors.toList());
307
 
355
 
308
		oldPreMonthapproved.addAll(oldMonthapprovedRefferal);
356
		oldPreMonthapproved.addAll(oldMonthapprovedRefferal);
-
 
357
		LOGGER.info("oldPreMonthapproved" + oldPreMonthapproved);
309
 
358
 
310
		Map<String, Long> oldApproved = oldPreMonthapproved.stream()
359
		Map<String, Long> oldApproved = oldPreMonthapproved.stream()
311
				.collect(Collectors.groupingBy(Refferal::getRefereeEmail, Collectors.counting()));
360
				.collect(Collectors.groupingBy(Refferal::getRefereeEmail, Collectors.counting()));
312
		LOGGER.info("preApproved" + preApproved);
361
		LOGGER.info("preApproved" + preApproved);
313
 
362
 
314
		if (preApproved.isEmpty() && oldApproved.isEmpty()) {
363
		if (preApproved.isEmpty() && oldApproved.isEmpty()) {
-
 
364
 
315
			pastApproved = refferalRepository.selectByStatus(RefferalStatus.approved).stream()
365
			pastrefferal = refferalRepository.selectByStatus(RefferalStatus.approved);
-
 
366
			pastApprovedCountMap = pastrefferal.stream()
316
					.collect(Collectors.groupingBy(Refferal::getRefereeEmail, Collectors.counting()));
367
					.collect(Collectors.groupingBy(Refferal::getRefereeEmail, Collectors.counting()));
317
		}
368
		}
318
 
369
 
-
 
370
		LOGGER.info("refferal" + pastrefferal);
319
		LOGGER.info("oldApproved" + oldApproved);
371
		LOGGER.info("oldApproved" + oldApproved);
320
		LOGGER.info("pastApproved" + pastApproved);
372
		LOGGER.info("pastApproved" + pastApprovedCountMap);
321
		model.addAttribute("oldMonth", LocalDateTime.now().minusMonths(2).getMonth());
373
		model.addAttribute("oldMonth", LocalDateTime.now().minusMonths(2).getMonth());
322
		model.addAttribute("oldApproved", oldApproved);
374
		model.addAttribute("oldApproved", oldApproved);
-
 
375
		model.addAttribute("oldPreMonthapproved", oldPreMonthapproved);
323
		model.addAttribute("previousMonth", LocalDateTime.now().minusMonths(1).getMonth());
376
		model.addAttribute("previousMonth", LocalDateTime.now().minusMonths(1).getMonth());
324
		model.addAttribute("pastApproved", pastApproved);
377
		model.addAttribute("pastApproved", pastApprovedCountMap);
-
 
378
		model.addAttribute("pastrefferal", pastrefferal);
325
		model.addAttribute("preApproved", preApproved);
379
		model.addAttribute("preApproved", preApproved);
-
 
380
		model.addAttribute("preCurrMonthapproved", preCurrMonthapproved);
326
 
381
 
327
		return "refferal-approve";
382
		return "refferal-approve";
328
	}
383
	}
329
 
384
 
330
	@RequestMapping(value = "/addMoneyToWallet", method = RequestMethod.POST)
385
	@RequestMapping(value = "/addMoneyToWallet", method = RequestMethod.POST)
Line 338... Line 393...
338
			rfm.setAmount(amount);
393
			rfm.setAmount(amount);
339
			rfm.setCount(count);
394
			rfm.setCount(count);
340
			rfm.setRefereeEmail(user.getEmailId());
395
			rfm.setRefereeEmail(user.getEmailId());
341
			rfm.setCreatedTimstamp(LocalDateTime.now());
396
			rfm.setCreatedTimstamp(LocalDateTime.now());
342
			refferalMonthlyAmountRepository.persist(rfm);
397
			refferalMonthlyAmountRepository.persist(rfm);
343
			walletService.addAmountToWallet(user.getId(), rfm.getId(), WalletReferenceType.CASHBACK,
398
			walletService.addAmountToWallet(user.getId(), rfm.getId(), WalletReferenceType.REFERRAL_INCENTIVES,
344
					count + "referral of" + month + "Month", amount, LocalDateTime.now());
399
					count + "referral of" + month + "Month", amount, LocalDateTime.now());
345
 
400
 
346
			DateRangeModel drm = new DateRangeModel();
401
			DateRangeModel drm = new DateRangeModel();
347
			drm.setStartDate(LocalDateTime.now().minusMonths(1).withDayOfMonth(1));
402
			drm.setStartDate(LocalDateTime.now().minusMonths(1).withDayOfMonth(1));
348
			drm.setEndDate(LocalDateTime.now().minusMonths(1).withDayOfMonth(16));
403
			drm.setEndDate(LocalDateTime.now().minusMonths(1).withDayOfMonth(16));