Subversion Repositories SmartDukaan

Rev

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

Rev 3375 Rev 3390
Line 2... Line 2...
2
 * 
2
 * 
3
 */
3
 */
4
package in.shop2020.crm.service.handler;
4
package in.shop2020.crm.service.handler;
5
 
5
 
6
import in.shop2020.crm.Activity;
6
import in.shop2020.crm.Activity;
-
 
7
import in.shop2020.crm.ActivityType;
7
import in.shop2020.crm.Agent;
8
import in.shop2020.crm.Agent;
8
import in.shop2020.crm.CRMService.Iface;
9
import in.shop2020.crm.CRMService.Iface;
-
 
10
import in.shop2020.crm.SearchFilter;
9
import in.shop2020.crm.Ticket;
11
import in.shop2020.crm.Ticket;
10
import in.shop2020.crm.handler.ActivityHandler;
12
import in.shop2020.crm.handler.ActivityHandler;
11
import in.shop2020.crm.handler.AgentHandler;
13
import in.shop2020.crm.handler.AgentHandler;
12
import in.shop2020.crm.handler.TicketHandler;
14
import in.shop2020.crm.handler.TicketHandler;
13
 
15
 
Line 33... Line 35...
33
                                               "context.xml");
35
                                               "context.xml");
34
    TicketHandler      ticketHandler   = context.getBean(TicketHandler.class);
36
    TicketHandler      ticketHandler   = context.getBean(TicketHandler.class);
35
    ActivityHandler    activityHandler = context.getBean(ActivityHandler.class);
37
    ActivityHandler    activityHandler = context.getBean(ActivityHandler.class);
36
    AgentHandler       agentHandler    = context.getBean(AgentHandler.class);
38
    AgentHandler       agentHandler    = context.getBean(AgentHandler.class);
37
 
39
 
38
    public List<Ticket> getTickets(long customerId) throws TException {
40
    public List<Ticket> getTickets(SearchFilter searchFilter) throws TException {
39
        List<Ticket> ttickets = new ArrayList<Ticket>();
41
        List<Ticket> ttickets = new ArrayList<Ticket>();
40
        for (in.shop2020.crm.domain.Ticket ticket : ticketHandler.getTickets(customerId)) {
42
        for (in.shop2020.crm.domain.Ticket ticket : ticketHandler
-
 
43
                .getTickets(in.shop2020.crm.domain.SearchFilter
-
 
44
                        .create(searchFilter))) {
41
            ttickets.add(ticket.getThriftTicket());
45
            ttickets.add(ticket.getThriftTicket());
42
        }
46
        }
43
 
47
 
44
        return ttickets;
48
        return ttickets;
45
    }
49
    }
46
 
50
 
-
 
51
    public List<Ticket> getUnassignedTickets() throws TException {
-
 
52
        List<Ticket> tickets = new ArrayList<Ticket>();
-
 
53
 
-
 
54
        for (in.shop2020.crm.domain.Ticket ticket : ticketHandler
-
 
55
                .getUnassignedTickets()) {
-
 
56
            tickets.add(ticket.getThriftTicket());
-
 
57
        }
-
 
58
 
-
 
59
        return tickets;
-
 
60
    }
-
 
61
 
47
    @Transactional
62
    @Transactional
48
    public void updateTicket(Ticket ticket, Activity activity) throws TException {
63
    public void updateTicket(Ticket ticket, Activity activity)
-
 
64
            throws TException {
49
        try {
65
        try {
50
            ticketHandler.updateTicket(in.shop2020.crm.domain.Ticket
66
            ticketHandler.updateTicket(in.shop2020.crm.domain.Ticket
51
                    .create(ticket));
67
                    .create(ticket));
52
            activity.setTicketId(ticket.getId());
68
            activity.setTicketId(ticket.getId());
53
            activityHandler.insertActivity(in.shop2020.crm.domain.Activity.create(activity));
69
            activityHandler.insertActivity(in.shop2020.crm.domain.Activity
-
 
70
                    .create(activity));
54
        } catch (ParseException e) {
71
        } catch (ParseException e) {
55
            throw new TException("Could not update " + ticket, e);
72
            throw new TException("Could not update " + ticket, e);
56
        }
73
        }
57
    }
74
    }
