Subversion Repositories SmartDukaan

Rev

Rev 24467 | Rev 24471 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
24417 govind 1
package com.spice.profitmandi.web.controller;
2
 
3
import java.time.LocalDateTime;
4
import java.util.HashSet;
5
import java.util.List;
6
import java.util.Map;
7
import java.util.Optional;
8
 
9
import javax.servlet.http.HttpServletRequest;
10
 
11
import org.apache.logging.log4j.LogManager;
12
import org.apache.logging.log4j.Logger;
13
import org.springframework.beans.factory.annotation.Autowired;
14
import org.springframework.stereotype.Controller;
15
import org.springframework.transaction.annotation.Transactional;
16
import org.springframework.ui.Model;
17
import org.springframework.web.bind.annotation.GetMapping;
18
import org.springframework.web.bind.annotation.PostMapping;
19
import org.springframework.web.bind.annotation.RequestBody;
20
import org.springframework.web.bind.annotation.RequestParam;
21
 
22
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
23
import com.spice.profitmandi.common.model.CustomRetailer;
24
import com.spice.profitmandi.dao.entity.auth.AuthUser;
25
import com.spice.profitmandi.dao.entity.cs.Activity;
26
import com.spice.profitmandi.dao.entity.cs.Position;
27
import com.spice.profitmandi.dao.entity.cs.Region;
28
import com.spice.profitmandi.dao.entity.cs.Ticket;
29
import com.spice.profitmandi.dao.entity.cs.TicketCategory;
30
import com.spice.profitmandi.dao.entity.cs.TicketSubCategory;
31
import com.spice.profitmandi.dao.entity.fofo.ActivityType;
32
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
33
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
34
import com.spice.profitmandi.dao.repository.cs.ActivityRepository;
35
import com.spice.profitmandi.dao.repository.cs.CsService;
36
import com.spice.profitmandi.dao.repository.cs.PositionRepository;
37
import com.spice.profitmandi.dao.repository.cs.RegionRepository;
38
import com.spice.profitmandi.dao.repository.cs.TicketCategoryRepository;
39
import com.spice.profitmandi.dao.repository.cs.TicketRepository;
40
import com.spice.profitmandi.dao.repository.cs.TicketSubCategoryRepository;
41
import com.spice.profitmandi.service.authentication.RoleManager;
42
import com.spice.profitmandi.service.slab.TargetSlabService;
43
import com.spice.profitmandi.service.user.RetailerService;
44
import com.spice.profitmandi.web.model.LoginDetails;
45
import com.spice.profitmandi.web.util.CookiesProcessor;
46
import com.spice.profitmandi.web.util.MVCResponseSender;
47
 
48
@Controller
49
@Transactional(rollbackFor = Throwable.class)
50
public class CsController {
51
 
52
	private static final Logger LOGGER = LogManager.getLogger(CsController.class);
53
 
54
	@Autowired
55
	private CsService csService;
56
 
57
	@Autowired
58
	private CookiesProcessor cookiesProcessor;
59
 
60
	@Autowired
61
	private TicketCategoryRepository ticketCategoryRepository;
62
 
63
	@Autowired
64
	private TicketSubCategoryRepository ticketSubCategoryRepository;
65
 
66
	@Autowired
67
	private RegionRepository regionRepository;
68
 
69
	@Autowired
70
	private TargetSlabService targetSlabService;
71
 
72
	@Autowired
73
	private RetailerService retailerService;
74
 
75
	@Autowired
76
	private MVCResponseSender mvcResponseSender;
77
 
78
	@Autowired
79
	private AuthRepository authRepository;
80
 
81
	@Autowired
82
	private PositionRepository positionRepository;
83
 
84
	@Autowired
85
	private TicketRepository ticketRepository;
86
 
87
	@Autowired
88
	private RoleManager roleManager;
89
 
90
	@Autowired
91
	private ActivityRepository activityRepository;
92
 
93
	@GetMapping(value = "/cs/createCategory")
94
	public String getCreateCategory(HttpServletRequest request, Model model) {
95
		List<TicketCategory> ticketCategories = ticketCategoryRepository.selectAll();
96
		model.addAttribute("ticketCategories", ticketCategories);
97
		return "create-ticket-category";
98
	}
99
 
100
	@PostMapping(value = "/cs/createCategory")
101
	public String createCategory(HttpServletRequest request, @RequestParam(name = "name") String name,
102
			@RequestParam(name = "description") String description, Model model) throws ProfitMandiBusinessException {
103
 
104
		TicketCategory ticketCategory = ticketCategoryRepository.selectByName(name);
105
		if (ticketCategory != null) {
106
			throw new ProfitMandiBusinessException("name", name, "already exists!");
107
		}
108
 
109
		ticketCategory = new TicketCategory();
110
		ticketCategory.setName(name);
111
		ticketCategory.setDescription(description);
112
		ticketCategoryRepository.persist(ticketCategory);
113
		return "create-ticket-category";
114
	}
115
 
116
	@GetMapping(value = "/cs/createSubCategory")
117
	public String getCreateSubCategory(HttpServletRequest request, Model model) {
118
		List<TicketCategory> ticketCategories = ticketCategoryRepository.selectAll();
119
		model.addAttribute("ticketCategories", ticketCategories);
120
		return "create-ticket-sub-category";
121
	}
122
 
123
	@GetMapping(value = "/cs/getSubCategoryByCategoryId")
124
	public String getSubCategoryByCategoryId(HttpServletRequest request,
125
			@RequestParam(name = "ticketCategoryId", defaultValue = "") int ticketCategoryId, Model model) {
126
		List<TicketSubCategory> ticketSubCategories = ticketSubCategoryRepository.selectAll(ticketCategoryId);
127
		TicketCategory ticketCategory = ticketCategoryRepository.selectById(ticketCategoryId);
128
		model.addAttribute("ticketSubCategories", ticketSubCategories);
129
		model.addAttribute("ticketCategory", ticketCategory);
130
		return "ticket-sub-category";
131
	}
132
 
133
	@PostMapping(value = "/cs/createSubCategory")
134
	public String createSubCategory(HttpServletRequest request,
135
			@RequestParam(name = "categoryId", defaultValue = "0") int categoryId,
136
			@RequestParam(name = "name") String name, @RequestParam(name = "description") String description,
137
			Model model) throws ProfitMandiBusinessException {
138
 
139
		TicketSubCategory ticketSubCategory = ticketSubCategoryRepository.selectTicketSubCategory(categoryId, name);
140
		if (ticketSubCategory != null) {
141
			throw new ProfitMandiBusinessException("name & categoryId", name + "  " + categoryId, "already exists!");
142
		}
143
 
144
		ticketSubCategory = new TicketSubCategory();
145
		ticketSubCategory.setcategoryId(categoryId);
146
		ticketSubCategory.setName(name);
147
		ticketSubCategory.setDescription(description);
148
		ticketSubCategoryRepository.persist(ticketSubCategory);
149
		return "create-ticket-sub-category";
150
	}
151
 
152
	@GetMapping(value = "/cs/createRegion")
153
	public String createRegion(HttpServletRequest request, Model model) {
154
		List<Region> regions = regionRepository.selectAll();
155
		model.addAttribute("regions", regions);
156
		return "create-region";
157
	}
158
 
159
	@PostMapping(value = "/cs/createRegion")
160
	public String createRegion(HttpServletRequest request, @RequestParam(name = "name") String name,
161
			@RequestParam(name = "description") String description, Model model) throws Exception {
162
		Region region = regionRepository.selectByName(name);
163
		if (region != null) {
164
			throw new ProfitMandiBusinessException("name", name, "already exists!");
165
		}
166
		region = new Region();
167
		region.setName(name);
168
		region.setDescription(description);
169
		regionRepository.persist(region);
170
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
171
		return "response";
172
	}
173
 
174
	@GetMapping(value = "/cs/createPartnerRegion")
175
	public String createPartnerRegion(HttpServletRequest request, Model model) {
176
		List<Region> regions = regionRepository.selectAll();
177
		List<Integer> fofoIds = targetSlabService.getfofoIdsFromfofoStore();
178
		Map<Integer, CustomRetailer> fofoRetailers = retailerService.getFofoRetailers(fofoIds);
179
		model.addAttribute("regions", regions);
180
		model.addAttribute("fofoRetailers", fofoRetailers);
181
		return "create-partner-region";
182
	}
183
 
184
	@PostMapping(value = "/cs/createPartnerRegion")
185
	public String createPartnerRegion(HttpServletRequest request, @RequestParam(name = "regionId") int regionId,
186
			@RequestBody List<Integer> selectedFofoIds, Model model) throws Exception {
187
 
188
		csService.addPartnerToRegion(regionId, selectedFofoIds);
189
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
190
		return "response";
191
	}
192
 
193
	@GetMapping(value = "/cs/createPosition")
194
	public String createPosition(HttpServletRequest request, Model model) {
195
		List<AuthUser> authUsers = authRepository.selectAll();
196
		List<TicketCategory> ticketCategories = ticketCategoryRepository.selectAll();
197
		List<Region> regions = regionRepository.selectAll();
198
		model.addAttribute("escalationTypes", EscalationType.values());
199
		model.addAttribute("authUsers", authUsers);
200
		model.addAttribute("ticketCategories", ticketCategories);
201
		model.addAttribute("regions", regions);
202
 
203
		return "create-position";
204
	}
205
 
206
	@PostMapping(value = "/cs/createPosition")
207
	public String createPosition(HttpServletRequest request, @RequestParam(name = "authUserId") int authUserId,
208
			@RequestParam(name = "categoryId") int categoryId,
209
			@RequestParam(name = "escalationType") EscalationType escalationType,
210
			@RequestParam(name = "regionId") int regionId, Model model) throws Exception {
211
 
212
		Position position = positionRepository.selectPosition(authUserId, categoryId, regionId, escalationType);
213
		if (position == null) {
214
			position = new Position();
215
			position.setAuthUserId(authUserId);
216
			position.setCategoryId(categoryId);
217
			position.setEscalationType(escalationType);
218
			position.setRegionId(regionId);
219
			position.setCreateTimestamp(LocalDateTime.now());
220
			positionRepository.persist(position);
221
			model.addAttribute("response", mvcResponseSender.createResponseString(true));
222
		} else {
223
			throw new ProfitMandiBusinessException("Position", authUserId, "already exists!");
224
		}
225
		return "response";
226
	}
227
 
228
	@GetMapping(value = "/cs/createTicket")
229
	public String createTicket(HttpServletRequest request, Model model) {
24439 govind 230
		List<TicketCategory> ticketCategories=csService.getAllTicketCategotyFromSubCategory();
24417 govind 231
		model.addAttribute("ticketCategories", ticketCategories);
232
		return "create-ticket";
233
	}
234
 
235
	@GetMapping(value = "/cs/getSubCategoriesByCategoryId")
236
	public String getSubCategoriesByCategoryId(HttpServletRequest request,
237
			@RequestParam(name = "categoryId", defaultValue = "0") int categoryId, Model model) {
238
		List<TicketSubCategory> ticketSubCategories = ticketSubCategoryRepository.selectAll(categoryId);
239
		LOGGER.info(ticketSubCategories);
240
		model.addAttribute("ticketSubCategories", ticketSubCategories);
241
		return "ticket-sub-categories";
242
	}
243
 
244
	@PostMapping(value = "/cs/createTicket")
245
	public String createTicket(HttpServletRequest request, @RequestParam(name = "categoryId") int categoryId,
246
			@RequestParam(name = "subCategoryId") int subCategoryId, @RequestParam(name = "message") String message,
247
			Model model) throws Exception {
248
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
249
		csService.createTicket(loginDetails.getFofoId(), categoryId, subCategoryId, message);
250
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
251
		return "response";
252
	}
253
 
254
	@GetMapping(value = "/cs/myticket")
255
	public String getMyTicket(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset,
256
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
257
			throws ProfitMandiBusinessException {
258
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
259
		List<Ticket> tickets = null;
260
		long size = 0;
261
		//LOGGER.info(roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))));
262
		if (roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))) {
263
			AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
264
			tickets = ticketRepository.selectAllByAssignee(authUser.getId(), Optional.empty(), offset, limit);
265
			size=ticketRepository.selectAllCountByAssignee(authUser.getId(),Optional.empty());
266
			Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer=csService.getPartnerByFofoIds(tickets);
267
			model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
268
		} else {
269
			tickets = ticketRepository.selectAllByCreator(loginDetails.getFofoId(), Optional.empty(), offset, limit);
270
			size=ticketRepository.selectAllCountByCreator(loginDetails.getFofoId(), Optional.empty());
271
 
272
		}
273
		if (size < limit) {
274
			model.addAttribute("end", offset + size);
275
		} else {
276
			model.addAttribute("end", offset + limit);
277
		}
278
		model.addAttribute("start", offset + 1);
279
		model.addAttribute("size", size);
280
		model.addAttribute("roleType",roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds())));
