Subversion Repositories SmartDukaan

Rev

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

Rev 4179 Rev 4191
Line 71... Line 71...
71
            }
71
            }
72
            else {
72
            else {
73
                log.info("No transactions to process");
73
                log.info("No transactions to process");
74
            }
74
            }
75
        } catch (TTransportException e) {
75
        } catch (TTransportException e) {
76
            log.error("Could not create TransactionService client", e);
76
            log.error("Error creating client", e);
77
        } catch (TException e) {
77
        } catch (TException e) {
78
            log.error("Could not fetch transactions for processing", e);
78
            log.error("Could not fetch transactions for processing", e);
-
 
79
        } catch (TransactionServiceException e) {
-
 
80
            log.error("Could not find transaction", e);
-
 
81
        } catch (UserContextException e) {
-
 
82
            log.error("Could not find user", e);
79
        }
83
        }
80
    }
84
    }
81
 
85
 
82
    /**
86
    /**
83
     * Method that creates a ticket if necessary for COD verification
87
     * Method that creates a ticket if necessary for COD verification
-
 
88
     * @throws TException 
-
 
89
     * @throws TransactionServiceException 
-
 
90
     * @throws UserContextException 
84
     */
91
     */
85
    private void processCODTxn(long transactionId) {
92
    private void processCODTxn(long transactionId)
-
 
93
            throws TransactionServiceException, TException,
86
        try {
94
            UserContextException {
87
            log.info("Processing txn id: " + transactionId);
95
        log.info("Processing txn id: " + transactionId);
88
            Client client = new TransactionClient().getClient();
96
        Client client = new TransactionClient().getClient();
89
            Transaction transaction = client.getTransaction(transactionId);
97
        Transaction transaction = client.getTransaction(transactionId);
90
            in.shop2020.model.v1.user.UserContextService.Client userClient = new UserClient().getClient();
98
        in.shop2020.model.v1.user.UserContextService.Client userClient = new UserClient()
-
 
99
                .getClient();
91
            User user = userClient.getUserById(transaction.getCustomer_id());
100
        User user = userClient.getUserById(transaction.getCustomer_id());
92
            if (user.getTrustLevel() - TRUST_THRESHOLD_LEVEL < 1e-4) {
101
        if (user.getTrustLevel() - TRUST_THRESHOLD_LEVEL < 1e-4) {
93
                for (Order order : transaction.getOrders()) {
102
            for (Order order : transaction.getOrders()) {
94
                    log.info("Processing order: " + order.getId());
103
                log.info("Processing order: " + order.getId());
95
                    if (order.isCod() && OrderStatus.INIT.equals(order.getStatus())) {
104
                if (order.isCod() && OrderStatus.INIT.equals(order.getStatus())) {
96
                        log.info("Processing COD order: " + order.getId());
105
                    log.info("Processing COD order: " + order.getId());
97
                        in.shop2020.crm.domain.SearchFilter searchFilter = new SearchFilter();
106
                    in.shop2020.crm.domain.SearchFilter searchFilter = new SearchFilter();
-
 
107
                    searchFilter
98
                        searchFilter.setTicketStatuses(new ArrayList<TicketStatus>());
108
                            .setTicketStatuses(new ArrayList<TicketStatus>());
99
                        searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
109
                    searchFilter.getTicketStatuses().add(TicketStatus.OPEN);
100
                        searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
110
                    searchFilter.getTicketStatuses().add(TicketStatus.REOPEN);
-
 
111
                    searchFilter
101
                        searchFilter.setTicketCategory(TicketCategory.COD_VERIFICATION);
112
                            .setTicketCategory(TicketCategory.COD_VERIFICATION);
102
                        searchFilter.setCustomerId(transaction.getCustomer_id());
113
                    searchFilter.setCustomerId(transaction.getCustomer_id());
103
 
114
 
104
                        // No need to create a ticket if there exists one for the customer!
115
                    // No need to create a ticket if there exists one for the
-
 
116
                    // customer!
105
                        if (ticketHandler.getTickets(searchFilter).isEmpty()) {
117
                    if (ticketHandler.getTickets(searchFilter).isEmpty()) {
106
                            log.info("Logging ticket");
118
                        log.info("Logging ticket");
107
                            Ticket ticket = new Ticket();
119
                        Ticket ticket = new Ticket();
108
                            ticket.setCategory(TicketCategory.COD_VERIFICATION);
120
                        ticket.setCategory(TicketCategory.COD_VERIFICATION);
109
                            ticket.setCreatorId(ADMIN_AGENT_ID);
121
                        ticket.setCreatorId(ADMIN_AGENT_ID);
110
                            ticket.setCustomerId(transaction.getCustomer_id());
122
                        ticket.setCustomerId(transaction.getCustomer_id());
111
                            ticket.setDescription("Requires COD verification");
123
                        ticket.setDescription("Requires COD verification");
112
                            ticket.setPriority(TicketPriority.HIGH);
124
                        ticket.setPriority(TicketPriority.HIGH);
113
                            ticket.setStatus(TicketStatus.OPEN);
125
                        ticket.setStatus(TicketStatus.OPEN);
114
                            ticket.setAssigneeId(OUTBOUND_DEFAULT_ASSIGNEE_ID);
126
                        ticket.setAssigneeId(OUTBOUND_DEFAULT_ASSIGNEE_ID);
115
 
127
 
116
                            Activity activity = new Activity();
128
                        Activity activity = new Activity();
117
                            activity.setCreatorId(ticket.getCreatorId());
129
                        activity.setCreatorId(ticket.getCreatorId());
118
                            activity.setCustomerId(ticket.getCustomerId());
130
                        activity.setCustomerId(ticket.getCustomerId());
119
                            activity.setDescription("Creating ticket");
131
                        activity.setDescription("Creating ticket");
120
                            activity.setTicketCategory(ticket.getCategory());
132
                        activity.setTicketCategory(ticket.getCategory());
121
                            activity.setTicketDescription(ticket.getDescription());
133
                        activity.setTicketDescription(ticket.getDescription());
122
                            activity.setTicketPriority(ticket.getPriority());
134
                        activity.setTicketPriority(ticket.getPriority());
123
                            activity.setTicketStatus(ticket.getStatus());
135
                        activity.setTicketStatus(ticket.getStatus());
124
                            activity.setTicketAssigneeId(ticket.getAssigneeId());
136
                        activity.setTicketAssigneeId(ticket.getAssigneeId());
125
                            activity.setType(ActivityType.OTHER);
137
                        activity.setType(ActivityType.OTHER);
126
 
138
 
127
                            createTicket(ticket, activity);
139
                        createTicket(ticket, activity);
128
                            break;
140
                        break;
129
                        }
-
 
130
                    }
141
                    }
131
                }
142
                }
132
            }
143
            }
133
            else {
144
        } else {
134
                log.info("Autoverifying orders");
145
            log.info("Autoverifying orders");
135
                // Submit order for processing
146
            // Submit order for processing
136
                for (Order order : transaction.getOrders()) {
147
            for (Order order : transaction.getOrders()) {
137
                    log.info("Processing order: " + order.getId());
148
                log.info("Processing order: " + order.getId());
138
                    client.changeOrderStatus(order.getId(), OrderStatus.SUBMITTED_FOR_PROCESSING, "In Process");
149
                client.changeOrderStatus(order.getId(),
139
                }
150
                        OrderStatus.SUBMITTED_FOR_PROCESSING, "In Process");
140
            }
151
            }
141
        } catch (TransactionServiceException e) {
-
 
142
            log.error("Could not fetch transaction details", e);
-
 
143
        } catch (UserContextException e) {
-
 
144
            log.error("Could not fetch user details", e);
-
 
145
        } catch (TException e) {
-
 
146
            log.info("Error processing txn id: " + transactionId);
-
 
147
        } catch (Exception e) {
-
 
148
            log.info("Exception processing txn id: " + transactionId);
-
 
149
        }
152
        }
150
    }
153
    }
151
 
154
 
152
    @Transactional
155
    @Transactional
153
    private void createTicket(Ticket ticket, Activity activity) {
156
    private void createTicket(Ticket ticket, Activity activity) {