Subversion Repositories SmartDukaan

Rev

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

Rev 29890 Rev 29891
Line 1... Line 1...
1
package com.spice.profitmandi.web.controller;
1
package com.spice.profitmandi.web.controller;
2
 
2
 
3
import java.time.LocalDateTime;
3
import java.time.LocalDateTime;
4
import java.util.ArrayList;
4
import java.util.ArrayList;
-
 
5
import java.util.HashMap;
5
import java.util.List;
6
import java.util.List;
6
import java.util.Map;
7
import java.util.Map;
-
 
8
import java.util.Set;
7
import java.util.stream.Collectors;
9
import java.util.stream.Collectors;
8
 
10
 
9
import javax.mail.internet.InternetAddress;
11
import javax.mail.internet.InternetAddress;
10
import javax.mail.internet.MimeMessage;
12
import javax.mail.internet.MimeMessage;
11
import javax.servlet.http.HttpServletRequest;
13
import javax.servlet.http.HttpServletRequest;
Line 21... Line 23...
21
import org.springframework.web.bind.annotation.RequestMapping;
23
import org.springframework.web.bind.annotation.RequestMapping;
22
import org.springframework.web.bind.annotation.RequestMethod;
24
import org.springframework.web.bind.annotation.RequestMethod;
23
import org.springframework.web.bind.annotation.RequestParam;
25
import org.springframework.web.bind.annotation.RequestParam;
24
 
26
 
25
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
27
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
-
 
28
import com.spice.profitmandi.common.model.CustomRetailer;
26
import com.spice.profitmandi.dao.entity.user.Refferal;
29
import com.spice.profitmandi.dao.entity.user.Refferal;
27
import com.spice.profitmandi.dao.entity.user.RefferalMonthlyAmount;
30
import com.spice.profitmandi.dao.entity.user.RefferalMonthlyAmount;
28
import com.spice.profitmandi.dao.entity.user.User;
31
import com.spice.profitmandi.dao.entity.user.User;
29
import com.spice.profitmandi.dao.enumuration.dtr.RefferalStatus;
32
import com.spice.profitmandi.dao.enumuration.dtr.RefferalStatus;
30
import com.spice.profitmandi.dao.model.DateRangeModel;
33
import com.spice.profitmandi.dao.model.DateRangeModel;
Line 62... Line 65...
62
 
65
 
63
	@Autowired
66
	@Autowired
64
	private UserRepository userRepository;
67
	private UserRepository userRepository;
65
 
68
 
66
	@Autowired
69
	@Autowired
-
 
70
	private com.spice.profitmandi.dao.repository.user.UserRepository userUserRepository;
-
 
71
 
-
 
72
	@Autowired
67
	JavaMailSender mailSender;
73
	JavaMailSender mailSender;
68
 
74
 
69
	private static final Logger LOGGER = LogManager.getLogger(RefferalRepository.class);
75
	private static final Logger LOGGER = LogManager.getLogger(RefferalRepository.class);
70
 
76
 
71
	@RequestMapping(value = "/getRefferalsRequest", method = RequestMethod.GET)
77
	@RequestMapping(value = "/getRefferalsRequest", method = RequestMethod.GET)
72
	public String getRefferalsRequest(HttpServletRequest request,
78
	public String getRefferalsRequest(HttpServletRequest request, Model model) throws ProfitMandiBusinessException {
73
			@RequestParam(name = "offset", defaultValue = "0") int offset,
-
 
74
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
-
 
75
			throws ProfitMandiBusinessException {
-
 
76
 
-
 
77
		List<Refferal> refferals = null;
-
 
78
		long size = 0;
-
 
79
		refferals = refferalRepository.selectAllRefferalByStatus(offset, limit, RefferalStatus.pending);
-
 
80
		LOGGER.info("refferals" + refferals);
-
 
81
		size = refferalRepository.selectCountByStatus(RefferalStatus.pending);
-
 
82
		if (!refferals.isEmpty()) {
-
 
83
 
79
 
84
			model.addAttribute("refferals", refferals);
-
 
85
			model.addAttribute("start", offset + 1);
-
 
86
			model.addAttribute("rStatus", "pending");
-
 
87
 
-
 
88
			model.addAttribute("size", size);
-
 
89
			model.addAttribute("url", "/getPaginatedRefferalsRequest");
80
		List<Refferal> refferals = refferalRepository.selectByStatus(RefferalStatus.pending);
90
 
-
 
91
			if (refferals.size() < limit) {
-
 
92
				model.addAttribute("end", offset + refferals.size());
-
 
93
			} else {
-
 
94
				model.addAttribute("end", offset + limit);
-
 
95
			}
-
 
96
 
81
 
97
		} else {
82
		Map<String, CustomRetailer> customerRetailerMap = new HashMap<>();
98
 
83
 
99
			model.addAttribute("refferals", refferals);
84
		if (!refferals.isEmpty()) {
100
			model.addAttribute("size", size);
-
 
101
 
85
 
102
		}
-
 
-
 
86
			Set<String> emails = refferals.stream().map(x -> x.getRefereeEmail()).collect(Collectors.toSet());
103
 
87
 
104
		return "refferal";
88
			List<User> users = userUserRepository.selectByEmailIds(emails);
105
	}
-
 
106
 
89
 
107
	@RequestMapping(value = "/getPaginatedRefferalsRequest", method = RequestMethod.GET)
-
 
108
	public String getPaginatedRefferalsRequest(HttpServletRequest request,
-
 
109
			@RequestParam(name = "offset", defaultValue = "0") int offset,
-
 
110
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws Exception {
-
 
111
		LOGGER.info("requested offset=[{}], limit = [{}]", offset, limit);
-
 
112
		List<Refferal> refferals = null;
-
 
113
		refferals = refferalRepository.selectAllRefferalByStatus(offset, limit, RefferalStatus.pending);
90
			List<Integer> fofoIds = users.stream().map(x -> x.getId()).collect(Collectors.toList());
114
		LOGGER.info("refferals" + refferals);
-
 
115
		if (!refferals.isEmpty()) {
-
 
116
 
91
 
117
			model.addAttribute("refferals", refferals);
-
 
118
			model.addAttribute("rStatus", "pending");
-
 
119
			model.addAttribute("url", "/getPaginatedRefferalsRequest");
92
			Map<Integer, CustomRetailer> customRetailers = retailerService.getFofoRetailers(fofoIds);
120
 
93
 
121
		} else {
94
			customerRetailerMap = customRetailers.entrySet().stream()
122
			model.addAttribute("refferals", refferals);
95
					.collect(Collectors.toMap(x -> x.getValue().getEmail(), x -> x.getValue()));
123
 
96
 
124
		}
97
		}
-
 
98
		model.addAttribute("customerRetailerMap", customerRetailerMap);
125
 
99
 
-
 
100
		model.addAttribute("rStatus", "pending");
-
 
101
 
-
 
102
		model.addAttribute("refferals", refferals);
-
 
103
 
126
		return "refferal-paginated";
104
		return "refferal";
127
	}
105
	}
128
 
106
 
129
	@RequestMapping(value = "/getValidateRefferals", method = RequestMethod.GET)
107
	@RequestMapping(value = "/getValidateRefferals", method = RequestMethod.GET)
130
	public String getValidateRefferals(HttpServletRequest request,
108
	public String getValidateRefferals(HttpServletRequest request, Model model) throws ProfitMandiBusinessException {
131
			@RequestParam(name = "offset", defaultValue = "0") int offset,
-
 
132
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
-
 
133
			throws ProfitMandiBusinessException {
-
 
134
 
-
 
135
		List<Refferal> refferals = null;
-
 
136
		long size = 0;
-
 
137
		refferals = refferalRepository.selectAllRefferalByStatus(offset, limit, RefferalStatus.validate);
-
 
138
		LOGGER.info("refferals" + refferals);
-
 
139
		size = refferalRepository.selectCountByStatus(RefferalStatus.validate);
-
 
140
		if (!refferals.isEmpty()) {
-
 
141
 
109
 
142
			model.addAttribute("refferals", refferals);
-
 
143
			model.addAttribute("start", offset + 1);
-
 
144
			model.addAttribute("rStatus", "validate");
-
 
145
 
-
 
146
			model.addAttribute("size", size);
-
 
147
			model.addAttribute("url", "/getPaginatedValidateRefferals");
110
		List<Refferal> refferals = refferalRepository.selectByStatus(RefferalStatus.validate);
148
 
-
 
149
			if (refferals.size() < limit) {
-
 
150
				model.addAttribute("end", offset + refferals.size());
-
 
151
			} else {
-
 
152
				model.addAttribute("end", offset + limit);
-
 
153
			}
-
 
154
 
111
 
155
		} else {
112
		Map<String, CustomRetailer> customerRetailerMap = new HashMap<>();
156
 
113
 
157
			model.addAttribute("refferals", refferals);
114
		if (!refferals.isEmpty()) {
158
			model.addAttribute("size", size);
-
 
159
 
115
 
160
		}
-
 
-
 
116
			Set<String> emails = refferals.stream().map(x -> x.getRefereeEmail()).collect(Collectors.toSet());
161
 
117
 
162
		return "refferal";
118
			List<User> users = userUserRepository.selectByEmailIds(emails);
163
	}
-
 
164
 
119
 
165
	@RequestMapping(value = "/getPaginatedValidateRefferals", method = RequestMethod.GET)
-
 
166
	public String getPaginatedValidateRefferals(HttpServletRequest request,
-
 
167
			@RequestParam(name = "offset", defaultValue = "0") int offset,
-
 
168
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws Exception {
-
 
169
		LOGGER.info("requested offset=[{}], limit = [{}]", offset, limit);
-
 
170
		List<Refferal> refferals = null;
-
 
171
		refferals = refferalRepository.selectAllRefferalByStatus(offset, limit, RefferalStatus.validate);
120
			List<Integer> fofoIds = users.stream().map(x -> x.getId()).collect(Collectors.toList());
172
		LOGGER.info("refferals" + refferals);
-
 
173
		if (!refferals.isEmpty()) {
-
 
174
 
121
 
175
			model.addAttribute("refferals", refferals);
-
 
176
			model.addAttribute("rStatus", "validate");
-
 
177
			model.addAttribute("url", "/getPaginatedValidateRefferals");
122
			Map<Integer, CustomRetailer> customRetailers = retailerService.getFofoRetailers(fofoIds);
178
 
123
 
179
		} else {
124
			customerRetailerMap = customRetailers.entrySet().stream()
180
			model.addAttribute("refferals", refferals);
125
					.collect(Collectors.toMap(x -> x.getValue().getEmail(), x -> x.getValue()));
181
 
126
 
182
		}
127
		}
-
 
128
		model.addAttribute("customerRetailerMap", customerRetailerMap);
-
 
129
 
-
 
130
		model.addAttribute("refferals", refferals);
-
 
131
		model.addAttribute("rStatus", "validate");
183
 
132
 
184
		return "refferal-paginated";
133
		return "refferal";
185
	}
134
	}
186
 
135
 
187
	@RequestMapping(value = "/validateRefferal", method = RequestMethod.PUT)
136
	@RequestMapping(value = "/validateRefferal", method = RequestMethod.PUT)
188
	public String validateRefferal(HttpServletRequest request,
137
	public String validateRefferal(HttpServletRequest request,
189
			@RequestParam(name = "refferalId", defaultValue = "0") int refferalId, Model model) throws Exception {
138
			@RequestParam(name = "refferalId", defaultValue = "0") int refferalId, Model model) throws Exception {
Line 360... Line 309...
360
			pastrefferal = refferalRepository.selectByStatus(RefferalStatus.approved);
309
			pastrefferal = refferalRepository.selectByStatus(RefferalStatus.approved);
361
			pastApprovedCountMap = pastrefferal.stream()
310
			pastApprovedCountMap = pastrefferal.stream()
362
					.collect(Collectors.groupingBy(Refferal::getRefereeEmail, Collectors.counting()));
311
					.collect(Collectors.groupingBy(Refferal::getRefereeEmail, Collectors.counting()));
363
		}
312
		}
364
 
313
 
-
 
314
		List<Refferal> referalslist = new ArrayList<>();
-
 
315
		referalslist.addAll(oldPreMonthapproved);
-
 
316
		referalslist.addAll(pastrefferal);
-
 
317
		referalslist.addAll(preCurrMonthapproved);
-
 
318
 
-
 
319
		Map<String, CustomRetailer> customerRetailerMap = new HashMap<>();
-
 
320
 
-
 
321
		if (!referalslist.isEmpty()) {
-
 
322
 
-
 
323
			Set<String> emails = referalslist.stream().map(x -> x.getRefereeEmail()).collect(Collectors.toSet());
-
 
324
 
-
 
325
			List<User> users = userUserRepository.selectByEmailIds(emails);
-
 
326
 
-
 
327
			List<Integer> fofoIds = users.stream().map(x -> x.getId()).collect(Collectors.toList());
-
 
328
 
-
 
329
			Map<Integer, CustomRetailer> customRetailers = retailerService.getFofoRetailers(fofoIds);
-
 
330
 
-
 
331
			customerRetailerMap = customRetailers.entrySet().stream()
-
 
332
					.collect(Collectors.toMap(x -> x.getValue().getEmail(), x -> x.getValue()));
-
 
333
 
-
 
334
		}
-
 
335
		model.addAttribute("customerRetailerMap", customerRetailerMap);
-
 
336
 
365
		LOGGER.info("refferal" + pastrefferal);
337
		LOGGER.info("refferal" + pastrefferal);
366
		LOGGER.info("oldApproved" + oldApproved);
338
		LOGGER.info("oldApproved" + oldApproved);
367
		LOGGER.info("pastApproved" + pastApprovedCountMap);
339
		LOGGER.info("pastApproved" + pastApprovedCountMap);
368
		model.addAttribute("oldMonth", LocalDateTime.now().minusMonths(2).getMonth());
340
		model.addAttribute("oldMonth", LocalDateTime.now().minusMonths(2).getMonth());
369
		model.addAttribute("oldApproved", oldApproved);
341
		model.addAttribute("oldApproved", oldApproved);
Line 470... Line 442...
470
		}
442
		}
471
		return "response";
443
		return "response";
472
	}
444
	}