58
 
75
 
59
    @Transactional
76
    @Transactional
60
    public long insertTicket(Ticket ticket, Activity activity) throws TException {
77
    public long insertTicket(Ticket ticket, Activity activity)
-
 
78
            throws TException {
61
        try {
79
        try {
62
            long ticketId = ticketHandler.insertTicket(in.shop2020.crm.domain.Ticket
80
            long ticketId = ticketHandler
63
                    .create(ticket));
81
                    .insertTicket(in.shop2020.crm.domain.Ticket.create(ticket));
64
            activity.setTicketId(ticketId);
82
            activity.setTicketId(ticketId);
65
            activityHandler.insertActivity(in.shop2020.crm.domain.Activity.create(activity));
83
            activityHandler.insertActivity(in.shop2020.crm.domain.Activity
-
 
84
                    .create(activity));
66
            return ticketId;
85
            return ticketId;
67
        } catch (ParseException e) {
86
        } catch (ParseException e) {
68
            throw new TException("Could not insert " + ticket, e);
87
            throw new TException("Could not insert " + ticket, e);
69
        }
88
        }
70
    }
89
    }
71
 
90
 
72
    public List<Activity> getActivities(long customerId) throws TException {
91
    public List<Activity> getActivities(SearchFilter searchFilter)
-
 
92
            throws TException {
73
        List<Activity> tactivities = new ArrayList<Activity>();
93
        List<Activity> tactivities = new ArrayList<Activity>();
74
        List<in.shop2020.crm.domain.Activity> activities = activityHandler
94
        List<in.shop2020.crm.domain.Activity> activities = activityHandler
75
                .getActivities(customerId);
95
                .getActivities(in.shop2020.crm.domain.SearchFilter
-
 
96
                        .create(searchFilter));
-
 
97
 
76
        if (activities != null) {
98
        if (activities != null) {
77
            for (in.shop2020.crm.domain.Activity ticket : activities) {
99
            for (in.shop2020.crm.domain.Activity ticket : activities) {
78
                tactivities.add(ticket.getThriftActivity());
100
                tactivities.add(ticket.getThriftActivity());
79
            }
101
            }
80
        }
102
        }
-
 
103
 
81
        return tactivities;
104
        return tactivities;
82
    }
105
    }
83
 
106
 
84
    public void insertActivity(Activity activity) throws TException {
107
    public void insertActivity(Activity activity) throws TException {
85
        try {
108
        try {
Line 88... Line 111...
88
        } catch (ParseException e) {
111
        } catch (ParseException e) {
89
            throw new TException("Could not insert " + activity, e);
112
            throw new TException("Could not insert " + activity, e);
90
        }
113
        }
91
    }
114
    }
92
 
115
 
-
 
116
    @Transactional