281
		Map<Integer, AuthUser> authUserIdAndAuthUserMap = csService.getAuthUserIdAndAuthUserMap(tickets);
282
		Map<Integer, TicketSubCategory> subCategoryIdAndSubCategoryMap = csService
283
				.getSubCategoryIdAndSubCategoryMap(tickets);
284
		model.addAttribute("tickets", tickets);
285
		model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
286
		model.addAttribute("subCategoryIdAndSubCategoryMap", subCategoryIdAndSubCategoryMap);
287
		return "ticket";
288
	}
289
	@GetMapping(value = "/cs/myticketPaginated")
290
	public String getMyTicketPaginated(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset,
291
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
292
			throws ProfitMandiBusinessException {
293
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
294
		List<Ticket> tickets = null;
295
		//LOGGER.info(roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))));
296
		if (roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))) {
297
			AuthUser authUser = authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
298
			tickets = ticketRepository.selectAllByAssignee(authUser.getId(), Optional.empty(), offset, limit);
299
			Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer=csService.getPartnerByFofoIds(tickets);
300
			model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
301
		} else {
302
			tickets = ticketRepository.selectAllByCreator(loginDetails.getFofoId(), Optional.empty(), offset, limit);
303
 
304
		}
305
		model.addAttribute("roleType",roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds())));
