Subversion Repositories SmartDukaan

Rev

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

Rev 24471 Rev 24500
Line 3... Line 3...
3
import java.time.LocalDateTime;
3
import java.time.LocalDateTime;
4
import java.util.HashSet;
4
import java.util.HashSet;
5
import java.util.List;
5
import java.util.List;
6
import java.util.Map;
6
import java.util.Map;
7
import java.util.Optional;
7
import java.util.Optional;
-
 
8
import java.util.stream.Collectors;
8
 
9
 
9
import javax.servlet.http.HttpServletRequest;
10
import javax.servlet.http.HttpServletRequest;
10
 
11
 
11
import org.apache.logging.log4j.LogManager;
12
import org.apache.logging.log4j.LogManager;
12
import org.apache.logging.log4j.Logger;
13
import org.apache.logging.log4j.Logger;
Line 25... Line 26...
25
import com.spice.profitmandi.dao.entity.auth.AuthUser;
26
import com.spice.profitmandi.dao.entity.auth.AuthUser;
26
import com.spice.profitmandi.dao.entity.cs.Activity;
27
import com.spice.profitmandi.dao.entity.cs.Activity;
27
import com.spice.profitmandi.dao.entity.cs.Position;
28
import com.spice.profitmandi.dao.entity.cs.Position;
28
import com.spice.profitmandi.dao.entity.cs.Region;
29
import com.spice.profitmandi.dao.entity.cs.Region;
29
import com.spice.profitmandi.dao.entity.cs.Ticket;
30
import com.spice.profitmandi.dao.entity.cs.Ticket;
-
 
31
import com.spice.profitmandi.dao.entity.cs.TicketAssigned;
30
import com.spice.profitmandi.dao.entity.cs.TicketCategory;
32
import com.spice.profitmandi.dao.entity.cs.TicketCategory;
31
import com.spice.profitmandi.dao.entity.cs.TicketSubCategory;
33
import com.spice.profitmandi.dao.entity.cs.TicketSubCategory;
32
import com.spice.profitmandi.dao.entity.fofo.ActivityType;
34
import com.spice.profitmandi.dao.entity.fofo.ActivityType;
33
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
35
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
34
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
36
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
35
import com.spice.profitmandi.dao.repository.cs.ActivityRepository;
37
import com.spice.profitmandi.dao.repository.cs.ActivityRepository;
36
import com.spice.profitmandi.dao.repository.cs.CsService;
38
import com.spice.profitmandi.dao.repository.cs.CsService;
37
import com.spice.profitmandi.dao.repository.cs.PositionRepository;
39
import com.spice.profitmandi.dao.repository.cs.PositionRepository;
38
import com.spice.profitmandi.dao.repository.cs.RegionRepository;
40
import com.spice.profitmandi.dao.repository.cs.RegionRepository;
-
 
41
import com.spice.profitmandi.dao.repository.cs.TicketAssignedRepository;
39
import com.spice.profitmandi.dao.repository.cs.TicketCategoryRepository;
42
import com.spice.profitmandi.dao.repository.cs.TicketCategoryRepository;
40
import com.spice.profitmandi.dao.repository.cs.TicketRepository;
43
import com.spice.profitmandi.dao.repository.cs.TicketRepository;
41
import com.spice.profitmandi.dao.repository.cs.TicketSubCategoryRepository;
44
import com.spice.profitmandi.dao.repository.cs.TicketSubCategoryRepository;
42
import com.spice.profitmandi.service.authentication.RoleManager;
45
import com.spice.profitmandi.service.authentication.RoleManager;
43
import com.spice.profitmandi.service.slab.TargetSlabService;
46
import com.spice.profitmandi.service.slab.TargetSlabService;
Line 89... Line 92...
89
	private RoleManager roleManager;
92
	private RoleManager roleManager;
90
 
93
 
91
	@Autowired
94
	@Autowired
92
	private ActivityRepository activityRepository;
95
	private ActivityRepository activityRepository;
93
 
96
 
-
 
97
	@Autowired
-
 
98
	private TicketAssignedRepository ticketAssignedRepository;
-
 
99
 
94
	@GetMapping(value = "/cs/createCategory")
100
	@GetMapping(value = "/cs/createCategory")
95
	public String getCreateCategory(HttpServletRequest request, Model model) {
101
	public String getCreateCategory(HttpServletRequest request, Model model) {
96
		List<TicketCategory> ticketCategories = ticketCategoryRepository.selectAll();
102
		List<TicketCategory> ticketCategories = ticketCategoryRepository.selectAll();
97
		model.addAttribute("ticketCategories", ticketCategories);
103
		model.addAttribute("ticketCategories", ticketCategories);
98
		return "create-ticket-category";
104
		return "create-ticket-category";
Line 104... Line 110...
104
 
110
 
105
		TicketCategory ticketCategory = ticketCategoryRepository.selectByName(name);
111
		TicketCategory ticketCategory = ticketCategoryRepository.selectByName(name);
106
		if (ticketCategory != null) {
112
		if (ticketCategory != null) {
107
			throw new ProfitMandiBusinessException("name", name, "already exists!");
113
			throw new ProfitMandiBusinessException("name", name, "already exists!");
108
		}
114
		}
109
 
-
 
110
		ticketCategory = new TicketCategory();
115
		ticketCategory = new TicketCategory();
111
		ticketCategory.setName(name);
116
		ticketCategory.setName(name);
112
		ticketCategory.setDescription(description);
117
		ticketCategory.setDescription(description);
113
		ticketCategoryRepository.persist(ticketCategory);
118
		ticketCategoryRepository.persist(ticketCategory);
114
		return "create-ticket-category";
119
		return "create-ticket-category";
Line 190... Line 195...
190
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
195
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
191
		return "response";
196
		return "response";
192
	}
197
	}
193
 
198
 
194
	@GetMapping(value = "/cs/createPosition")
199
	@GetMapping(value = "/cs/createPosition")
-
 
200
	public String createPosition(HttpServletRequest request,
195
	public String createPosition(HttpServletRequest request,@RequestParam(name = "offset", defaultValue = "0") int offset,
201
			@RequestParam(name = "offset", defaultValue = "0") int offset,
196
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) {
202
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) {
197
		List<AuthUser> authUsers = authRepository.selectAll();
203
		List<AuthUser> authUsers = authRepository.selectAll();
198
		List<TicketCategory> ticketCategories = ticketCategoryRepository.selectAll();
204
		List<TicketCategory> ticketCategories = ticketCategoryRepository.selectAll();
199
		List<Region> regions = regionRepository.selectAll();
205
		List<Region> regions = regionRepository.selectAll();
200
		model.addAttribute("escalationTypes", EscalationType.values());
206
		model.addAttribute("escalationTypes", EscalationType.values());
201
		model.addAttribute("authUsers", authUsers);
207
		model.addAttribute("authUsers", authUsers);
202
		model.addAttribute("ticketCategories", ticketCategories);
208
		model.addAttribute("ticketCategories", ticketCategories);
203
		model.addAttribute("regions", regions);
209
		model.addAttribute("regions", regions);
204
		
210
 
205
		List<Position> positions=positionRepository.selectAll(offset, limit);
211
		List<Position> positions = positionRepository.selectAll(offset, limit);
-
 
212
		LOGGER.info(positions);
206
		Map<Integer, AuthUser> authUserIdAndAuthUserMap=csService.getAuthUserIdAndAuthUserMapUsingPositions(positions);
213
		Map<Integer, AuthUser> authUserIdAndAuthUserMap = csService
-
 
214
				.getAuthUserIdAndAuthUserMapUsingPositions(positions);
207
		Map<Integer, TicketCategory> categoryIdAndCategoryMap=csService.getCategoryIdAndCategoryUsingPositions(positions);
215
		Map<Integer, TicketCategory> categoryIdAndCategoryMap = csService
-
 
216
				.getCategoryIdAndCategoryUsingPositions(positions);
208
		Map<Integer, Region> regionIdAndRegionMap=csService.getRegionIdAndRegionMap(positions);
217
		Map<Integer, Region> regionIdAndRegionMap = csService.getRegionIdAndRegionMap(positions);
209
		long size=positionRepository.selectAllCount();
218
		long size = positionRepository.selectAllCount();
210
		
219
 
211
		if (size < limit) {
220
		if (size < limit) {
212
			model.addAttribute("end", offset + size);
221
			model.addAttribute("end", offset + size);
213
		} else {
222
		} else {
214
			model.addAttribute("end", offset + limit);
223
			model.addAttribute("end", offset + limit);
215
		}
224
		}
Line 219... Line 228...
219
		model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
228
		model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
220
		model.addAttribute("categoryIdAndCategoryMap", categoryIdAndCategoryMap);
229
		model.addAttribute("categoryIdAndCategoryMap", categoryIdAndCategoryMap);
221
		model.addAttribute("regionIdAndRegionMap", regionIdAndRegionMap);
230
		model.addAttribute("regionIdAndRegionMap", regionIdAndRegionMap);
222
		return "create-position";
231
		return "create-position";
223
	}
232
	}
-
 
233
 
224
	@GetMapping(value = "/cs/position-paginated")
234
	@GetMapping(value = "/cs/position-paginated")
-
 
