⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inboxmanagerejb.java

📁 CRM源码This file describes some issues that should be implemented in future and how it should be imple
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                ticketHnd.commit();

            } // if (ticketHnd == null)
        } catch (Exception ex) {
            error = ex;
        } // try

        // Logging.
        try {
            if (error != null) {
                String logMessage = "The ticket wasn't updated: " + error.getMessage();
                InboxLogPublisher publisher = new InboxLogPublisher(ls);
                publisher.ERROR(logMessage, inboxMessage);
                ERROR(logMessage, error);
                throw error;
            } else {
                String logMessage = "The ticket was updated. The ticket ID is " + inboxMessage.getObjectId().longValue();
                INFO(logMessage + " Time (ms) - " + (System.currentTimeMillis() - time) +
                      ". Message: " + inboxMessage);

                InboxLogPublisher publisher = new InboxLogPublisher(ls);
                publisher.INFO(logMessage, inboxMessage);
            } // if (error != null)

        } catch(Exception ex){
            // Re-throwing the exception.
            throwException("Known exception: " + ex.getMessage(), ex);
        } // try

        INFO("The ticket was updated");

        return true;
    } // createTicket(LogonSession, InboxMessage) : boolean

    /**
     * The method creates a interaction by the message.
     * @param ls logon session object
     * @param inboxMessage message object
     * @return interactio ID
     */
    public Long createInteraction(LogonSession ls, InboxMessage inboxMessage) {

        INFO("Create a new interaction by the message...");
        long time = System.currentTimeMillis();
        Exception error = null;

        Long interactionId;

        //JEOManagerLocal jeoManager = getJEOManager();
        // Save!
        try {

            // check is the customer has already got
            if (inboxMessage.getSenderID() == null) {
                Long customerID = getCustomer(ls, inboxMessage);
                if (customerID == null) {
                    // try to get the default customer
                    String emailDefaulCustomer = SysPropertyManager.getProperty("IN_EMAIL_DEFAULT_CUSTOMER_ID");
                    if (emailDefaulCustomer != null) {
                        inboxMessage.setSenderID(new Long(emailDefaulCustomer));
                        inboxMessage.setSenderType(CustomInboxHelper.CUSTOMER_TYPE);
                    } else {
                        // the ticket isn't linked
                        throw new NullPointerException("The system property IN_EMAIL_DEFAULT_CUSTOMER_ID wasn't found.");
                    } // if (emailDefaulCustomer != null)
                } // if (customerID != null)
            } // if (inboxMessage.getSenderID() == null)

            String emailSourceId = SysPropertyManager.getProperty("IN_EMAIL_INTER_SOURCE");
            if (emailSourceId == null) {
                throw new NullPointerException("The system property IN_EMAIL_INTER_SOURCE wasn't found.");
            }
            String emailDefaulAgentId = SysPropertyManager.getProperty("IN_EMAIL_INTER_DEFAULT_AGENT");
            if (emailDefaulAgentId == null) {
                throw new NullPointerException("The system property IN_EMAIL_INTER_DEFAULT_AGENT wasn't found.");
            }
            JEOManagerLocal jeoManager = getJEOManager();
            // try to create ne Interaction object
            JEObjectHandler hnd = jeoManager.create(ls, InteractionObjectHandler.class);
            InteractionObject interactionObj = (InteractionObject)hnd.getJEObject();
            interactionObj.setQw_source(new Integer(emailSourceId));
            // check and set problem field
            if (inboxMessage.getSubject().length() > 255)
                interactionObj.setQw_problem(inboxMessage.getSubject().substring(0, 250));
            else
                interactionObj.setQw_problem(inboxMessage.getSubject());

            // check and set description field
            if (inboxMessage.getBody() == null) {
                interactionObj.setQw_description(inboxMessage.getSubject());
            } else {
                String body = inboxMessage.getBody();
                if (StringHelper.isHTML(body)) {
                    body = StringHelper.html2text(body);
                }
                if (body.length() > 2000)
                    interactionObj.setQw_description(body.substring(0, 1900));
                else
                    interactionObj.setQw_description(body);
            } // if (message.getBody() == null)

            interactionObj.setQw_notes(inboxMessage.getBody().toCharArray());

            interactionObj.setQw_agentid(new Long(emailDefaulAgentId));

            // link to the customer
            if (inboxMessage.getSenderType() == CustomInboxHelper.CUSTOMER_TYPE) {
                interactionObj.setQw_customerid(inboxMessage.getSenderID());
            } else if (inboxMessage.getSenderType() == CustomInboxHelper.CUSTOMER_INTERNAL_TYPE) {
                interactionObj.setQw_employeeid(inboxMessage.getSenderID());
            } else {
                throw new NullPointerException("Unsupported Customer Type. The interaction wasn't created.");
            } // if (inboxMessage.getSenderType() == CustomInboxHelper.CUSTOMER_TYPE)

            hnd.commit();

            interactionId = interactionObj.getQw_interactionid();
        } catch (Exception ex) {
            error = ex;
            interactionId = null;
        } // try

        // Logging.
        try {
            if (error != null) {
                String logMessage = "Can't create a new interaction: " + error.getMessage();
                InboxLogPublisher publisher = new InboxLogPublisher( ls );
                publisher.ERROR(logMessage, inboxMessage);
                ERROR(logMessage, error);
                throw error;
            } else {
                String logMessage = "The new interaction was created. The interaction ID is " + interactionId;
                INFO(logMessage + " Time (ms) - " + (System.currentTimeMillis() - time) +
                      ". Message: " + inboxMessage);

                InboxLogPublisher publisher = new InboxLogPublisher(ls);
                publisher.INFO(logMessage, inboxMessage);
            } // if (error != null)

        } catch(Exception ex){
            // Re-throwing the exception.
            throwException("Known exception: " + ex.getMessage(), ex);
        } // try

        INFO("The new interaction was created");

        return interactionId;
    } // createInteraction(LogonSession, InboxMessage) : Long

    /**
     * The method creates a interaction by the interaction. It is used for reply sending.
     * @param ls logon session object
     * @param inboxMessage message object
     * @return interactio ID
     */
    public Long createInteractionByInteraction(LogonSession ls, InboxMessage inboxMessage) {

        INFO("Create a new interaction by the interaction...");
        long time = System.currentTimeMillis();
        Exception error = null;

        Long interactionId;

        JEOManagerLocal jeoManager = getJEOManager();
        // Save!
        try {
            // get existing interaction
            JEObjectHandler interactionHnd = InteractionObjectHandler.selectByID(jeoManager, ls, inboxMessage.getObjectId().longValue());
            // If no ticket found.
            if (interactionHnd == null) {
                String errorMessage = "The interaction wasn't found. The interaction ID is " + inboxMessage.getObjectId().longValue();
                ERROR(errorMessage);
                throw new GenericSystemException(errorMessage);
            }
            InteractionObject interactionObject = (InteractionObject)interactionHnd.getJEObject();

            String emailSourceId = SysPropertyManager.getProperty("OUT_EMAIL_INTER_SOURCE");
            if (emailSourceId == null) {
                throw new NullPointerException("The system property OUT_EMAIL_INTER_SOURCE wasn't found.");
            }

            // try to create ne Interaction object
            JEObjectHandler hnd = jeoManager.create(ls, InteractionObjectHandler.class);
            InteractionObject interactionObj = (InteractionObject)hnd.getJEObject();
            interactionObj.setQw_source(new Integer(emailSourceId));
            // check and set problem field
            if (inboxMessage.getSubject().length() > 255)
                interactionObj.setQw_problem(inboxMessage.getSubject().substring(0, 250));
            else
                interactionObj.setQw_problem(inboxMessage.getSubject());

            // check and set description field
            if (inboxMessage.getBody() == null) {
                interactionObj.setQw_description(inboxMessage.getSubject());
            } else {
                String body = inboxMessage.getBody();
                if (StringHelper.isHTML(body)) {
                    body = StringHelper.html2text(body);
                }
                if (body.length() > 2000)
                    interactionObj.setQw_description(body.substring(0, 1900));
                else
                    interactionObj.setQw_description(body);
            } // if (message.getBody() == null)

            interactionObj.setQw_agentid(interactionObject.getQw_agentid());
            interactionObj.setQw_customerid(interactionObject.getQw_customerid());
            interactionObj.setQw_employeeid(interactionObject.getQw_employeeid());
            interactionObj.setQw_notes(inboxMessage.getBody().toCharArray());

            hnd.commit();

            interactionId = interactionObj.getQw_interactionid();
        } catch (Exception ex) {
            error = ex;
            interactionId = null;
        } // try

        // Logging.
        try {
            if (error != null) {
                String logMessage = "Can't create a new interaction: " + error.getMessage();
                InboxLogPublisher publisher = new InboxLogPublisher( ls );
                publisher.ERROR(logMessage, inboxMessage);
                ERROR(logMessage, error);
                throw error;
            } else {
                String logMessage = "The new interaction was created. The ticket ID is " + interactionId;
                INFO(logMessage + " Time (ms) - " + (System.currentTimeMillis() - time) +
                      ". Message: " + inboxMessage);

                InboxLogPublisher publisher = new InboxLogPublisher(ls);
                publisher.INFO(logMessage, inboxMessage);
            } // if (error != null)

        } catch(Exception ex){
            // Re-throwing the exception.
            throwException("Known exception: " + ex.getMessage(), ex);
        } // try

        INFO("The new interaction was created");

        return interactionId;
    } // createInteraction(LogonSession, InboxMessage) : Long

    /**
     * The method creates a interaction by the ticket.
     * @param ls logon session object
     * @param inboxMessage inbox message object
     * @return Long if the interaction was created
     */
    public Long createInteractionByTicket(LogonSession ls, InboxMessage inboxMessage) {

        INFO("Create a new interaction by the outgoing message...");
        long time = System.currentTimeMillis();
        Exception error = null;

        Long interactionId;

        JEOManagerLocal jeoManager = getJEOManager();
        // Save!
        try {

            // get existing ticket
            JEObjectHandler ticketHnd = TicketMailObjectHandler.selectByID(jeoManager, ls, inboxMessage.getObjectId().longValue());
            // If no ticket found.
            if (ticketHnd == null) {
                String errorMessage = "The ticket wasn't found. The ticket ID is " + inboxMessage.getObjectId().longValue();
                ERROR(errorMessage);
                throw new GenericSystemException(errorMessage);
            }
            TicketMailObject ticketObject = (TicketMailObject)ticketHnd.getJEObject();

            String emailSourceId = SysPropertyManager.getProperty("OUT_EMAIL_INTER_SOURCE");
            if (emailSourceId == null) {
                throw new NullPointerException("The system property OUT_EMAIL_INTER_SOURCE wasn't found.");
            }

            // try to create ne Interaction object
            JEObjectHandler hnd = jeoManager.create(ls, InteractionObjectHandler.class);
            InteractionObject interactionObj = (InteractionObject)hnd.getJEObject();
            interactionObj.setQw_source(new Integer(emailSourceId));
            // check and set problem field
            if (inboxMessage.getSubject().length() > 255)
                interactionObj.setQw_problem(inboxMessage.getSubject().substring(0, 250));
            else

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -