Subversion Repositories SmartDukaan

Rev

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

Rev 24263 Rev 24349
Line 1... Line 1...
1
package com.spice.profitmandi.web.controller;
1
package com.spice.profitmandi.web.controller;
2
 
2
 
3
import java.io.File;
3
import java.io.File;
4
import java.io.FileInputStream;
4
import java.io.FileInputStream;
5
import java.io.FileNotFoundException;
5
import java.io.FileNotFoundException;
-
 
6
import java.time.LocalDate;
6
import java.time.LocalDateTime;
7
import java.time.LocalDateTime;
7
import java.util.ArrayList;
8
import java.util.ArrayList;
-
 
9
import java.util.HashMap;
8
import java.util.List;
10
import java.util.List;
9
import java.util.Map;
11
import java.util.Map;
10
import java.util.stream.Collectors;
12
import java.util.stream.Collectors;
11
 
13
 
12
import javax.servlet.http.HttpServletRequest;
14
import javax.servlet.http.HttpServletRequest;
Line 53... Line 55...
53
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
55
import com.spice.profitmandi.dao.repository.dtr.RetailerRepository;
54
import com.spice.profitmandi.dao.repository.dtr.ShopRepository;
56
import com.spice.profitmandi.dao.repository.dtr.ShopRepository;
55
import com.spice.profitmandi.dao.repository.user.LocationRepository;
57
import com.spice.profitmandi.dao.repository.user.LocationRepository;
56
import com.spice.profitmandi.dao.repository.user.PromoterRepository;
58
import com.spice.profitmandi.dao.repository.user.PromoterRepository;
57
import com.spice.profitmandi.dao.repository.user.UserRepository;
59
import com.spice.profitmandi.dao.repository.user.UserRepository;
-
 
60
import com.spice.profitmandi.service.PartnerInvestmentService;
58
import com.spice.profitmandi.service.inventory.InventoryService;
61
import com.spice.profitmandi.service.inventory.InventoryService;
59
import com.spice.profitmandi.service.user.RetailerService;
62
import com.spice.profitmandi.service.user.RetailerService;
60
import com.spice.profitmandi.web.util.MVCResponseSender;
63
import com.spice.profitmandi.web.util.MVCResponseSender;
61
 
64
 
62
@Controller
65
@Controller
Line 98... Line 101...
98
 
101
 
99
	@Autowired
102
	@Autowired
100
	private PromoterRepository promoterRepository;
103
	private PromoterRepository promoterRepository;
101
 
104
 
102
	@Autowired
105
	@Autowired
-
 
106
	private PartnerInvestmentService partnerInvestmentService;
-
 
107
 
-
 
108
	@Autowired
103
	private Mongo mongoClient;
109
	private Mongo mongoClient;
104
 
110
 
105
	@RequestMapping(value = "/retailerDetails", method = RequestMethod.GET)
111
	@RequestMapping(value = "/retailerDetails", method = RequestMethod.GET)