306
		Map<Integer, AuthUser> authUserIdAndAuthUserMap = csService.getAuthUserIdAndAuthUserMap(tickets);
307
		Map<Integer, TicketSubCategory> subCategoryIdAndSubCategoryMap = csService
308
				.getSubCategoryIdAndSubCategoryMap(tickets);
309
		model.addAttribute("tickets", tickets);
310
		model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
311
		model.addAttribute("subCategoryIdAndSubCategoryMap", subCategoryIdAndSubCategoryMap);
312
		return "ticket-paginated";
313
	}
314
 
315
	@GetMapping(value = "/cs/getActivities")
316
	public String getActivity(HttpServletRequest request,
317
			@RequestParam(name = "ticketId", defaultValue = "0") int ticketId, Model model) throws Exception {
318
		List<Activity> activities = activityRepository.selectAll(ticketId);
319
		if (activities == null) {
320
			throw new ProfitMandiBusinessException("Activity", ticketId, "No Activity Found");
321
		}
322
		model.addAttribute("response", mvcResponseSender.createResponseString(activities));
323
		return "response";
324
 
325
	}
326
 
327
	@PostMapping(value = "/cs/createActivity")
328
	public String createActivity(HttpServletRequest request,
329
			@RequestParam(name = "ticketId", defaultValue = "0") int ticketId,
330
			@RequestParam(name = "message", defaultValue = "") String message, Model model) throws Exception {
331
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
332
		Ticket ticket=ticketRepository.selectById(ticketId);
333
		if(ticket.getCloseTimestamp()==null) {
334
		if (!roleManager.isAdmin(new HashSet<>(loginDetails.getRoleIds()))) {
335
			Activity activity = new Activity();
336
			activity.setMessage(message);
337
			activity.setCreatedBy(0);
338
			activity.setCreateTimestamp(LocalDateTime.now());
339
			activity.setType(ActivityType.COMMUNICATION_IN);
340
			csService.addActivity(ticketId, activity);
341
			AuthUser authUser=authRepository.selectById(ticket.getAssigneeId());
342
			model.addAttribute("response", mvcResponseSender.createResponseString(authUser));
343
		} else {
344
			AuthUser authUser=authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
345
			Activity activity = new Activity();
346
			activity.setMessage(message);
347
			activity.setCreatedBy(authUser.getId());
348
			activity.setCreateTimestamp(LocalDateTime.now());
349
			activity.setType(ActivityType.COMMUNICATION_OUT);
350
			csService.addActivity(ticketId, activity);
351
			model.addAttribute("response", mvcResponseSender.createResponseString(authUser));
352
		}
353
	}
354
		else
355
		{
356
			throw new ProfitMandiBusinessException("Ticket", ticket.getId(), "Already closed ticket");
357
		}
358
		return "response";
359
	}
