Subversion Repositories SmartDukaan

Rev

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

Rev 24791 Rev 24824
Line 301... Line 301...
301
		}
301
		}
302
		return "response";
302
		return "response";
303
	}
303
	}
304
 
304
 
305
	@GetMapping(value = "/cs/createTicket")
305
	@GetMapping(value = "/cs/createTicket")
306
	public String createTicket(HttpServletRequest request, Model model) {
306
	public String createTicket(HttpServletRequest request, Model model) throws ProfitMandiBusinessException {
-
 
307
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
307
		List<TicketCategory> ticketCategories = csService.getAllTicketCategotyFromSubCategory();
308
		List<TicketCategory> ticketCategories = csService.getAllTicketCategotyFromSubCategory();
-
 
309
		model.addAttribute("roleType", roleManager.isAdmin(loginDetails.getRoleIds()));
308
		model.addAttribute("ticketCategories", ticketCategories);
310
		model.addAttribute("ticketCategories", ticketCategories);
309
		return "create-ticket";
311
		return "create-ticket";
310
	}
312
	}
311
 
313
 
312
	@GetMapping(value = "/cs/getSubCategoriesByCategoryId")
314
	@GetMapping(value = "/cs/getSubCategoriesByCategoryId")
Line 377... Line 379...
377
							searchTerm, offset, limit);
379
							searchTerm, offset, limit);
378
					size = ticketRepository.selectAllCountByAssignee(authUser.getId(),
380
					size = ticketRepository.selectAllCountByAssignee(authUser.getId(),
379
							Optional.of(TicketStatus.OPENED.equals(ticketStatus)), ticketSearchType, searchTerm);
381
							Optional.of(TicketStatus.OPENED.equals(ticketStatus)), ticketSearchType, searchTerm);
380
				}
382
				}
381
			}
383
			}
382
			//LOGGER.info(size + "size");
384
			// LOGGER.info(size + "size");