93
    public Ticket getTicket(long ticketId) throws TException {
117
    public void markAsRead(long activityId, long agentId) throws TException {
94
        Ticket thriftTicket = null;
-
 
95
 
-
 
96
        in.shop2020.crm.domain.Ticket ticket = ticketHandler
118
        in.shop2020.crm.domain.SearchFilter searchFilter = new in.shop2020.crm.domain.SearchFilter();
97
                .getTicket(ticketId);
119
        searchFilter.setActivityId(activityId);
98
 
-
 
99
        if (ticket != null) {
-
 
100
            thriftTicket = ticket.getThriftTicket();
120
        activityHandler.markAsRead(activityId);
101
        }
-
 
102
 
-
 
103
        return thriftTicket;
-
 
104
    }
-
 
105
 
-
 
106
    public Activity getActivity(long activityId) throws TException {
-
 
107
        in.shop2020.crm.domain.Activity activity = activityHandler
121
        in.shop2020.crm.domain.Activity activity = activityHandler
108
                .getActivity(activityId);
122
                .getActivities(searchFilter).get(0);
109
        Activity thriftActivity = null;
123
        activity.setCreatorId(agentId);
110
 
-
 
111
        if (activity != null) {
-
 
112
            thriftActivity = activity.getThriftActivity();
-
 
113
        }
-
 
114
 
-
 
115
        return thriftActivity;
-
 
116
    }
-
 
117
 
-
 
118
    public Activity getLastActivity(long ticketId) throws TException {
124
        activity.setDescription("Marked as read ticketId: "
119
        in.shop2020.crm.domain.Activity lastActivity = activityHandler
125
                + activity.getTicketId() + ", activityId: " + activityId);
120
                .getLastActivity(ticketId);
126
        activity.setType(ActivityType.OTHER);
121
        Activity lastThriftActivity = null;
127
        activityHandler.insertActivity(activity);
122
 
-
 
123
        if (lastActivity != null) {
-
 
124
            lastThriftActivity = lastActivity.getThriftActivity();
-
 
125
        }
-
 
126
 
-
 
127
        return lastThriftActivity;
-
 
128
    }
-
 
129
 
-
 
130
    public List<Activity> getActivitiesByCreator(long creatorId)
-
 
131
            throws TException {
-
 
132
        List<Activity> tactivities = new ArrayList<Activity>();
-
 
133
 
-
 
134
        for (in.shop2020.crm.domain.Activity ticket : activityHandler
-
 
135
                .getActivitiesByCreator(creatorId)) {
-
 
136
            tactivities.add(ticket.getThriftActivity());
-
 
137
        }
-
 
138
 
-
 
139
        return tactivities;
-
 
140
    }
-
 
141
 
-
 
142
    public List<Activity> getActivitiesForTicket(long ticketId)
-
 
143
            throws TException {
-
 
144
        List<Activity> tactivities = new ArrayList<Activity>();
-
 
145
 
-
 
146
        for (in.shop2020.crm.domain.Activity ticket : activityHandler
-
 
147
                .getActivitiesForTicket(ticketId)) {
-
 
148
            tactivities.add(ticket.getThriftActivity());
-
 
149
        }
-
 
150
 
-
 
151
        return tactivities;
-
 
152
    }
-
 
153
 
-
 
154
    public Agent getAgent(long agentId) throws TException {
-
 
155
        in.shop2020.crm.domain.Agent agent = agentHandler.getAgent(agentId);
-
 
156
        Agent thriftAgent = null;
-
 
157
 
-
 
158
        if (agent != null) {
-
 
159
            thriftAgent = agent.getThriftAgent();
-
 
160
        }
-
 
161
 
-
 
162
        return thriftAgent;
-
 
163
    }
128
    }
164
 
129
 
165
    public Agent getAgentByEmailId(String agentEmailId) throws TException {
130
    public List<Agent> getAgents(SearchFilter searchFilter) throws TException {
166
        in.shop2020.crm.domain.Agent agentByEmail = agentHandler.getAgentByEmail(agentEmailId);
-
 
167
        Agent thriftAgent = null;
-
 
168
 
-
 
169
        if (agentByEmail != null) {
-
 
170
            thriftAgent = agentByEmail.getThriftAgent();
-
 
171
        }
-
 
172
 
-
 
173
        return thriftAgent;
-
 
174
    }
-
 
175
 
-
 
176
    public List<String> getRoleNamesForAgent(String agentEmailId)
-
 
177
            throws TException {
-
 
178
        return agentHandler.getRoleNamesForAgent(agentEmailId);
-
 
179
    }
-
 
180
 
-
 
181
    public List<String> getPermissionsForRoleName(String roleName)
-
 
182
            throws TException {
-
 
183
        return agentHandler.getPermissionsForRoleName(roleName);
-
 
184
    }
-
 
185
 
-
 
186
    public List<Ticket> getAssignedTickets(long agentId) throws TException {
-
 
187
        List<Ticket> tickets = new ArrayList<Ticket>();
-
 
188
 
-
 
189
        for (in.shop2020.crm.domain.Ticket ticket : ticketHandler
-
 
190
                .getAssignedTickets(agentId)) {
-
 
191
            tickets.add(ticket.getThriftTicket());
-
 
192
        }
-
 
193
 
-
 
194
        return tickets;
-
 
195
    }
-
 
196
 
-
 
197
    public List<Agent> getAllAgents() throws TException {
-
 
198
        List<Agent> agents = new ArrayList<Agent>();
131
        List<Agent> agents = new ArrayList<Agent>();
199
 
132
 
200
        for (in.shop2020.crm.domain.Agent agent : agentHandler.getAllAgents()) {
133
        for (in.shop2020.crm.domain.Agent agent : agentHandler
-
 
134
                .getAgents(in.shop2020.crm.domain.SearchFilter
-
 
135
                        .create(searchFilter))) {
201
            agents.add(agent.getThriftAgent());
136
            agents.add(agent.getThriftAgent());
202
        }
137
        }
203
 
138
 
204
        return agents;
139
        return agents;
205
    }
140
    }