106
	public String retailerInfoByEmailIdOrMobileNumber(HttpServletRequest request,
112
	public String retailerInfoByEmailIdOrMobileNumber(HttpServletRequest request,
107
			@RequestParam(name = ProfitMandiConstants.EMAIL_ID_OR_MOBILE_NUMBER) String emailIdOrMobileNumber,
113
			@RequestParam(name = ProfitMandiConstants.EMAIL_ID_OR_MOBILE_NUMBER) String emailIdOrMobileNumber,
Line 270... Line 276...
270
 
276
 
271
	@GetMapping(value = "/getAllStores")
277
	@GetMapping(value = "/getAllStores")
272
	public String getAllStores(HttpServletRequest request, Model model) {
278
	public String getAllStores(HttpServletRequest request, Model model) {
273
 
279
 
274
		List<FofoStore> fofoStores = fofoStoreRepository.selectAll();
280
		List<FofoStore> fofoStores = fofoStoreRepository.selectAll();
-
 
281
		Map<Integer, Boolean> investments = new HashMap<>();
275
 
282
 
276
		LOGGER.info(this.getFofoIds(fofoStores));
283
		for (FofoStore fofoStore : fofoStores) {
-
 
284
			boolean isOk = false;
-
 
285
			if (fofoStore.getGraceDate() != null && fofoStore.getGraceDate().isAfter(LocalDate.now())) {
-
 
286
				isOk = true;
-
 
287
			} else {
-
 
288
				try {
-
 
289
					isOk = partnerInvestmentService.isInvestmentOk(fofoStore.getId(), 10, 30);
-
 
290
					if(fofoStore.getGraceCount() > 0) {
-
 
291
						fofoStore.setGraceDate(null);
-
 
292
						fofoStore.setGraceCount(0);
-
 
293
						fofoStoreRepository.persist(fofoStore);
-
 
294
					}
-
 
295
				} catch (ProfitMandiBusinessException e) {
-
 
296
				}
277
 
297
			}
278
		Map<Integer, CustomRetailer> customRetailers = retailerService.getFofoRetailers(this.getFofoIds(fofoStores));
298
			investments.put(fofoStore.getId(), isOk);
-
 
299
		}
279
 
300
 
-
 
301
		Map<Integer, CustomRetailer> customRetailers = retailerService.getFofoRetailers();
280
		model.addAttribute("fofoStores", fofoStores);
302
		model.addAttribute("fofoStores", fofoStores);
281
 
-
 
-
 
303
		model.addAttribute("investments", investments);
282
		model.addAttribute("customRetailers", customRetailers);
304
		model.addAttribute("customRetailers", customRetailers);
283
 
305
 
284
		return "store";
306
		return "store";
285
 
307
 
286
	}
308
	}
287
 
309
 
-
 
310
	@GetMapping(value = "/partners")
-
 
311
	public String getStoreName(HttpServletRequest request, Model model, @RequestParam String query) throws Exception {
-
 
312
		model.addAttribute("response", mvcResponseSender
-
 
313
				.createResponseString(retailerService.getFofoRetailers().values().stream().filter(x -> {
-
 
314
					return x.getDisplayName().toLowerCase().matches(".*?" + query.toLowerCase() + ".*?");
-
 
315
				}).collect(Collectors.toList())));
-
 
316
		return "response";
-
 
317
	}
-
 
318
 
288
	@PostMapping(value = "/deactivateStore")
319
	@PostMapping(value = "/deactivateStore")
289
	public String deActivateStore(HttpServletRequest request,
320
	public String deActivateStore(HttpServletRequest request,
290
			@RequestParam(name = ProfitMandiConstants.FOFO_ID) int fofoId, Model model) throws Exception {
321
			@RequestParam(name = ProfitMandiConstants.FOFO_ID) int fofoId, Model model) throws Exception {
291
		FofoStore fofoStore = fofoStoreRepository.selectByRetailerId(fofoId);
322
		FofoStore fofoStore = fofoStoreRepository.selectByRetailerId(fofoId);
292
 
323
 
Line 312... Line 343...
312
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
343
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
313
 
344
 
314
		return "response";
345
		return "response";
315
 
346
 
316
	}
347
	}
317
 
348
	
-
 
349
	//Extend billing for 2 days
-
 
350
	@PostMapping(value = "/extendBilling")
318
	private List<Integer> getFofoIds(List<FofoStore> fofoStores) {
351
	public String extendBilling(HttpServletRequest request,
319
 
-
 
-
 
352
			@RequestParam(name = ProfitMandiConstants.FOFO_ID) int fofoId, Model model) throws Exception {
-
 
353
		FofoStore fofoStore = fofoStoreRepository.selectByRetailerId(fofoId);
320
		List<Integer> fofoIds = new ArrayList<>();
354
		fofoStore.setGraceDate(LocalDate.now().plusDays(2));
321
 
-
 
322
		for (FofoStore fofoStore : fofoStores) {
355
		fofoStore.setGraceCount(fofoStore.getGraceCount() + 1);
323
 
-
 
324
			fofoIds.add(fofoStore.getId());
356
		fofoStoreRepository.persist(fofoStore);
325
 
-
 
326
		}
-
 
327
 
-
 
-
 
357
		model.addAttribute("response", mvcResponseSender.createResponseString(fofoStore.getGraceCount()));
328
		return fofoIds;
358
		return "response";
329
 
359
		
330
	}
360
	}
331
 
361
 
332
 
-
 
333
	@RequestMapping(value = "/getPromoterInfo", method = RequestMethod.GET)
362
	@RequestMapping(value = "/getPromoterInfo", method = RequestMethod.GET)
334
	public String getPromoterInfo(HttpServletRequest request,
363
	public String getPromoterInfo(HttpServletRequest request,
335
			@RequestParam(name = "offset", defaultValue = "0") int offset,
364
			@RequestParam(name = "offset", defaultValue = "0") int offset,
336
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws Exception {
365
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws Exception {
337
		LOGGER.info("requested url : " + request.getRequestURL().toString());
366
		LOGGER.info("requested url : " + request.getRequestURL().toString());
Line 354... Line 383...
354
 
383
 
355
			for (Promoter promoterdetail : promoterInfo) {
384
			for (Promoter promoterdetail : promoterInfo) {
356
				partnerIds.add(promoterdetail.getRetailerId());
385
				partnerIds.add(promoterdetail.getRetailerId());
357
			}
386
			}
358
			Map<Integer, CustomRetailer> partnersMap = null;
387
			Map<Integer, CustomRetailer> partnersMap = null;
359
			if(!partnerIds.equals(null)){ 
388
			if (!partnerIds.equals(null)) {
360
				LOGGER.info("partnerIds" + partnerIds);
389
				LOGGER.info("partnerIds" + partnerIds);
361
			 partnersMap = retailerService.getFofoRetailers(partnerIds);
390
				partnersMap = retailerService.getFofoRetailers(partnerIds);
362
			}
391
			}
363
			
392
 
364
			LOGGER.info("partnerIds" + partnersMap);
393
			LOGGER.info("partnerIds" + partnersMap);
365
			model.addAttribute("promoterInfo", promoterInfo);
394
			model.addAttribute("promoterInfo", promoterInfo);
366
			model.addAttribute("partnersMap", partnersMap);
395
			model.addAttribute("partnersMap", partnersMap);
367
			model.addAttribute("start", offset + 1);
396
			model.addAttribute("start", offset + 1);
368
			model.addAttribute("size", size);
397
			model.addAttribute("size", size);
Line 378... Line 407...
378
			model.addAttribute("size", size);
407
			model.addAttribute("size", size);
379
		}
408
		}
380
		return "promoter-info";
409
		return "promoter-info";
381
 
410
 
382
	}
411
	}
383
	
412
 
384
	@RequestMapping(value = "/getPaginatedPromoterInfo", method = RequestMethod.GET)
413
	@RequestMapping(value = "/getPaginatedPromoterInfo", method = RequestMethod.GET)
385
	public String getPaginatedPromoterInfo(HttpServletRequest request,
414
	public String getPaginatedPromoterInfo(HttpServletRequest request,
386
			@RequestParam(name = "offset", defaultValue = "0") int offset,
415
			@RequestParam(name = "offset", defaultValue = "0") int offset,
387
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
416
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
388
			throws ProfitMandiBusinessException {
417
			throws ProfitMandiBusinessException {
Line 396... Line 425...
396
 
425
 
397
			for (Promoter promoterdetail : promoterInfo) {
426
			for (Promoter promoterdetail : promoterInfo) {
398
				partnerIds.add(promoterdetail.getRetailerId());
427
				partnerIds.add(promoterdetail.getRetailerId());
399
			}
428
			}
400
			Map<Integer, CustomRetailer> partnersMap = null;
429
			Map<Integer, CustomRetailer> partnersMap = null;
401
			if(!partnerIds.equals(null)){ 
430
			if (!partnerIds.equals(null)) {
402
				LOGGER.info("partnerIds" + partnerIds);
431
				LOGGER.info("partnerIds" + partnerIds);
403
			 partnersMap = retailerService.getFofoRetailers(partnerIds);
432
				partnersMap = retailerService.getFofoRetailers(partnerIds);
404
			}
433
			}
405
			
434
 
406
			LOGGER.info("partnerIds" + partnersMap);
435
			LOGGER.info("partnerIds" + partnersMap);
407
			model.addAttribute("promoterInfo", promoterInfo);
436
			model.addAttribute("promoterInfo", promoterInfo);
408
			model.addAttribute("partnersMap", partnersMap);
437
			model.addAttribute("partnersMap", partnersMap);
409
			model.addAttribute("url", "/getPaginatedPromoterInfo");
438
			model.addAttribute("url", "/getPaginatedPromoterInfo");
410
		} else {
439
		} else {
Line 418... Line 447...
418
	@RequestMapping(value = "/createPromoter", method = RequestMethod.POST)
447
	@RequestMapping(value = "/createPromoter", method = RequestMethod.POST)
419
	public String createPromoter(HttpServletRequest request, @RequestBody PromoterDetailModel promoterdetailModel,
448
	public String createPromoter(HttpServletRequest request, @RequestBody PromoterDetailModel promoterdetailModel,
420
			Model model) throws Exception {
449
			Model model) throws Exception {
421
		LOGGER.info("requested url : " + request.getRequestURL().toString());
450
		LOGGER.info("requested url : " + request.getRequestURL().toString());
422
		LOGGER.info("requested url : " + promoterdetailModel);
451
		LOGGER.info("requested url : " + promoterdetailModel);
423
		if (promoterdetailModel.getId()==0) {
452
		if (promoterdetailModel.getId() == 0) {
424
			Promoter promoter = new Promoter();
453
			Promoter promoter = new Promoter();
425
			promoter.setName(promoterdetailModel.getName());
454
			promoter.setName(promoterdetailModel.getName());
426
			promoter.setBrand(promoterdetailModel.getBrand());
455
			promoter.setBrand(promoterdetailModel.getBrand());
427
			promoter.setEmail(promoterdetailModel.getEmail());
456
			promoter.setEmail(promoterdetailModel.getEmail());
428
			promoter.setMobile(promoterdetailModel.getMobile());
457
			promoter.setMobile(promoterdetailModel.getMobile());