235
	public String positionPaginated(HttpServletRequest request,
225
	public String positionPaginated(HttpServletRequest request,@RequestParam(name = "offset", defaultValue = "0") int offset,
236
			@RequestParam(name = "offset", defaultValue = "0") int offset,
226
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) {
237
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) {
227
		
238
 
228
		List<Position> positions=positionRepository.selectAll(offset, limit);
239
		List<Position> positions = positionRepository.selectAll(offset, limit);
229
		Map<Integer, AuthUser> authUserIdAndAuthUserMap=csService.getAuthUserIdAndAuthUserMapUsingPositions(positions);
240
		Map<Integer, AuthUser> authUserIdAndAuthUserMap = csService
-
 
241
				.getAuthUserIdAndAuthUserMapUsingPositions(positions);
230
		Map<Integer, TicketCategory> categoryIdAndCategoryMap=csService.getCategoryIdAndCategoryUsingPositions(positions);
242
		Map<Integer, TicketCategory> categoryIdAndCategoryMap = csService
-
 
243
				.getCategoryIdAndCategoryUsingPositions(positions);
231
		Map<Integer, Region> regionIdAndRegionMap=csService.getRegionIdAndRegionMap(positions);
244
		Map<Integer, Region> regionIdAndRegionMap = csService.getRegionIdAndRegionMap(positions);
232
		model.addAttribute("positions", positions);
245
		model.addAttribute("positions", positions);
233
		model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
246
		model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
234
		model.addAttribute("categoryIdAndCategoryMap", categoryIdAndCategoryMap);
247
		model.addAttribute("categoryIdAndCategoryMap", categoryIdAndCategoryMap);
235
		model.addAttribute("regionIdAndRegionMap", regionIdAndRegionMap);
248
		model.addAttribute("regionIdAndRegionMap", regionIdAndRegionMap);
236
		return "position-paginated";
249
		return "position-paginated";
Line 258... Line 271...
258
		return "response";
271
		return "response";
259
	}
272
	}
260
 
273
 
261
	@GetMapping(value = "/cs/createTicket")
274
	@GetMapping(value = "/cs/createTicket")
262
	public String createTicket(HttpServletRequest request, Model model) {
275
	public String createTicket(HttpServletRequest request, Model model) {
263
		List<TicketCategory> ticketCategories=csService.getAllTicketCategotyFromSubCategory();
276
		List<TicketCategory> ticketCategories = csService.getAllTicketCategotyFromSubCategory();
264
		model.addAttribute("ticketCategories", ticketCategories);
277
		model.addAttribute("ticketCategories", ticketCategories);
265
		return "create-ticket";
278
		return "create-ticket";
266
	}
279
	}
267
 
280
 
268
	@GetMapping(value = "/cs/getSubCategoriesByCategoryId")
281
	@GetMapping(value = "/cs/getSubCategoriesByCategoryId")
Line 288... Line 301...
288
	public String getMyTicket(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset,
301
	public String getMyTicket(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset,
289
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
302
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
290
			throws ProfitMandiBusinessException {
303
			throws ProfitMandiBusinessException {
291
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
304
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
292
		List<Ticket> tickets = null;
305
		List<Ticket> tickets = null;
-
 
306
		List<TicketAssigned> ticketAssigneds = null;
-
 
307
		List<Integer> ticketIds = null;
293
		long size = 0;
308
		long size = 0;
-
 
309
		Map<Integer, AuthUser> authUserIdAndAuthUserMap = null;
294
		//LOGGER.info(roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))));
310
		// LOGGER.info(roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))));
295
		if (roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))) {
311
		if (roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))) {
296
			AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
312
			AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
297
			tickets = ticketRepository.selectAllByAssignee(authUser.getId(), Optional.empty(), offset, limit);
313
			ticketAssigneds = ticketAssignedRepository.selectByAssigneeId(authUser.getId(), offset, limit);
-
 
314
			ticketIds = ticketAssigneds.stream().map(x -> x.getTicketId()).collect(Collectors.toList());
-
 
315
			tickets = ticketRepository.SelectAllByTicketIds(ticketIds);
298
			size=ticketRepository.selectAllCountByAssignee(authUser.getId(),Optional.empty());
316
			size = ticketAssignedRepository.selectCountByAssigneeId(authUser.getId());
-
 
317
			authUserIdAndAuthUserMap = csService.getAuthUserIdAndAuthUserMap(ticketAssigneds);
299
			Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer=csService.getPartnerByFofoIds(tickets);
318
			Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer = csService.getPartnerByFofoIds(tickets);
300
			model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
319
			model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
301
		} else {
320
		} else {
302
			tickets = ticketRepository.selectAllByCreator(loginDetails.getFofoId(), Optional.empty(), offset, limit);
321
			tickets = ticketRepository.selectAllByCreator(loginDetails.getFofoId(), Optional.empty(), offset, limit);
-
 
322
			authUserIdAndAuthUserMap = csService.getTicketIdAndAuthUserMapUsingTickets(tickets);
303
			size=ticketRepository.selectAllCountByCreator(loginDetails.getFofoId(), Optional.empty());
323
			size = ticketRepository.selectAllCountByCreator(loginDetails.getFofoId(), Optional.empty());
304
			
324
 
305
		}
325
		}
306
		if (size < limit) {
326
		if (size < limit) {
307
			model.addAttribute("end", offset + size);
327
			model.addAttribute("end", offset + size);
308
		} else {
328
		} else {
309
			model.addAttribute("end", offset + limit);
329
			model.addAttribute("end", offset + limit);
310
		}
330
		}
311
		model.addAttribute("start", offset + 1);
331
		model.addAttribute("start", offset + 1);
312
		model.addAttribute("size", size);
332
		model.addAttribute("size", size);
313
		model.addAttribute("roleType",roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds())));
333
		model.addAttribute("roleType", roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds())));
314
		Map<Integer, AuthUser> authUserIdAndAuthUserMap = csService.getAuthUserIdAndAuthUserMap(tickets);
-
 
315
		Map<Integer, TicketSubCategory> subCategoryIdAndSubCategoryMap = csService
334
		Map<Integer, TicketSubCategory> subCategoryIdAndSubCategoryMap = csService
316
				.getSubCategoryIdAndSubCategoryMap(tickets);
335
				.getSubCategoryIdAndSubCategoryMap(tickets);
317
		model.addAttribute("tickets", tickets);
336
		model.addAttribute("tickets", tickets);
318
		model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
337
		model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
319
		model.addAttribute("subCategoryIdAndSubCategoryMap", subCategoryIdAndSubCategoryMap);
338
		model.addAttribute("subCategoryIdAndSubCategoryMap", subCategoryIdAndSubCategoryMap);
320
		return "ticket";
339
		return "ticket";
321
	}
340
	}
-
 
341
 
322
	@GetMapping(value = "/cs/myticketPaginated")
342
	@GetMapping(value = "/cs/myticketPaginated")
-
 
343
	public String getMyTicketPaginated(HttpServletRequest request,
323
	public String getMyTicketPaginated(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset,
344
			@RequestParam(name = "offset", defaultValue = "0") int offset,
324
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
345
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
325
			throws ProfitMandiBusinessException {
346
			throws ProfitMandiBusinessException {
326
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
347
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
327
		List<Ticket> tickets = null;
348
		List<Ticket> tickets = null;
-
 
349
		List<TicketAssigned> ticketAssigneds = null;
-
 
350
		List<Integer> ticketIds = null;
-
 
351
		Map<Integer, AuthUser> authUserIdAndAuthUserMap = null;
328
		//LOGGER.info(roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))));
352
		// LOGGER.info(roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))));
329
		if (roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))) {
353
		if (roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))) {
330
			AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
354
			AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
331
			tickets = ticketRepository.selectAllByAssignee(authUser.getId(), Optional.empty(), offset, limit);
355
			ticketAssigneds = ticketAssignedRepository.selectByAssigneeId(authUser.getId(), offset, limit);
-
 
356
			ticketIds = ticketAssigneds.stream().map(x -> x.getTicketId()).collect(Collectors.toList());
-
 
357
			tickets = ticketRepository.SelectAllByTicketIds(ticketIds);
-
 
358
			authUserIdAndAuthUserMap = csService.getAuthUserIdAndAuthUserMap(ticketAssigneds);
332
			Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer=csService.getPartnerByFofoIds(tickets);
359
			Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer = csService.getPartnerByFofoIds(tickets);
333
			model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
360
			model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
334
		} else {
361
		} else {
335
			tickets = ticketRepository.selectAllByCreator(loginDetails.getFofoId(), Optional.empty(), offset, limit);
362
			tickets = ticketRepository.selectAllByCreator(loginDetails.getFofoId(), Optional.empty(), offset, limit);
336
 
-
 
-
 
363
			authUserIdAndAuthUserMap = csService.getTicketIdAndAuthUserMapUsingTickets(tickets);
337
		}
364
		}
338
		model.addAttribute("roleType",roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds())));
365
		model.addAttribute("roleType", roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds())));
339
		Map<Integer, AuthUser> authUserIdAndAuthUserMap = csService.getAuthUserIdAndAuthUserMap(tickets);
-
 
340
		Map<Integer, TicketSubCategory> subCategoryIdAndSubCategoryMap = csService
366
		Map<Integer, TicketSubCategory> subCategoryIdAndSubCategoryMap = csService
341
				.getSubCategoryIdAndSubCategoryMap(tickets);
367
				.getSubCategoryIdAndSubCategoryMap(tickets);
342
		model.addAttribute("tickets", tickets);
368
		model.addAttribute("tickets", tickets);
343
		model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
369
		model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
344
		model.addAttribute("subCategoryIdAndSubCategoryMap", subCategoryIdAndSubCategoryMap);
370
		model.addAttribute("subCategoryIdAndSubCategoryMap", subCategoryIdAndSubCategoryMap);
Line 358... Line 384...
358
	}
384
	}
359
 
385
 
360
	@PostMapping(value = "/cs/createActivity")
386
	@PostMapping(value = "/cs/createActivity")
361
	public String createActivity(HttpServletRequest request,
387
	public String createActivity(HttpServletRequest request,
362
			@RequestParam(name = "ticketId", defaultValue = "0") int ticketId,
388
			@RequestParam(name = "ticketId", defaultValue = "0") int ticketId,
-
 
389
			@RequestParam(name = "assigneeId", defaultValue = "0") int assigneeId,
363
			@RequestParam(name = "message", defaultValue = "") String message, Model model) throws Exception {
390
			@RequestParam(name = "message", defaultValue = "") String message, Model model) throws Exception {
364
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
391
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
365
		Ticket ticket=ticketRepository.selectById(ticketId);
392
		Ticket ticket = ticketRepository.selectById(ticketId);
366
		if(ticket.getCloseTimestamp()==null) {
393
		if (ticket.getCloseTimestamp() == null) {
367
		if (!roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))) {
394
			if (!roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))) {
368
			Activity activity = new Activity();
395
				Activity activity = new Activity();
369
			activity.setMessage(message);
396
				activity.setMessage(message);
370
			activity.setCreatedBy(0);
397
				activity.setCreatedBy(0);
371
			activity.setCreateTimestamp(LocalDateTime.now());
398
				activity.setCreateTimestamp(LocalDateTime.now());
372
			activity.setType(ActivityType.COMMUNICATION_IN);
399
				activity.setType(ActivityType.COMMUNICATION_IN);
373
			csService.addActivity(ticketId, activity);
400
				csService.addActivity(ticketId, activity);
374
			AuthUser authUser=authRepository.selectById(ticket.getAssigneeId());
401
				AuthUser authUser = authRepository.selectById(assigneeId);
-
 
402
				model.addAttribute("response", mvcResponseSender.createResponseString(authUser));
-
 
403
			} else {
-
 
404
				AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
-
 
405
				Activity activity = new Activity();
-
 
406
				activity.setMessage(message);
-
 
407
				activity.setCreatedBy(authUser.getId());
-
 
408
				activity.setCreateTimestamp(LocalDateTime.now());
-
 
409
				activity.setType(ActivityType.COMMUNICATION_OUT);
-
 
410
				csService.addActivity(ticketId, activity);
375
			model.addAttribute("response", mvcResponseSender.createResponseString(authUser));
411
				model.addAttribute("response", mvcResponseSender.createResponseString(authUser));
-
 
412
			}
376
		} else {
413
		} else {
377
			AuthUser authUser=authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
-
 
378
			Activity activity = new Activity();
-
 
379
			activity.setMessage(message);
-
 
380
			activity.setCreatedBy(authUser.getId());
-
 
381
			activity.setCreateTimestamp(LocalDateTime.now());
-
 
382
			activity.setType(ActivityType.COMMUNICATION_OUT);
-
 
383
			csService.addActivity(ticketId, activity);
-
 
384
			model.addAttribute("response", mvcResponseSender.createResponseString(authUser));
-
 
385
		}
-
 
386
	}
-
 
387
		else
-
 
388
		{
-
 
389
			throw new ProfitMandiBusinessException("Ticket", ticket.getId(), "Already closed ticket");
414
			throw new ProfitMandiBusinessException("Ticket", ticket.getId(), "Already closed ticket");
390
		}
415
		}
391
		return "response";
416
		return "response";
392
	}
417
	}
-
 
418
 
393
	@PostMapping(value="/cs/closeTicket")
419
	@PostMapping(value = "/cs/closeTicket")
394
	public String closeTicket(HttpServletRequest request,
420
	public String closeTicket(HttpServletRequest request,
395
			@RequestParam(name = "ticketId", defaultValue = "0") int ticketId,
421
			@RequestParam(name = "ticketId", defaultValue = "0") int ticketId,
396
			@RequestParam (name="happyCode")String happyCode,Model model) throws Exception
422
			@RequestParam(name = "happyCode") String happyCode, Model model) throws Exception {
397
	{
-
 
398
		Ticket ticket=ticketRepository.selectById(ticketId);
423
		Ticket ticket = ticketRepository.selectById(ticketId);
399
		if(ticket.getHappyCode().equals(happyCode))
424
		if (ticket.getHappyCode().equals(happyCode)) {
400
		{
-
 
401
		ticket.setCloseTimestamp(LocalDateTime.now());
425
			ticket.setCloseTimestamp(LocalDateTime.now());
402
		ticketRepository.persist(ticket);
426
			ticketRepository.persist(ticket);
403
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
427
			model.addAttribute("response", mvcResponseSender.createResponseString(true));
404
		}
-
 
405
		else
428
		} else {
406
		{
-
 
407
			throw new ProfitMandiBusinessException("Ticket",ticketId, "Happy Code can't match");
429
			throw new ProfitMandiBusinessException("Ticket", ticketId, "Happy Code can't match");
408
		}
430
		}
409
		return "response";
431
		return "response";
410
	}
432
	}
-
 
433
 
411
	@GetMapping(value="/cs/managerTicket")
434
	@GetMapping(value = "/cs/managerTicket")
-
 