Line 207... Line 142...
207
    public void updatePasswordForAgent(String agentEmailId, String password)
142
    public void updatePasswordForAgent(String agentEmailId, String password)
208
            throws TException {
143
            throws TException {
209
        agentHandler.updatePasswordForAgent(agentEmailId, password);
144
        agentHandler.updatePasswordForAgent(agentEmailId, password);
210
    }
145
    }
211
 
146
 
212
    public List<Ticket> getUnassignedTickets() throws TException {
-
 
213
        List<Ticket> tickets = new ArrayList<Ticket>();
-
 
214
 
-
 
215
        for (in.shop2020.crm.domain.Ticket ticket : ticketHandler
-
 
216
                .getUnassignedTickets()) {
-
 
217
            tickets.add(ticket.getThriftTicket());
-
 
218
        }
-
 
219
 
-
 
220
        return tickets;
-
 
221
    }
-
 
222
 
-
 
223
    public List<Ticket> getAllTickets(long agentId) throws TException {
-
 
224
        List<in.shop2020.crm.domain.Ticket> tickets = ticketHandler
-
 
225
                .getAssignedTickets(agentId);
-
 
226
 
-
 
227
        for (in.shop2020.crm.domain.Agent agent : agentHandler
-
 
228
                .getReportees(agentId)) {
-
 
229
            tickets.addAll(ticketHandler.getAssignedTickets(agent.getId()));
-
 
230
        }
-
 
231
 
-
 
232
        List<Ticket> ttickets = new ArrayList<Ticket>();
-
 
233
 
-
 
234
        for (in.shop2020.crm.domain.Ticket ticket : tickets) {
-
 
235
            ttickets.add(ticket.getThriftTicket());
-
 
236
        }
-
 
237
 
-
 
238
        return ttickets;
-
 
239
    }
-
 
240
 
-
 
241
    public long getLastEmailProcessedTimestamp() throws TException {
147
    public long getLastEmailProcessedTimestamp() throws TException {
242
        return agentHandler.getLastEmailProcessedTimestamp().getTime();
148
        return agentHandler.getLastEmailProcessedTimestamp().getTime();
243
    }
149
    }
244
 
150
 
245
    public void updateLastEmailProcessedTimestamp(long timestamp)
151
    public void updateLastEmailProcessedTimestamp(long timestamp)
246
            throws TException {
152
            throws TException {
247
        agentHandler.updateLastEmailProcessedTimestamp(new Date(timestamp));
153
        agentHandler.updateLastEmailProcessedTimestamp(new Date(timestamp));
248
    }
154
    }
249
 
155
 
-
 
156
    public List<String> getRoleNamesForAgent(String agentEmailId)
-
 
157
            throws TException {
-
 
158
        return agentHandler.getRoleNamesForAgent(agentEmailId);
-
 
159
    }
-
 
160
 
-
 
161
    public List<String> getPermissionsForRoleName(String roleName)
-
 
162
            throws TException {
-
 
163
        return agentHandler.getPermissionsForRoleName(roleName);
-
 
164
    }
-
 
165
 
250
	public boolean isAlive() throws TException {
166
	public boolean isAlive() throws TException {
251
		// TODO Auto-generated method stub
167
		// TODO Auto-generated method stub
252
		return true;
168
		return true;
253
	}
169
	}
254
 
170