383
			if (tickets.size() > 0) {
385
			if (tickets.size() > 0) {
384
				ticketAssigneds = ticketAssignedRepository
386
				ticketAssigneds = ticketAssignedRepository
385
						.selectByTicketIds(tickets.stream().map(x -> x.getId()).collect(Collectors.toList()));
387
						.selectByTicketIds(tickets.stream().map(x -> x.getId()).collect(Collectors.toList()));
386
				authUserIdAndAuthUserMap = csService.getAuthUserIdAndAuthUserMap(ticketAssigneds);
388
				authUserIdAndAuthUserMap = csService.getAuthUserIdAndAuthUserMap(ticketAssigneds);
387
				Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer = csService.getPartnerByFofoIds(tickets);
389
				Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer = csService.getPartnerByFofoIds(tickets);
Line 432... Line 434...
432
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
434
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
433
			throws ProfitMandiBusinessException {
435
			throws ProfitMandiBusinessException {
434
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
436
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
435
		List<Ticket> tickets = null;
437
		List<Ticket> tickets = null;
436
		List<TicketAssigned> ticketAssigneds = null;
438
		List<TicketAssigned> ticketAssigneds = null;
437
		
439
 
438
		Map<Integer, AuthUser> authUserIdAndAuthUserMap = null;
440
		Map<Integer, AuthUser> authUserIdAndAuthUserMap = null;
439
		
441
 
440
		if (roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))) {
442
		if (roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))) {
441
			AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
443
			AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
442
			if (ticketSearchType == null) {
444
			if (ticketSearchType == null) {
443
				if (ticketStatus.equals(TicketStatus.RESOLVED)) {
445
				if (ticketStatus.equals(TicketStatus.RESOLVED)) {
444
					tickets = ticketRepository.selectAllByAssignee(authUser.getId(), Optional.empty(), sortOrder, null,
446
					tickets = ticketRepository.selectAllByAssignee(authUser.getId(), Optional.empty(), sortOrder, null,
Line 483... Line 485...
483
	}
485
	}
484
 
486
 
485
	@GetMapping(value = "/cs/getActivities")
487
	@GetMapping(value = "/cs/getActivities")
486
	public String getActivity(HttpServletRequest request,
488
	public String getActivity(HttpServletRequest request,
487
			@RequestParam(name = "ticketId", defaultValue = "0") int ticketId, Model model) throws Exception {
489
			@RequestParam(name = "ticketId", defaultValue = "0") int ticketId, Model model) throws Exception {
488
		List<Activity> activities = activityRepository.selectAll(ticketId);
490
		List<Activity> allactivities = activityRepository.selectAll(ticketId);
-
 
491
		List<Activity> activities = null;
489
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
492
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
490
		if (roleManager.isAdmin(loginDetails.getRoleIds())) {
493
		if (roleManager.isAdmin(loginDetails.getRoleIds())) {
491
			Set<Integer> authUserIds = activities.stream().map(x -> x.getCreatedBy()).collect(Collectors.toSet());
494
			Set<Integer> authUserIds = allactivities.stream().map(x -> x.getCreatedBy()).collect(Collectors.toSet());
492
			List<AuthUser> users = authRepository.selectAllAuthUserByIds(new ArrayList<>(authUserIds));
495
			List<AuthUser> users = authRepository.selectAllAuthUserByIds(new ArrayList<>(authUserIds));
493
			Map<Integer, String> authUserNameMap = users.stream()
496
			Map<Integer, String> authUserNameMap = users.stream()
494
					.collect(Collectors.toMap(AuthUser::getId, x -> x.getFirstName() + " " + x.getLastName()));
497
					.collect(Collectors.toMap(AuthUser::getId, x -> x.getFirstName() + " " + x.getLastName()));
495
			activities.stream().forEach(x -> x.setName(authUserNameMap.get(x.getCreatedBy())));
498
			allactivities.stream().forEach(x -> x.setName(authUserNameMap.get(x.getCreatedBy())));
-
 
499
			activities = allactivities;
-
 
500
		} else {
-
 
501
			activities = allactivities.stream().filter(x -> !x.getType().equals(ActivityType.COMMUNICATION_INTERNAL))
-
 
502
					.collect(Collectors.toList());
496
		}
503
		}
497
		if (activities == null) {
504
		if (activities == null) {
498
			throw new ProfitMandiBusinessException("Activity", ticketId, "No Activity Found");
505
			throw new ProfitMandiBusinessException("Activity", ticketId, "No Activity Found");
499
		}
506
		}
500
		model.addAttribute("response", mvcResponseSender.createResponseString(activities));
507
		model.addAttribute("response", mvcResponseSender.createResponseString(activities));
Line 504... Line 511...
504
 
511
 
505
	@PostMapping(value = "/cs/createActivity")
512
	@PostMapping(value = "/cs/createActivity")
506
	public String createActivity(HttpServletRequest request,
513
	public String createActivity(HttpServletRequest request,
507
			@RequestParam(name = "ticketId", defaultValue = "0") int ticketId,
514
			@RequestParam(name = "ticketId", defaultValue = "0") int ticketId,
508
			@RequestParam(name = "assigneeId", defaultValue = "0") int assigneeId,
515
			@RequestParam(name = "assigneeId", defaultValue = "0") int assigneeId,
-
 
516
			@RequestParam(name = "internal", defaultValue = "true") boolean internal,
509
			@RequestParam(name = "message", defaultValue = "") String message, Model model) throws Exception {
517
			@RequestParam(name = "message", defaultValue = "") String message, Model model) throws Exception {
510
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
518
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
511
		Ticket ticket = ticketRepository.selectById(ticketId);
519
		Ticket ticket = ticketRepository.selectById(ticketId);
512
		if (ticket.getCloseTimestamp() == null) {
520
		if (ticket.getCloseTimestamp() == null) {
513
			if (!roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))) {
521
			if (!roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))) {
Line 520... Line 528...
520
				AuthUser authUser = authRepository.selectById(ticket.getL1AuthUser());
528
				AuthUser authUser = authRepository.selectById(ticket.getL1AuthUser());
521
				String subject = String.format(ACTIVITY_SUBJECT, ticket.getId());
529
				String subject = String.format(ACTIVITY_SUBJECT, ticket.getId());
522
				String[] cc = { authRepository.selectById(ticket.getL2AuthUser()).getEmailId(),
530
				String[] cc = { authRepository.selectById(ticket.getL2AuthUser()).getEmailId(),
523
						authRepository.selectById(ticket.getL3AuthUser()).getEmailId() };
531
						authRepository.selectById(ticket.getL3AuthUser()).getEmailId() };
524
				// LOGGER.info(authUser.getEmailId()+" "+cc+" "+subject+" "+message);
532
				// LOGGER.info(authUser.getEmailId()+" "+cc+" "+subject+" "+message);
525
				this.activityRelatedMail(authUser.getEmailId(), cc, subject, message);
533
				// this.activityRelatedMail(authUser.getEmailId(), cc, subject, message);
526
				model.addAttribute("response", mvcResponseSender.createResponseString(authUser));
534
				model.addAttribute("response", mvcResponseSender.createResponseString(authUser));
527
			} else {
535
			} else {
528
				AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
536
				AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
529
				Activity activity = new Activity();
537
				Activity activity = new Activity();
530
				activity.setMessage(message);
538
				activity.setMessage(message);
531
				activity.setCreatedBy(authUser.getId());
539
				activity.setCreatedBy(authUser.getId());
532
				activity.setCreateTimestamp(LocalDateTime.now());
540
				activity.setCreateTimestamp(LocalDateTime.now());
-
 
541
				if (internal) {
-
 
542
					activity.setType(ActivityType.COMMUNICATION_INTERNAL);
-
 
543
 
-
 
544
				} else {
-
 
545
 
533
				activity.setType(ActivityType.COMMUNICATION_OUT);
546
					activity.setType(ActivityType.COMMUNICATION_OUT);
-
 
547
					String subject = String.format(ACTIVITY_SUBJECT, ticket.getId());
-
 
548
					this.activityRelatedMail(retailerService.getFofoRetailer(ticket.getFofoId()).getEmail(), null,
-
 
549
							subject, message);
-
 
550
				}
534
				csService.addActivity(ticketId, activity);
551
				csService.addActivity(ticketId, activity);
535
				String subject = String.format(ACTIVITY_SUBJECT, ticket.getId());
-
 
-
 
552
 
536
				//LOGGER.info(authUser.getEmailId() + " " + subject + " " + message);
553
				// LOGGER.info(authUser.getEmailId() + " " + subject + " " + message);
537
				this.activityRelatedMail(retailerService.getFofoRetailer(ticket.getFofoId()).getEmail(), null, subject,
-
 
538
						message);
554
 
539
				model.addAttribute("response", mvcResponseSender.createResponseString(authUser));
555
				model.addAttribute("response", mvcResponseSender.createResponseString(authUser));
540
			}
556
			}
541
		} else {
557
		} else {
542
			throw new ProfitMandiBusinessException("Ticket", ticket.getId(), "Already closed ticket");
558
			throw new ProfitMandiBusinessException("Ticket", ticket.getId(), "Already closed ticket");
543
		}
559
		}