Rev 3339 | Blame | Last modification | View Log | RSS feed
/****/package in.shop2020.serving.controllers;import in.shop2020.crm.Activity;import in.shop2020.crm.ActivityType;import in.shop2020.crm.Agent;import in.shop2020.crm.SearchFilter;import in.shop2020.crm.Ticket;import in.shop2020.crm.TicketPriority;import in.shop2020.crm.TicketStatus;import in.shop2020.model.v1.user.User;import in.shop2020.model.v1.user.UserContextException;import in.shop2020.serving.auth.CRMAuthorizingRealm;import in.shop2020.thrift.clients.CRMClient;import in.shop2020.thrift.clients.HelperClient;import in.shop2020.thrift.clients.UserClient;import in.shop2020.util.CRMConstants;import in.shop2020.utils.HelperService.Client;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import org.apache.shiro.SecurityUtils;import org.apache.thrift.TException;/*** Action class for activity pages in CRM.** @author mandeep*/public class UserActivityController extends BaseController {/****/private static final long serialVersionUID = 1L;private Map<Long, Activity> activities = new LinkedHashMap<Long, Activity>();private String userId;private String description;private User user;private String type;private String subject;private String body;private String userEmailId;public String index() throws TException, UserContextException {SearchFilter searchFilter = new SearchFilter();searchFilter.setCustomerId(Long.parseLong(userId));crmServiceClient = new CRMClient().getClient();List<Activity> activityList = crmServiceClient.getActivities(searchFilter);if (activityList != null) {for (Activity activity : activityList) {activities.put(activity.getId(), activity);}}user = userContextServiceClient.getUserById(Long.parseLong(userId));return INDEX;}public String editNew() {try {if (userId != null && !userId.isEmpty()) {userContextServiceClient = new UserClient().getClient();user = userContextServiceClient.getUserById(Long.parseLong(userId));}subject = "";} catch (UserContextException e) {String errorMessage = "Could not fetch user for " + userId;addActionError(errorMessage);log.error(errorMessage, e);return EXCEPTION;} catch (TException e) {String errorMessage = "Could not fetch user for " + userId;addActionError(errorMessage);log.error(errorMessage, e);return EXCEPTION;}return EDIT_NEW;}public Map<Long, Activity> getActivities() {return activities;}public TicketStatus[] getTicketStatuses() {return TicketStatus.values();}public TicketPriority[] getTicketPriorities() {return TicketPriority.values();}public ActivityType[] getActivityTypes() {return ActivityType.values();}public User getUser() {return user;}public Ticket getTicket(long activityId) throws TException {SearchFilter searchFilter = new SearchFilter();searchFilter.setActivityId(activityId);crmServiceClient = new CRMClient().getClient();Ticket ticket = null;Activity activity = null;List<Activity> activities = crmServiceClient.getActivities(searchFilter);if (activities != null && !activities.isEmpty()) {activity = activities.get(0);}if (activity != null && activity.isSetTicketId()) {searchFilter.setTicketId(activity.getTicketId());List<Ticket> tickets = crmServiceClient.getTickets(searchFilter);if (tickets != null && !tickets.isEmpty()) {ticket = tickets.get(0);}}return ticket;}public String create() throws Exception {Activity activity = new Activity();activity.setDescription(description);activity.setType(ActivityType.valueOf(type));activity.setCreatorId(CRMAuthorizingRealm.getAgent(currentAgentEmailId).getId());if (userId != null && !userId.isEmpty()) {activity.setCustomerId(Long.parseLong(userId));}if (ActivityType.SEND_EMAIL_TO_CUSTOMER.equals(activity.getType())) {log.info("Sending mail");Client helperClient = new HelperClient().getClient();activity.setUserEmailId(helperClient.saveUserEmailForSending(userEmailId, CRMConstants.CRM_EMAIL_SENDOR, subject,body, null, CRMConstants.CRM_EMAIL_TYPE));// We change activityType to OTHER when pop up box for email// closesactivity.setDescription("Subject: " + subject + "\n\n" + "Body: " + body);}crmServiceClient = new CRMClient().getClient();crmServiceClient.insertActivity(activity);return index();}public boolean isAssigneeEditable() {return SecurityUtils.getSubject().hasRole("TeamLead");}public List<Agent> getAllAgents() throws TException {return CRMAuthorizingRealm.getAgents();}public Agent getAgent(long agentId) throws TException {return CRMAuthorizingRealm.getAgent(agentId);}public void setDescription(String description) {this.description = description;}public String getUserId() {return userId;}public String getType() {return type;}public void setType(String type) {this.type = type;}public String getDescription() {return description;}public void setActivities(Map<Long, Activity> activities) {this.activities = activities;}public void setUserId(String userId) {this.userId = userId;}public String getSubject() {return subject;}public void setSubject(String subject) {this.subject = subject;}public String getBody() {return body;}public void setBody(String body) {this.body = body;}public String getUserEmailId() {return userEmailId;}public void setUserEmailId(String userEmailId) {this.userEmailId = userEmailId;}}