Subversion Repositories SmartDukaan

Rev

Rev 3137 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3137 Rev 3206
Line 10... Line 10...
10
import in.shop2020.crm.TicketCategory;
10
import in.shop2020.crm.TicketCategory;
11
import in.shop2020.crm.TicketPriority;
11
import in.shop2020.crm.TicketPriority;
12
import in.shop2020.crm.TicketStatus;
12
import in.shop2020.crm.TicketStatus;
13
import in.shop2020.model.v1.user.User;
13
import in.shop2020.model.v1.user.User;
14
import in.shop2020.model.v1.user.UserContextException;
14
import in.shop2020.model.v1.user.UserContextException;
-
 
15
import in.shop2020.thrift.clients.HelperClient;
-
 
16
import in.shop2020.util.CRMConstants;
-
 
17
import in.shop2020.utils.HelperService.Client;
-
 
18
import in.shop2020.utils.HelperServiceException;
15
 
19
 
16
import java.util.Date;
20
import java.util.Date;
17
import java.util.HashMap;
21
import java.util.HashMap;
18
import java.util.List;
22
import java.util.List;
19
import java.util.Map;
23
import java.util.Map;
Line 25... Line 29...
25
 * 
29
 * 
26
 * @author mandeep
30
 * @author mandeep
27
 */
31
 */
28
@SuppressWarnings("serial")
32
@SuppressWarnings("serial")
29
public class UserTicketsController extends BaseController {
33
public class UserTicketsController extends BaseController {
30
    private static final String AGENT = "Agent";
34
    private static final String AGENT      = "Agent";
31
 
35
 
32
    private Map<Long, Ticket> ticketsMap = new HashMap<Long, Ticket>();
36
    private Map<Long, Ticket>   ticketsMap = new HashMap<Long, Ticket>();
33
 
37
 
34
    private long              userId;
38
    private long                userId;
-
 
39
    private String              userEmailId;
35
    private String            id;
40
    private String              id;
36
    private String            activityDescription;
41
    private String              activityDescription;
37
    private String            description;
42
    private String              description;
38
    private String            assigneeEmailId;
43
    private String              assigneeEmailId;
39
    private String            status;
44
    private String              status;
40
    private String            priority;
45
    private String              priority;
41
    private String            category;
46
    private String              category;
42
    private String            activityType;
47
    private String              activityType;
43
    private Ticket            ticket;
48
    private Ticket              ticket;
44
    private List<Activity>    activities;
49
    private List<Activity>      activities;
45
    private String            orderId;
50
    private String              orderId;
-
 
51
    private String              subject;
-
 
52
    private String              body;
46
 
53
 
47
    public String index() {
54
    public String index() {
48
        try {
55
        try {
49
            createServiceClients();
56
            createServiceClients();
50
            List<Ticket> ticketsList = crmServiceClient.getTickets(userId);
57
            List<Ticket> ticketsList = crmServiceClient.getTickets(userId);
Line 90... Line 97...
90
            activity.setTicketStatus(TicketStatus.valueOf(status));
97
            activity.setTicketStatus(TicketStatus.valueOf(status));
91
            activity.setCreatorId(creatorId);
98
            activity.setCreatorId(creatorId);
92
            activity.setTicketCategory(TicketCategory.valueOf(category));
99
            activity.setTicketCategory(TicketCategory.valueOf(category));
93
            activity.setTicketDescription(description);
100
            activity.setTicketDescription(description);
94
 
101
 
-
 
102
            log.info(activityType);
-
 
103
            if (ActivityType.EMAIL_CUSTOMER.equals(activity.getType())) {
-
 
104
                log.info("Sending mail");
-
 
105
                Client helperClient = new HelperClient().getClient();
-
 
106
                activity.setEmailId(helperClient.saveUserEmailForSending(
-
 
107
                        userEmailId, CRMConstants.CRM_EMAIL_SENDOR, subject,
-
 
108
                        body, null, CRMConstants.CRM_EMAIL_TYPE));
-
 
109
 
-
 
110
                // We change activityType to OTHER when pop up box for email
-
 
111
                // closes
-
 
112
                activity.setDescription("Subject: " + subject + "----------" + "Body: " + body);
-
 
113
            }
-
 
114
 
95
            // handling null values appropriately
115
            // handling null values appropriately
96
            if (assigneeEmailId != null && !assigneeEmailId.isEmpty()) {
116
            if (assigneeEmailId != null && !assigneeEmailId.isEmpty()) {
97
                long assigneeId = crmServiceClient.getAgentByEmailId(
117
                long assigneeId = crmServiceClient.getAgentByEmailId(
98
                        assigneeEmailId).getId();
118
                        assigneeEmailId).getId();
99
                ticket.setAssigneeId(assigneeId);
119
                ticket.setAssigneeId(assigneeId);
Line 101... Line 121...
101
            } else {
121
            } else {
102
                ticket.setAssigneeIdIsSet(false);
122
                ticket.setAssigneeIdIsSet(false);
103
                activity.setTicketAssigneeIdIsSet(false);
123
                activity.setTicketAssigneeIdIsSet(false);
104
            }
124
            }
105
 
125
 
106
            crmServiceClient.updateTicket(ticket);
126
            crmServiceClient.updateTicket(ticket, activity);
107
            activity.setTicketId(ticket.getId());
-
 
108
            crmServiceClient.insertActivity(activity);
-
 
109
        } catch (TException e) {
127
        } catch (TException e) {
110
            log.error("Error while updating ticket", e);
128
            log.error("Error while updating ticket", e);
111
            return EXCEPTION;
129
            return EXCEPTION;
112
        }
130
        }
-
 
131
        catch (HelperServiceException hse) {
-
 
132
            log.error("Error while sending mail", hse);
-
 
133
            return EXCEPTION;
-
 
134
        }
113
 
135
 
114
        return index();
136
        return index();
115
    }
137
    }
116
 
138
 
117
    public String edit() {
139
    public String edit() {
118
        try {
140
        try {
119
            createServiceClients();
141
            createServiceClients();
120
            long ticketId = Long.parseLong(id);
142
            long ticketId = Long.parseLong(id);
121
            ticket = crmServiceClient.getTicket(ticketId);
143
            ticket = crmServiceClient.getTicket(ticketId);
122
            activities = crmServiceClient.getActivitiesForTicket(Long
144
            activities = crmServiceClient.getActivitiesForTicket(ticketId);
-
 
145
            subject = createSubjectString(ticket);
123
                    .parseLong(id));
146
            userId = ticket.getCustomerId();
124
        } catch (TException e) {
147
        } catch (TException e) {
125
            log.error("Error while loading edit page", e);
148
            log.error("Error while loading edit page", e);
126
            return EXCEPTION;
149
            return EXCEPTION;
127
        }
150
        }
128
 
151
 
129
        return EDIT;
152
        return EDIT;
130
    }
153
    }
131
 
154
 
-
 
155
    private String createSubjectString(Ticket ticket) {
-
 
156
        return CRMConstants.CRM_SUBJECT_PREFIX_FOR_TICKET_ID + ticket.getId()
-
 
157
                + " " + ticket.getCategory().name();
-
 
158
    }
-
 
159
 
132
    public Map<Long, Ticket> getTickets() {
160
    public Map<Long, Ticket> getTickets() {
133
        return ticketsMap;
161
        return ticketsMap;
134
    }
162
    }
135
 
163
 
136
    public User getUser() throws UserContextException, TException {
164
    public User getUser() throws UserContextException, TException {
Line 169... Line 197...
169
            ticket.setCustomerId(userId);
197
            ticket.setCustomerId(userId);
170
            ticket.setCreatorId(creatorId);
198
            ticket.setCreatorId(creatorId);
171
 
199
 
172
            if (orderId == null || orderId.isEmpty()) {
200
            if (orderId == null || orderId.isEmpty()) {
173
                ticket.setOrderIdIsSet(false);
201
                ticket.setOrderIdIsSet(false);
174
            }
-
 
175
            else {
202
            } else {
176
                ticket.setOrderId(Long.parseLong(orderId));
203
                ticket.setOrderId(Long.parseLong(orderId));
177
            }
204
            }
178
 
205
 
179
            ticket.setStatus(TicketStatus.OPEN);
206
            ticket.setStatus(TicketStatus.OPEN);
180
            ticket.setPriority(TicketPriority.valueOf(priority));
207
            ticket.setPriority(TicketPriority.valueOf(priority));
Line 201... Line 228...
201
            } else {
228
            } else {
202
                ticket.setAssigneeIdIsSet(false);
229
                ticket.setAssigneeIdIsSet(false);
203
                activity.setTicketAssigneeIdIsSet(false);
230
                activity.setTicketAssigneeIdIsSet(false);
204
            }
231
            }
205
 
232
 
206
            activity.setTicketId(crmServiceClient.insertTicket(ticket));
233
            crmServiceClient.insertTicket(ticket, activity);
207
            crmServiceClient.insertActivity(activity);
234
            
208
        } catch (TException e) {
235
        } catch (TException e) {
209
            log.error("Error while creating ticket", e);
236
            log.error("Error while creating ticket", e);
210
            return EXCEPTION;
237
            return EXCEPTION;
211
        }
238
        }