435
	public String getL2L3AndL4Tickets(HttpServletRequest request,
412
	public String getL2L3AndL4Tickets(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset,
436
			@RequestParam(name = "offset", defaultValue = "0") int offset,
413
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws ProfitMandiBusinessException
437
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
414
	{
-
 
-
 
438
			throws ProfitMandiBusinessException {
415
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
439
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
416
		long size = 0;
440
		long size = 0;
417
		AuthUser authUser=authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
441
		AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
418
		List<Ticket> tickets=null;
442
		List<Ticket> tickets = null;
-
 
443
		Map<Integer, List<AuthUser>> authUserListMap=null;
419
		if(loginDetails.getEmailId().equals("amandeep.singh@smartdukaan.com"))
444
		if (loginDetails.getEmailId().equals("amandeep.singh@smartdukaan.com")) {
420
		{
-
 
421
		 tickets=ticketRepository.selectAll(offset, limit,Optional.empty());
445
			tickets = ticketRepository.selectAll(offset, limit, Optional.empty());
-
 
446
			authUserListMap=csService.getAuthUserList(tickets, EscalationType.L4);
422
		 size=ticketRepository.selectAllCount();
447
			size = ticketRepository.selectAllCount();
423
		}
-
 
424
		else
448
		} else {
425
		{
-
 
426
			tickets=ticketRepository.selectAllByEscalatedUserType(authUser.getId(),EscalationType.L2, offset, limit);
449
			tickets = ticketRepository.selectAllByEscalatedUserType(authUser.getId(), EscalationType.L2, offset, limit);
427
			if(tickets.size()==0)
450
			if (tickets.size() == 0) {
428
			{
-
 
429
				tickets=ticketRepository.selectAllByEscalatedUserType(authUser.getId(),EscalationType.L3, offset, limit);
451
				tickets = ticketRepository.selectAllByEscalatedUserType(authUser.getId(), EscalationType.L3, offset,
-
 
452
						limit);
430
				size=ticketRepository.selectAllCountByEscalatedUserType(authUser.getId(),EscalationType.L3);
453
				size = ticketRepository.selectAllCountByEscalatedUserType(authUser.getId(), EscalationType.L3);
-
 
454
				authUserListMap=csService.getAuthUserList(tickets, EscalationType.L3);
431
				Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer=csService.getPartnerByFofoIds(tickets);
455
				Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer = csService.getPartnerByFofoIds(tickets);
432
				model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
456
				model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
433
			}
-
 
434
			else
457
			} else {
435
			{
-
 
436
				size=ticketRepository.selectAllCountByEscalatedUserType(authUser.getId(),EscalationType.L2);
458
				size = ticketRepository.selectAllCountByEscalatedUserType(authUser.getId(), EscalationType.L2);
-
 
459
				authUserListMap=csService.getAuthUserList(tickets, EscalationType.L2);
437
				Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer=csService.getPartnerByFofoIds(tickets);
460
				Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer = csService.getPartnerByFofoIds(tickets);
438
				model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
461
				model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
439
			}
462
			}
440
		}
463
		}
441
		if (size < limit) {
464
		if (size < limit) {
442
			model.addAttribute("end", offset + size);
465
			model.addAttribute("end", offset + size);
Line 444... Line 467...
444
			model.addAttribute("end", offset + limit);
467
			model.addAttribute("end", offset + limit);
445
		}
468
		}
446
		model.addAttribute("start", offset + 1);
469
		model.addAttribute("start", offset + 1);
447
		model.addAttribute("size", size);
470
		model.addAttribute("size", size);
448
		model.addAttribute("tickets", tickets);
471
		model.addAttribute("tickets", tickets);
449
		Map<Integer, AuthUser> authUserIdAndAuthUserMap = csService.getAuthUserIdAndAuthUserMap(tickets);
-
 
-
 
472
 
450
		Map<Integer, TicketSubCategory> subCategoryIdAndSubCategoryMap = csService
473
		Map<Integer, TicketSubCategory> subCategoryIdAndSubCategoryMap = csService
451
				.getSubCategoryIdAndSubCategoryMap(tickets);
474
				.getSubCategoryIdAndSubCategoryMap(tickets);
452
		model.addAttribute("tickets", tickets);
475
		model.addAttribute("tickets", tickets);
453
		model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
476
		model.addAttribute("authUserListMap", authUserListMap);
454
		model.addAttribute("subCategoryIdAndSubCategoryMap", subCategoryIdAndSubCategoryMap);
477
		model.addAttribute("subCategoryIdAndSubCategoryMap", subCategoryIdAndSubCategoryMap);
455
		return "managerTicket";
478
		return "managerTicket";
456
	}
479
	}
-
 
480
 
457
	@GetMapping(value="/cs/managerTicket-paginated")
481
	@GetMapping(value = "/cs/managerTicket-paginated")
458
	public String getL2L3AndL4TicketsPaginated(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset,
482
	public String getL2L3AndL4TicketsPaginated(HttpServletRequest request,
-
 
483
			@RequestParam(name = "offset", defaultValue = "0") int offset,
459
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws ProfitMandiBusinessException
484
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
460
	{
-
 
-
 
485
			throws ProfitMandiBusinessException {
461
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
486
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
462
		AuthUser authUser=authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
487
		AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
-
 
488
		Map<Integer, List<AuthUser>> authUserListMap=null;
463
		List<Ticket> tickets=null;
489
		List<Ticket> tickets = null;
464
		if(loginDetails.getEmailId().equals("amandeep.singh@smartdukaan.com"))
490
		if (loginDetails.getEmailId().equals("amandeep.singh@smartdukaan.com")) {
465
		{
-
 
466
		 tickets=ticketRepository.selectAll(offset, limit,Optional.empty());
491
			tickets = ticketRepository.selectAll(offset, limit, Optional.empty());
467
		}
-
 
-
 
492
			authUserListMap=csService.getAuthUserList(tickets, EscalationType.L4);
468
		else
493
		} else {
469
		{
-
 
470
			tickets=ticketRepository.selectAllByEscalatedUserType(authUser.getId(),EscalationType.L2, offset, limit);
494
			tickets = ticketRepository.selectAllByEscalatedUserType(authUser.getId(), EscalationType.L2, offset, limit);
471
			if(tickets.size()==0)
495
			if (tickets.size() == 0) {
-
 
496
				tickets = ticketRepository.selectAllByEscalatedUserType(authUser.getId(), EscalationType.L3, offset,
472
			{
497
						limit);
473
				tickets=ticketRepository.selectAllByEscalatedUserType(authUser.getId(),EscalationType.L3, offset, limit);
498
				authUserListMap=csService.getAuthUserList(tickets, EscalationType.L3);
474
				Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer=csService.getPartnerByFofoIds(tickets);
499
				Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer = csService.getPartnerByFofoIds(tickets);
475
				model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
500
				model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
476
			}
-
 
477
			else
501
			} else {
478
			{
-
 
479
				Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer=csService.getPartnerByFofoIds(tickets);
502
				Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer = csService.getPartnerByFofoIds(tickets);
-
 
503
				authUserListMap=csService.getAuthUserList(tickets, EscalationType.L2);
480
				model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
504
				model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
481
			}
505
			}
482
		}
506
		}
483
		model.addAttribute("tickets", tickets);
507
		model.addAttribute("tickets", tickets);
484
		Map<Integer, AuthUser> authUserIdAndAuthUserMap = csService.getAuthUserIdAndAuthUserMap(tickets);
-
 
485
		Map<Integer, TicketSubCategory> subCategoryIdAndSubCategoryMap = csService
508
		Map<Integer, TicketSubCategory> subCategoryIdAndSubCategoryMap = csService
486
				.getSubCategoryIdAndSubCategoryMap(tickets);
509
				.getSubCategoryIdAndSubCategoryMap(tickets);
487
		model.addAttribute("tickets", tickets);
510
		model.addAttribute("tickets", tickets);
488
		model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
511
		model.addAttribute("authUserListMap", authUserListMap);
489
		model.addAttribute("subCategoryIdAndSubCategoryMap", subCategoryIdAndSubCategoryMap);
512
		model.addAttribute("subCategoryIdAndSubCategoryMap", subCategoryIdAndSubCategoryMap);
490
		return "managerTicket-paginated";
513
		return "managerTicket-paginated";
491
	}
514
	}
-
 
515
 
492
	@GetMapping(value="/cs/edit-ticket")
516
	@GetMapping(value = "/cs/edit-ticket")
-
 
517
	public String getEditTicket(HttpServletRequest request,
493
	public String getEditTicket(HttpServletRequest request,@RequestParam(name="ticketId",defaultValue="0")int ticketId,Model model)
518
			@RequestParam(name = "ticketId", defaultValue = "0") int ticketId, Model model) {
494
	{
-
 
495
		Ticket ticket=ticketRepository.selectById(ticketId);
519
		Ticket ticket = ticketRepository.selectById(ticketId);
496
		List<TicketCategory> ticketCategories=csService.getAllTicketCategotyFromSubCategory();
520
		List<TicketCategory> ticketCategories = csService.getAllTicketCategotyFromSubCategory();
497
		TicketSubCategory ticketSubCategory=ticketSubCategoryRepository.selectById(ticket.getSubCategoryId());
521
		TicketSubCategory ticketSubCategory = ticketSubCategoryRepository.selectById(ticket.getSubCategoryId());
-
 
522
		List<TicketSubCategory> ticketSubCategories = ticketSubCategoryRepository
-
 
523
				.selectAll(ticketSubCategory.getcategoryId());
498
		List<TicketSubCategory> ticketSubCategories=ticketSubCategoryRepository.selectAll(ticketSubCategory.getcategoryId());
524
		List<Position> positions=positionRepository.selectPositionByCategoryId(ticketSubCategoryRepository.selectById(ticket.getSubCategoryId()).getcategoryId());
-
 
525
		List<Integer> authUserids=positions.stream().map(x->x.getAuthUserId()).collect(Collectors.toList());
499
		List<AuthUser> authUsers=authRepository.selectAll();
526
		List<AuthUser> authUsers=authRepository.selectAllAuthUserByIds(authUserids);
500
		model.addAttribute("ticket", ticket);
527
		model.addAttribute("ticket", ticket);
501
		model.addAttribute("ticketCategories", ticketCategories);
528
		model.addAttribute("ticketCategories", ticketCategories);
502
		model.addAttribute("ticketSubCategories", ticketSubCategories);
529
		model.addAttribute("ticketSubCategories", ticketSubCategories);
503
		model.addAttribute("authUsers",authUsers);
530
		model.addAttribute("authUsers", authUsers);
504
		return "edit-ticket-modal";
531
		return "edit-ticket-modal";
505
	}
532
	}
-
 
533
 
506
	@PostMapping(value="/cs/edit-ticket")
534
	@PostMapping(value = "/cs/edit-ticket")
507
	public String editTicket(HttpServletRequest request,@RequestParam(name="ticketId",defaultValue="0")int ticketId,@RequestParam(name="subCategoryId",defaultValue="0")int subCategoryId,@RequestParam(name="authUserId",defaultValue="0")int authUserId,Model model) throws Exception
535
	public String editTicket(HttpServletRequest request,
508
	{
-
 
-
 
536
			@RequestParam(name = "ticketId", defaultValue = "0") int ticketId,
-
 
537
			@RequestParam(name = "subCategoryId", defaultValue = "0") int subCategoryId,
-
 
538
			@RequestParam(name = "categoryId", defaultValue = "0") int categoryId,
-
 
539
			@RequestParam(name = "authUserId", defaultValue = "0") int authUserId, Model model) throws Exception {
509
		LOGGER.info(ticketId);
540
		LOGGER.info(ticketId);
510
		Ticket ticket=ticketRepository.selectById(ticketId);
541
		Ticket ticket = ticketRepository.selectById(ticketId);
-
 
542
		
-
 
543
		if(ticket.getSubCategoryId()==subCategoryId)
-
 
544
		{
511
		LOGGER.info(ticket);
545
		LOGGER.info(ticket);
-
 
546
		
-
 
547
		TicketAssigned ticketAssigned=ticketAssignedRepository.selectByAssigneeIdAndTicketId(authUserId, ticket.getId());
-
 
548
		if(ticketAssigned==null)
-
 
549
		{
-
 
550
			ticketAssignedRepository.deleteByTicketId(ticketId);
-
 
551
			ticketAssigned=new TicketAssigned();
-
 
552
			ticketAssigned.setTicketId(ticketId);
512
		ticket.setAssigneeId(authUserId);
553
			ticketAssigned.setAssineeId(authUserId);
-
 
554
			ticketAssignedRepository.persist(ticketAssigned);
-
 
555
		}
513
		ticket.setL1AuthUser(authUserId);
556
		ticket.setL1AuthUser(authUserId);
514
		ticket.setSubCategoryId(subCategoryId);
557
		ticket.setSubCategoryId(subCategoryId);
515
		ticket.setUpdateTimestamp(LocalDateTime.now());
558
		ticket.setUpdateTimestamp(LocalDateTime.now());
516
		ticket.setL2EscalationTimestamp(ticket.getUpdateTimestamp().plusDays(2));
559
		ticket.setL2EscalationTimestamp(ticket.getUpdateTimestamp().plusDays(2));
517
		ticket.setL3EscalationTimestamp(ticket.getL2EscalationTimestamp().plusDays(2));
560
		ticket.setL3EscalationTimestamp(ticket.getL2EscalationTimestamp().plusDays(2));
518
		ticket.setLastEscalationTimestamp(ticket.getL3EscalationTimestamp().plusDays(2));
561
		ticket.setLastEscalationTimestamp(ticket.getL3EscalationTimestamp().plusDays(2));
519
		ticketRepository.persist(ticket);
562
		ticketRepository.persist(ticket);
520
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
563
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
-
 
564
		}
-
 
565
		else
-
 
566
		{
-
 
567
			ticketAssignedRepository.deleteByTicketId(ticketId);
-
 
568
			csService.updateTicket(categoryId,subCategoryId,ticket);	
-
 
569
			model.addAttribute("response", mvcResponseSender.createResponseString(true));
-
 
570
		}
521
		return "response";
571
		return "response";
522
	}
572
	}
523
	
573
 
524
	@DeleteMapping(value="/cs/removePosition")
574
	@DeleteMapping(value = "/cs/removePosition")
-
 
575
	public String removePosition(HttpServletRequest request,
525
	public String removePosition(HttpServletRequest request,@RequestParam(name="positionId",defaultValue="0")int positionId,Model model) throws Exception
576
			@RequestParam(name = "positionId", defaultValue = "0") int positionId, Model model) throws Exception {
526
	{
-
 
527
		positionRepository.delete(positionId);
577
		positionRepository.delete(positionId);
528
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
578
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
529
		return "response";
579
		return "response";
530
	}
580
	}
531
}
581
}