360
	@PostMapping(value="/cs/closeTicket")
361
	public String closeTicket(HttpServletRequest request,
24439 govind 362
			@RequestParam(name = "ticketId", defaultValue = "0") int ticketId,
363
			@RequestParam (name="happyCode")String happyCode,Model model) throws Exception
24417 govind 364
	{
365
		Ticket ticket=ticketRepository.selectById(ticketId);
24439 govind 366
		if(ticket.getHappyCode().equals(happyCode))
367
		{
24417 govind 368
		ticket.setCloseTimestamp(LocalDateTime.now());
369
		ticketRepository.persist(ticket);
370
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
24439 govind 371
		}
372
		else
373
		{
374
			throw new ProfitMandiBusinessException("Ticket",ticketId, "Happy Code can't match");
375
		}
24417 govind 376
		return "response";
377
	}
24439 govind 378
	@GetMapping(value="/cs/managerTicket")
379
	public String getL2L3AndL4Tickets(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset,
380
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws ProfitMandiBusinessException
381
	{
382
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
383
		long size = 0;
384
		AuthUser authUser=authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
385
		List<Ticket> tickets=null;
24467 govind 386
		if(loginDetails.getEmailId().equals("amandeep.singh@smartdukaan.com"))
24439 govind 387
		{
388
		 tickets=ticketRepository.selectAll(offset, limit,Optional.empty());
389
		 size=ticketRepository.selectAllCount();
390
		}
391
		else
392
		{
393
			tickets=ticketRepository.selectAllByEscalatedUserType(authUser.getId(),EscalationType.L2, offset, limit);
24468 govind 394
			if(tickets.size()==0)
24439 govind 395
			{
396
				tickets=ticketRepository.selectAllByEscalatedUserType(authUser.getId(),EscalationType.L3, offset, limit);
397
				size=ticketRepository.selectAllCountByEscalatedUserType(authUser.getId(),EscalationType.L3);
398
				Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer=csService.getPartnerByFofoIds(tickets);
399
				model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
400
			}
401
			else
402
			{
403
				size=ticketRepository.selectAllCountByEscalatedUserType(authUser.getId(),EscalationType.L2);
404
				Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer=csService.getPartnerByFofoIds(tickets);
405
				model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
406
			}
407
		}
408
		if (size < limit) {
409
			model.addAttribute("end", offset + size);
410
		} else {
411
			model.addAttribute("end", offset + limit);
412
		}
413
		model.addAttribute("start", offset + 1);
414
		model.addAttribute("size", size);
415
		model.addAttribute("tickets", tickets);
416
		Map<Integer, AuthUser> authUserIdAndAuthUserMap = csService.getAuthUserIdAndAuthUserMap(tickets);
417
		Map<Integer, TicketSubCategory> subCategoryIdAndSubCategoryMap = csService
418
				.getSubCategoryIdAndSubCategoryMap(tickets);
419
		model.addAttribute("tickets", tickets);
420
		model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
421
		model.addAttribute("subCategoryIdAndSubCategoryMap", subCategoryIdAndSubCategoryMap);
422
		return "managerTicket";
423
	}
24467 govind 424
	@GetMapping(value="/cs/managerTicket-paginated")
425
	public String getL2L3AndL4TicketsPaginated(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset,
426
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws ProfitMandiBusinessException
427
	{
428
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
429
		AuthUser authUser=authRepository.selectByEmailOrMobile(loginDetails.getEmailId());
430
		List<Ticket> tickets=null;
431
		if(loginDetails.getEmailId().equals("amandeep.singh@smartdukaan.com"))
432
		{
433
		 tickets=ticketRepository.selectAll(offset, limit,Optional.empty());
434
		}
435
		else
436
		{
437
			tickets=ticketRepository.selectAllByEscalatedUserType(authUser.getId(),EscalationType.L2, offset, limit);
24468 govind 438
			if(tickets.size()==0)
24467 govind 439
			{
440
				tickets=ticketRepository.selectAllByEscalatedUserType(authUser.getId(),EscalationType.L3, offset, limit);
441
				Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer=csService.getPartnerByFofoIds(tickets);
442
				model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
443
			}
444
			else
445
			{
446
				Map<Integer, CustomRetailer> fofoIdsAndCustomRetailer=csService.getPartnerByFofoIds(tickets);
447
				model.addAttribute("fofoIdsAndCustomRetailer", fofoIdsAndCustomRetailer);
448
			}
449
		}
450
		model.addAttribute("tickets", tickets);
451
		Map<Integer, AuthUser> authUserIdAndAuthUserMap = csService.getAuthUserIdAndAuthUserMap(tickets);
452
		Map<Integer, TicketSubCategory> subCategoryIdAndSubCategoryMap = csService
453
				.getSubCategoryIdAndSubCategoryMap(tickets);
454
		model.addAttribute("tickets", tickets);
455
		model.addAttribute("authUserIdAndAuthUserMap", authUserIdAndAuthUserMap);
456
		model.addAttribute("subCategoryIdAndSubCategoryMap", subCategoryIdAndSubCategoryMap);
457
		return "managerTicket-paginated";
458
	}
459
	@GetMapping(value="/cs/edit-ticket")
460
	public String getEditTicket(HttpServletRequest request,@RequestParam(name="ticketId",defaultValue="0")int ticketId,Model model)
461
	{
462
		Ticket ticket=ticketRepository.selectById(ticketId);
463
		List<TicketCategory> ticketCategories=csService.getAllTicketCategotyFromSubCategory();
464
		TicketSubCategory ticketSubCategory=ticketSubCategoryRepository.selectById(ticket.getSubCategoryId());
465
		List<TicketSubCategory> ticketSubCategories=ticketSubCategoryRepository.selectAll(ticketSubCategory.getcategoryId());
466
		List<AuthUser> authUsers=authRepository.selectAll();
467
		model.addAttribute("ticket", ticket);
468
		model.addAttribute("ticketCategories", ticketCategories);
469
		model.addAttribute("ticketSubCategories", ticketSubCategories);
470
		model.addAttribute("authUsers",authUsers);
471
		return "edit-ticket-modal";
472
	}
473
	@PostMapping(value="/cs/edit-ticket")
474
	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
475
	{
476
		LOGGER.info(ticketId);
477
		Ticket ticket=ticketRepository.selectById(ticketId);
478
		LOGGER.info(ticket);
479
		ticket.setAssigneeId(authUserId);
480
		ticket.setL1AuthUser(authUserId);
481
		ticket.setSubCategoryId(subCategoryId);
482
		ticket.setUpdateTimestamp(LocalDateTime.now());
483
		ticket.setL2EscalationTimestamp(ticket.getUpdateTimestamp().plusDays(2));
484
		ticket.setL3EscalationTimestamp(ticket.getL2EscalationTimestamp().plusDays(2));
485
		ticket.setLastEscalationTimestamp(ticket.getL3EscalationTimestamp().plusDays(2));
486
		ticketRepository.persist(ticket);
487
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
488
		return "response";
489
	}
24417 govind 490
}