212
 
239
 
Line 214... Line 241...
214
    }
241
    }
215
 
242
 
216
    public String getLoggerRole() {
243
    public String getLoggerRole() {
217
        try {
244
        try {
218
            createServiceClients();
245
            createServiceClients();
219
            return crmServiceClient.getRoleNamesForAgent(currentAgentEmailId).get(0);
246
            return crmServiceClient.getRoleNamesForAgent(currentAgentEmailId)
-
 
247
                    .get(0);
220
        } catch (TException e) {
248
        } catch (TException e) {
221
            log.error("Error while getting roles", e);
249
            log.error("Error while getting roles", e);
222
            return AGENT;
250
            return AGENT;
223
        }
251
        }
224
    }
252
    }
Line 234... Line 262...
234
    public List<Agent> getAllAgents() {
262
    public List<Agent> getAllAgents() {
235
        List<Agent> agents = null;
263
        List<Agent> agents = null;
236
 
264
 
237
        try {
265
        try {
238
            createServiceClients();
266
            createServiceClients();
239
            agents = crmServiceClient.getAllAgents();            
267
            agents = crmServiceClient.getAllAgents();
240
        }
-
 
241
        catch (TException e) {
268
        } catch (TException e) {
242
            String errorString = "Error while getting roles";
269
            String errorString = "Error while getting roles";
243
            log.error(errorString, e);
270
            log.error(errorString, e);
244
            addActionError(errorString);
271
            addActionError(errorString);
245
        }
272
        }
246
 
273
 
Line 352... Line 379...
352
    }
379
    }
353
 
380
 
354
    public void setTicketsMap(Map<Long, Ticket> ticketsMap) {
381
    public void setTicketsMap(Map<Long, Ticket> ticketsMap) {
355
        this.ticketsMap = ticketsMap;
382
        this.ticketsMap = ticketsMap;
356
    }
383
    }
-
 
384
 
-
 
385
    public String getSubject() {
-
 
386
        return subject;
-
 
387
    }
-
 
388
 
-
 
389
    public void setSubject(String subject) {
-
 
390
        this.subject = subject;
-
 
391
    }
-
 
392
 
-
 
393
    public String getBody() {
-
 
394
        return body;
-
 
395
    }
-
 
396
 
-
 
397
    public void setBody(String body) {
-
 
398
        this.body = body;
-
 
399
    }
-
 
400
 
-
 
401
    public String getUserEmailId() {
-
 
402
        return userEmailId;
-
 
403
    }
-
 
404
 
-
 
405
    public void setUserEmailId(String userEmailId) {
-
 
406
        this.userEmailId = userEmailId;
-
 
407
    }
357
}
408
}