473
 
445
 
474
	@RequestMapping(value = "/getTransferredRefferals", method = RequestMethod.GET)
446
	@RequestMapping(value = "/getTransferredRefferals", method = RequestMethod.GET)
475
	public String getTransferredRefferals(HttpServletRequest request,
447
	public String getTransferredRefferals(HttpServletRequest request, Model model) throws ProfitMandiBusinessException {
476
			@RequestParam(name = "offset", defaultValue = "0") int offset,
-
 
477
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
-
 
478
			throws ProfitMandiBusinessException {
-
 
479
 
448
 
480
		List<Refferal> refferals = null;
-
 
481
		long size = 0;
-
 
482
		refferals = refferalRepository.selectAllRefferalByStatus(offset, limit, RefferalStatus.transferred);
449
		List<Refferal> refferals = refferalRepository.selectByStatus(RefferalStatus.transferred);
483
		LOGGER.info("refferals" + refferals);
-
 
484
		size = refferalRepository.selectCountByStatus(RefferalStatus.transferred);
450
		Map<String, CustomRetailer> customerRetailerMap = new HashMap<>();
-
 
451
 
485
		if (!refferals.isEmpty()) {
452
		if (!refferals.isEmpty()) {
486
 
453
 
487
			model.addAttribute("refferals", refferals);
-
 
488
			model.addAttribute("start", offset + 1);
-
 
489
			model.addAttribute("size", size);
-
 
490
			model.addAttribute("url", "/getPaginatedTransferredRefferals");
454
			Set<String> emails = refferals.stream().map(x -> x.getRefereeEmail()).collect(Collectors.toSet());
491
 
-
 
492
			if (refferals.size() < limit) {
-
 
493
				model.addAttribute("end", offset + refferals.size());
-
 
494
			} else {
-
 
495
				model.addAttribute("end", offset + limit);
-
 
496
			}
-
 
497
 
455
 
-
 
456
			List<User> users = userUserRepository.selectByEmailIds(emails);
498
		} else {
457
 
-
 
458
			List<Integer> fofoIds = users.stream().map(x -> x.getId()).collect(Collectors.toList());
499
 
459
 
500
			model.addAttribute("refferals", refferals);
460
			Map<Integer, CustomRetailer> customRetailers = retailerService.getFofoRetailers(fofoIds);
-
 
461
 
501
			model.addAttribute("size", size);
462
			customerRetailerMap = customRetailers.entrySet().stream()
-
 
463
					.collect(Collectors.toMap(x -> x.getValue().getEmail(), x -> x.getValue()));
502
 
464
 
503
		}
465
		}
-
 
466
		model.addAttribute("customerRetailerMap", customerRetailerMap);
-
 
467
 
-
 
468
		model.addAttribute("refferals", refferals);
504
 
469
 
505
		return "refferal";
470
		return "refferal";
506
	}
471
	}
507
 
472
 
508
	@RequestMapping(value = "/getPaginatedTransferredRefferals", method = RequestMethod.GET)
473
	@RequestMapping(value = "/getPaginatedTransferredRefferals", method = RequestMethod.GET)