Example usage for org.springframework.transaction.support DefaultTransactionDefinition setIsolationLevel

List of usage examples for org.springframework.transaction.support DefaultTransactionDefinition setIsolationLevel

Introduction

In this page you can find the example usage for org.springframework.transaction.support DefaultTransactionDefinition setIsolationLevel.

Prototype

public final void setIsolationLevel(int isolationLevel) 

Source Link

Document

Set the isolation level.

Usage

From source file:com.krawler.spring.crm.common.documentController.java

public ModelAndView addDocuments(HttpServletRequest request, HttpServletResponse response)
        throws ServletException {
    JSONObject jobj = new JSONObject();
    JSONObject myjobj = new JSONObject();
    List fileItems = null;/*from   w  ww .  j  a v  a 2s  . c  om*/
    String details = "";
    KwlReturnObject kmsg = null;
    String auditAction = "";
    String id = java.util.UUID.randomUUID().toString();
    // PrintWriter out = null;
    //Create transaction
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("JE_Tx");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    TransactionStatus status = txnManager.getTransaction(def);
    try {
        response.setContentType("text/html;charset=UTF-8");
        // out = response.getWriter();
        String userid = sessionHandlerImpl.getUserid(request);
        String companyID = sessionHandlerImpl.getCompanyid(request);
        String map = request.getParameter("mapid");
        HashMap<String, String> arrParam = new HashMap<String, String>();
        boolean fileUpload = false;
        ArrayList<FileItem> fi = new ArrayList<FileItem>();
        if (request.getParameter("fileAdd") != null) {
            DiskFileUpload fu = new DiskFileUpload();
            fileItems = fu.parseRequest(request);
            crmDocumentDAOObj.parseRequest(fileItems, arrParam, fi, fileUpload);
        }
        String docID = "";
        for (int cnt = 0; cnt < fi.size(); cnt++) {
            kmsg = crmDocumentDAOObj.uploadFile(fi.get(cnt), userid, companyID, getServletContext());
            Docs doc = (Docs) kmsg.getEntityList().get(0);
            docID = doc.getDocid();
            String refid = arrParam.get("refid");
            jobj.put("userid", userid);
            jobj.put("docid", docID);
            jobj.put("companyid", companyID);
            jobj.put("id", id);
            jobj.put("map", map);
            jobj.put("refid", refid);
            crmDocumentDAOObj.saveDocumentMapping(jobj);
            String randomid = java.util.UUID.randomUUID().toString();
            crmDocumentDAOObj.insertDocumentOwnerEntry(randomid, userid, docID);
            if (map.equals("0")) {
                CrmCampaign c = (CrmCampaign) hibernateTemplate.get(CrmCampaign.class, refid);
                details = " Campaign - ";
                details += StringUtil.isNullOrEmpty(c.getCampaignname()) ? "" : c.getCampaignname();
                auditAction = AuditAction.CAMPAIGN_DOC_UPLOAD;
            } else if (map.equals("1")) {
                CrmLead l = (CrmLead) hibernateTemplate.get(CrmLead.class, refid);
                details = " Lead - ";
                details += StringUtil.isNullOrEmpty(l.getFirstname()) ? "" : l.getFirstname() + " ";
                details += StringUtil.isNullOrEmpty(l.getLastname()) ? "" : l.getLastname();
                auditAction = AuditAction.LEAD_DOC_UPLOAD;
            } else if (map.equals("2")) {
                CrmContact c = (CrmContact) hibernateTemplate.get(CrmContact.class, refid);
                details = " Contact - ";
                details += StringUtil.isNullOrEmpty(c.getFirstname()) ? "" : c.getFirstname() + " ";
                details += StringUtil.isNullOrEmpty(c.getLastname()) ? "" : c.getLastname();
                auditAction = AuditAction.CONTACT_DOC_UPLOAD;
            } else if (map.equals("3")) {
                CrmProduct p = (CrmProduct) hibernateTemplate.get(CrmProduct.class, refid);
                details = " Product - ";
                details += StringUtil.isNullOrEmpty(p.getProductname()) ? "" : p.getProductname();
                auditAction = AuditAction.PRODUCT_DOC_UPLOAD;
            } else if (map.equals("4")) {
                CrmAccount a = (CrmAccount) hibernateTemplate.get(CrmAccount.class, refid);
                details = " Account - ";
                details += StringUtil.isNullOrEmpty(a.getAccountname()) ? "" : a.getAccountname();
                auditAction = AuditAction.ACCOUNT_DOC_UPLOAD;
            } else if (map.equals("5")) {
                CrmOpportunity o = (CrmOpportunity) hibernateTemplate.get(CrmOpportunity.class, refid);
                details = " Opportunity - ";
                details += StringUtil.isNullOrEmpty(o.getOppname()) ? "" : o.getOppname();
                auditAction = AuditAction.OPPORTUNITY_DOC_UPLOAD;
            } else if (map.equals("6")) {
                CrmCase c = (CrmCase) hibernateTemplate.get(CrmCase.class, refid);
                details = " Case - ";
                details += StringUtil.isNullOrEmpty(c.getSubject()) ? "" : c.getSubject();
                auditAction = AuditAction.CASE_DOC_UPLOAD;
            } else if (map.equals("7")) {
                CrmActivityMaster am = (CrmActivityMaster) hibernateTemplate.get(CrmActivityMaster.class,
                        refid);
                details = " Activity - ";
                details += StringUtil.isNullOrEmpty(am.getFlag()) ? "" : am.getFlag() + " ";
                details += StringUtil.isNullOrEmpty(am.getCrmCombodataByStatusid().getValue()) ? ""
                        : am.getCrmCombodataByStatusid().getValue();
                auditAction = AuditAction.ACTIVITY_DOC_UPLOAD;
            } else if (map.equals("-1")) {
                details = " My - Document ";
                auditAction = AuditAction.MY_DOC_UPLOAD;
            }
            auditTrailDAOObj.insertAuditLog(auditAction,
                    " Docment: '" + doc.getDocname() + "' , uploaded for " + details, request, refid, id);
        }
        myjobj.put("ID", docID);
        txnManager.commit(status);
    } catch (Exception e) {
        logger.warn(e.getMessage(), e);
        txnManager.rollback(status);
    } finally {
        // out.close();
    }
    return new ModelAndView("jsonView", "model", myjobj.toString());
}

From source file:org.opendatakit.persistence.engine.pgres.DatastoreImpl.java

/**
 * Relation manipulation APIs/*from w ww  . j a  v  a2s.  c  o  m*/
 */
@Override
public void assertRelation(CommonFieldsBase relation, User user) throws ODKDatastoreException {
    JdbcTemplate jc = getJdbcConnection();
    TransactionStatus status = null;
    try {
        DefaultTransactionDefinition paramTransactionDefinition = new DefaultTransactionDefinition();

        // do serializable read on the information schema...
        paramTransactionDefinition.setIsolationLevel(DefaultTransactionDefinition.ISOLATION_SERIALIZABLE);
        paramTransactionDefinition.setReadOnly(true);
        status = tm.getTransaction(paramTransactionDefinition);

        // see if relation already is defined and update it with dimensions...
        if (updateRelation(jc, relation, null)) {
            // it exists -- we're done!
            tm.commit(status);
            status = null;
            return;
        } else {
            tm.commit(status);
            // Try a new transaction to create the table
            paramTransactionDefinition.setIsolationLevel(DefaultTransactionDefinition.ISOLATION_SERIALIZABLE);
            paramTransactionDefinition.setReadOnly(false);
            status = tm.getTransaction(paramTransactionDefinition);

            // total number of columns must be less than MAX_BIND_PARAMS
            int countColumns = 0;
            // need to create the table...
            StringBuilder b = new StringBuilder();
            b.append(K_CREATE_TABLE);
            b.append(K_BQ);
            b.append(relation.getSchemaName());
            b.append(K_BQ);
            b.append(".");
            b.append(K_BQ);
            b.append(relation.getTableName());
            b.append(K_BQ);
            b.append(K_OPEN_PAREN);
            boolean firstTime = true;
            for (DataField f : relation.getFieldList()) {
                if (!firstTime) {
                    b.append(K_CS);
                }
                ++countColumns;
                firstTime = false;
                b.append(K_BQ);
                b.append(f.getName());
                b.append(K_BQ);
                DataField.DataType type = f.getDataType();
                switch (type) {
                case BINARY:
                    b.append(" BYTEA");
                    break;
                case LONG_STRING:
                    b.append(" TEXT");// b.append(" CHARACTER SET utf8");
                    break;
                case STRING:
                    b.append(" VARCHAR(");
                    Long len = f.getMaxCharLen();
                    if (len == null) {
                        len = PersistConsts.DEFAULT_MAX_STRING_LENGTH;
                    }
                    b.append(len.toString());
                    b.append(K_CLOSE_PAREN);
                    // b.append(" CHARACTER SET utf8");
                    break;
                case BOOLEAN:
                    b.append(" BOOLEAN");
                    break;
                case INTEGER:
                    Integer int_digits = f.getNumericPrecision();
                    if (int_digits == null) {
                        int_digits = DEFAULT_INT_NUMERIC_PRECISION;
                    }

                    if (int_digits.compareTo(9) > 0) {
                        b.append(" BIGINT");
                    } else {
                        b.append(" INTEGER");
                    }
                    break;
                case DECIMAL:
                    if (f.isDoublePrecision()) {
                        b.append(" FLOAT(53)");
                    } else {
                        Integer dbl_digits = f.getNumericPrecision();
                        Integer dbl_fract = f.getNumericScale();
                        if (dbl_digits == null) {
                            dbl_digits = DEFAULT_DBL_NUMERIC_PRECISION;
                        }
                        if (dbl_fract == null) {
                            dbl_fract = DEFAULT_DBL_NUMERIC_SCALE;
                        }
                        b.append(" DECIMAL(");
                        b.append(dbl_digits.toString());
                        b.append(K_CS);
                        b.append(dbl_fract.toString());
                        b.append(K_CLOSE_PAREN);
                    }
                    break;
                case DATETIME:
                    b.append(" TIMESTAMP WITHOUT TIME ZONE");
                    break;
                case URI:
                    b.append(" VARCHAR(");
                    len = f.getMaxCharLen();
                    if (len == null) {
                        len = PersistConsts.URI_STRING_LEN;
                    }
                    b.append(len.toString());
                    b.append(")");// b.append(" CHARACTER SET utf8");
                    break;
                }

                if (f == relation.primaryKey) {
                    b.append(" UNIQUE ");
                }
                if (f.getNullable()) {
                    b.append(" NULL ");
                } else {
                    b.append(" NOT NULL ");
                }
            }
            b.append(K_CLOSE_PAREN);

            if (countColumns > MAX_BIND_PARAMS) {
                throw new IllegalArgumentException("Table size exceeds bind parameter limit");
            }

            String createTableStmt = b.toString();
            LogFactory.getLog(DatastoreImpl.class).info("Attempting: " + createTableStmt);

            jc.execute(createTableStmt);
            LogFactory.getLog(DatastoreImpl.class)
                    .info("create table success (before updateRelation): " + relation.getTableName());

            String idx;
            // create other indicies
            for (DataField f : relation.getFieldList()) {
                if ((f.getIndexable() != IndexType.NONE) && (f != relation.primaryKey)) {
                    idx = relation.getTableName() + "_" + shortPrefix(f.getName());
                    createIndex(jc, relation, idx, f);
                }
            }

            // and update the relation with actual dimensions...
            updateRelation(jc, relation, createTableStmt);
            tm.commit(status);
        }
    } catch (Exception e) {
        if (status != null) {
            tm.rollback(status);
        }
        throw new ODKDatastoreException(e);
    }
}

From source file:com.krawler.spring.crm.leadModule.crmLeadCommonController.java

public ModelAndView deleteWTLForm(HttpServletRequest request, HttpServletResponse response)
        throws ServletException {
    JSONObject jobj = new JSONObject();
    //Create transaction
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("JE_Tx");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    TransactionStatus status = txnManager.getTransaction(def);
    try {/*w w  w  .j a v  a  2s  .  c om*/
        String formid = request.getParameter("formid");
        jobj = webtoLeadFormHandlerObj.deleteWTLForm(formid);

        txnManager.commit(status);
    } catch (Exception e) {
        txnManager.rollback(status);
        logger.warn(e.getMessage(), e);
    }
    return new ModelAndView(successView, "model", jobj.toString());
}

From source file:com.krawler.spring.crm.leadModule.crmLeadCommonController.java

public ModelAndView saveEditWTLForm(HttpServletRequest request, HttpServletResponse response)
        throws ServletException {
    JSONObject jobj = new JSONObject();
    //Create transaction
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("JE_Tx");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    TransactionStatus status = txnManager.getTransaction(def);
    try {/*from   w w  w .  j  a  va  2s  .c o m*/
        String formfields = request.getParameter("formfields");
        String formname = request.getParameter("formname");
        String formdomain = request.getParameter("formdomain");
        String redirecturl = request.getParameter("redirectURL");
        String leadowner = request.getParameter("leadowner");
        String companyid = sessionHandlerImpl.getCompanyid(request);
        String formid = request.getParameter("formid");

        jobj = webtoLeadFormHandlerObj.saveEditWTLForm(formname, formdomain, redirecturl, formfields, companyid,
                formid, leadowner);

        txnManager.commit(status);
    } catch (Exception e) {
        txnManager.rollback(status);
        logger.warn(e.getMessage(), e);
    }
    return new ModelAndView(successView, "model", jobj.toString());
}

From source file:com.krawler.spring.crm.leadModule.crmLeadCommonController.java

public ModelAndView getWebtoleadFormlist(HttpServletRequest request, HttpServletResponse response)
        throws ServletException {
    JSONObject jobjresult = new JSONObject();
    //Create transaction
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("JE_Tx");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    TransactionStatus status = txnManager.getTransaction(def);
    KwlReturnObject kmsg = null;//from ww w  .  j  av a  2s.  c  om
    try {
        String dateFormatId = sessionHandlerImpl.getDateFormatID(request);
        String timeFormatId = sessionHandlerImpl.getUserTimeFormat(request);
        String timeZoneDiff = sessionHandlerImpl.getTimeZoneDifference(request);

        String companyid = sessionHandlerImpl.getCompanyid(request);
        HashMap<String, Object> requestParams = new HashMap<String, Object>();
        requestParams.put("companyid", companyid);
        if (request.getParameter("ss") != null && !StringUtil.isNullOrEmpty(request.getParameter("ss"))) {
            requestParams.put("ss", request.getParameter("ss"));
        }
        requestParams.put("start", StringUtil.checkForNull(request.getParameter("start")));
        requestParams.put("limit", StringUtil.checkForNull(request.getParameter("limit")));
        kmsg = webtoLeadFormHandlerObj.getWebtoleadFormlist(requestParams);
        Iterator itr = kmsg.getEntityList().iterator();
        while (itr.hasNext()) {
            JSONObject jobj = new JSONObject();
            webtoleadform wtlformObj = (webtoleadform) itr.next();
            jobj.accumulate("formname", wtlformObj.getFormname());
            jobj.accumulate("formdomain", wtlformObj.getFormdomain());
            jobj.accumulate("redirecturl", wtlformObj.getRedirecturl());
            jobj.accumulate("formid", wtlformObj.getFormid());
            jobj.accumulate("lastupdatedon",
                    kwlCommonTablesDAOObj.getUserDateFormatter(dateFormatId, timeFormatId, timeZoneDiff)
                            .format(wtlformObj.getLastupdatedon()));
            jobj.accumulate("formfields", wtlformObj.getFormfield());
            jobj.accumulate("leadowner", ((User) wtlformObj.getLeadowner()).getUserID());
            jobjresult.append("data", jobj);
        }
        if (!jobjresult.has("data")) {
            jobjresult.put("data", "");
        }
        jobjresult.accumulate("totalCount", kmsg.getRecordTotalCount());
        jobjresult.accumulate("success", true);
        txnManager.commit(status);
    } catch (Exception e) {
        txnManager.rollback(status);
        logger.warn(e.getMessage(), e);
    }
    return new ModelAndView(successView, "model", jobjresult.toString());
}

From source file:com.krawler.spring.crm.leadModule.crmLeadCommonController.java

public ModelAndView acceptweblead(HttpServletRequest request, HttpServletResponse response)
        throws ServletException {
    String result = "Problem while handling your request.";
    //Create transaction
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("JE_Tx");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    TransactionStatus status = txnManager.getTransaction(def);
    try {//from  w ww .j a  va  2  s  . c o  m
        String userid = request.getParameter("userid");
        String leadid = request.getParameter("leadid");
        boolean isAlreadyAssigned = crmLeadDAOObj.checkWebLeadAssignedOwner(leadid);
        String replaceStr = "<p id='unsubContent'><p>Lead has been successfully allocated to you and can be viewed in your lead list.</p>";
        String headerContent = "<head><meta http-equiv='Content-Type' content='text/html; charset=utf-8'>"
                + "<title>New Web Lead</title>" + "<style type='text/css'>"
                + "body {font-family: 'trebuchet MS', tahoma, verdana, arial, helvetica, sans-serif;"
                + "background-color: #eee;margin: 0;} "
                + "#content {width: 100%;position:absolute;padding:20px;top:5%;}"
                + ".content {width: 600px;margin:auto;padding:20px;border:10px solid #ccc;background-color: white;}"
                + ".alert {font-size:20px;line-height:200%;font-family:Arial;font-weight:bold;}"
                + "p, label, .formText {line-height:150%;font-family:Arial;font-size: 14px;color: #333333;}"
                + "</style>" + "</head>";

        if (isAlreadyAssigned) {
            replaceStr = "<p id='unsubContent'><p>Sorry, lead cannot be allocated as it has been already allocated to a different team member.</p>";
        } else {
            String oldOwnerId = crmLeadDAOObj.confirmWebLeadOwner(leadid, userid);
            if (!StringUtil.isNullOrEmpty(oldOwnerId) && !oldOwnerId.equals(userid)) {
                User oldOwner = (User) kwlCommonTablesDAOObj.getClassObject("com.krawler.common.admin.User",
                        oldOwnerId);
                User newOwner = (User) kwlCommonTablesDAOObj.getClassObject("com.krawler.common.admin.User",
                        userid);
                CrmLead lead = (CrmLead) kwlCommonTablesDAOObj
                        .getClassObject("com.krawler.crm.database.tables.CrmLead", leadid);
                String recipients = oldOwner.getEmailID();
                String subject = oldOwner.getCompany().getCompanyName()
                        + " CRM - Web lead has been allocated to " + StringUtil.getFullName(newOwner);
                String mailbodyContent = "Hi %s,<p>Following web lead has been allocated to %s</p><p>Lead Name: %s</p><p>Phone Number: %s</p>"
                        + "<p>Email Address: %s</p><p>Please Note that lead will not be displayed in your list.</p>"
                        + "<p></p><p>- Thanks,</p><p>Administrator</p>";
                String mailbody = String.format(mailbodyContent, StringUtil.getFullName(oldOwner),
                        StringUtil.getFullName(newOwner),
                        (lead.getFirstname() + " " + lead.getLastname()).trim(), lead.getPhone(),
                        lead.getEmail());
                String htmlmsg = "<html><head><link rel='shortcut icon' href='../../images/deskera/deskera.png'/><title>New Web Lead</title></head><style type='text/css'>"
                        + "a:link, a:visited, a:active {\n" + "    color: #03C;" + "}\n" + "body {\n"
                        + "   font-family: Arial, Helvetica, sans-serif;" + "   color: #000;"
                        + "   font-size: 13px;" + "}\n" + "</style><body>" + "   <div>" + mailbody
                        + "   </div></body></html>";
                String pmsg = htmlmsg;
                String fromAddress = newOwner.getCompany().getCreator().getEmailID();
                SendMailHandler.postMail(new String[] { recipients }, subject, htmlmsg, pmsg, fromAddress, "");
            }
        }

        String bodyContent = "<body>" + "<div id='content'><div id=unsubThankYouPage class='content'>"
                + "<div class='alert' id='unsubTitle'>New Web Lead</div>" + replaceStr + "</p></div></div>"
                + "</div>" + "</body>";
        result = "<html><link rel='shortcut icon' href='../../images/deskera/deskera.png'/>" + headerContent
                + bodyContent + "</html>";
        txnManager.commit(status);
    } catch (Exception e) {
        txnManager.rollback(status);
        logger.warn(e.getMessage(), e);
        e.printStackTrace();
    }
    return new ModelAndView("chartView", "model", result);
}

From source file:com.krawler.spring.crm.leadModule.crmLeadCommonController.java

public ModelAndView storeLead(HttpServletRequest request, HttpServletResponse response)
        throws ServletException {
    String result = "Problem while submitting your form.";
    HashMap model = new HashMap();
    Map paramMap1 = (java.util.Map) request.getParameterMap();
    HashMap paramMap = new HashMap();
    User user = null;//from  w w w  .j  a v  a 2 s . co  m
    User sender = null;
    // Create transaction
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("JE_Tx");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    TransactionStatus status = txnManager.getTransaction(def);
    try {
        model.put("successFlag", "1");
        model.put("redirectFlag", "0");
        String successMsg = "Thank you for submitting your information.";
        String val = "";
        int mtyfieldCntr = 0;
        Set arrayKeys = paramMap1.keySet();
        HashMap fieldMap = new HashMap();
        JSONObject fieldJSON = null;
        if (!StringUtil.isNullOrEmpty(request.getParameter("fieldJSON"))) {
            try {
                fieldJSON = new JSONObject(request.getParameter("fieldJSON"));
            } catch (JSONException je) {
                logger.warn("crmLeadCommonController.storeLead :- " + je.getMessage());
            } finally {
                fieldJSON = null;
            }
        }

        HashMap<String, Object> mailFieldsMap = new HashMap<String, Object>();
        HashMap<String, Object> mailValueMap = new HashMap<String, Object>();
        for (Object key : arrayKeys) {
            if (((String) key).startsWith("wl_")) {
                fieldMap.put(key, paramMap1.get((String) key) != null
                        ? new String[] {
                                StringUtil.serverHTMLStripper(((String[]) paramMap1.get((String) key))[0]) }
                        : null);
                if (paramMap1.get((String) key) != null) {
                    val = StringUtil.serverHTMLStripper(((String[]) paramMap1.get((String) key))[0]);
                    if (val.trim().equals("")) {
                        mtyfieldCntr++;
                    }
                }
            }
        }
        if (mtyfieldCntr != fieldMap.size()) {
            paramMap.putAll(paramMap1);
            paramMap.putAll(fieldMap);
            String subdomain = URLUtil.getDomainName(request);
            String companyid = companyDetailsDAOObj.getCompanyid(subdomain);
            Company company = (Company) kwlCommonTablesDAOObj.getClassObject("com.krawler.common.admin.Company",
                    companyid);
            sender = company.getCreator();
            String acceptURL = URLUtil.getRequestPageURL(request, Links.UnprotectedLoginPageFull)
                    + "crm/common/acceptweblead.do";
            int leadRoutingUser = 0;
            CompanyPreferences cmpPref = (CompanyPreferences) kwlCommonTablesDAOObj
                    .getClassObject("com.krawler.crm.database.tables.CompanyPreferences", companyid);
            JSONObject companyPrefObj = crmManagerCommon.getCompanyPreferencesJSON(cmpPref, new JSONObject());
            user = (User) kwlCommonTablesDAOObj.getClassObject("com.krawler.common.admin.User",
                    ((String[]) paramMap.get("leadOwner"))[0]);
            if (companyPrefObj.getInt(
                    com.krawler.common.util.Constants.SESSION_LEADROUTING) == LeadRoutingUsers.ROUNDROBIN) {
                user = crmManagerDAOObj.getNextLeadRoutingUsers(companyid).get(0);
                leadRoutingUser = LeadRoutingUsers.ROUNDROBIN;
            }
            if (companyPrefObj
                    .getInt(com.krawler.common.util.Constants.SESSION_LEADROUTING) == LeadRoutingUsers.FCFS) {
                leadRoutingUser = LeadRoutingUsers.FCFS;
            }

            JSONObject resultObj = webtoLeadFormHandlerObj.storeLead(paramMap, companyid, user.getUserID(),
                    acceptURL, leadRoutingUser);

            result = resultObj.optString("msg", result);
            if (!result.equals("Success")) {
                successMsg = result;
                model.put("successFlag", "0");
                txnManager.rollback(status);
            } else {
                CrmLead l = (CrmLead) hibernateTemplate.get(CrmLead.class, resultObj.getString("leadid"));
                if (fieldJSON != null) {
                    Iterator itr = fieldJSON.keys();
                    String keyStr = "";
                    String tmp = "";
                    String str = "";
                    String tmpAr = "";
                    int xtype = 999;
                    String[] valuesArr = null;
                    DefaultMasterItem defItem = null;
                    FieldComboData fieldCombodata = null;
                    Object invoker = null;
                    Class cl = null;
                    CrmLeadCustomData lcdata = null;
                    Method setter = null;
                    List<String> tmpProductlist = new ArrayList<String>();
                    while (itr.hasNext()) {
                        keyStr = (String) itr.next();
                        mailFieldsMap.put(keyStr, fieldJSON.get(keyStr));
                    }

                    for (String tmpStr : mailFieldsMap.keySet()) {
                        if (tmpStr.endsWith("_DROPDOWN#")) {
                            str = tmpStr;
                            str = str.replace("_DROPDOWN#", "");
                            if (tmpStr.startsWith("custom_field")) {
                                str = str.replace("custom_field", "");
                                if (paramMap.get("wl_custom_field" + str) != null) {
                                    fieldCombodata = (FieldComboData) kwlCommonTablesDAOObj.getClassObject(
                                            "com.krawler.common.admin.FieldComboData",
                                            ((String[]) paramMap.get("wl_custom_field" + str))[0]);
                                    if (fieldCombodata == null) { //Custom reference combo check- Since some   custom column may have reference of default combos.
                                        defItem = (DefaultMasterItem) kwlCommonTablesDAOObj.getClassObject(
                                                "com.krawler.crm.database.tables.DefaultMasterItem",
                                                ((String[]) paramMap.get("wl_custom_field" + str))[0]);
                                        if (defItem != null) {
                                            mailValueMap.put(tmpStr, defItem.getValue());
                                        }
                                    } else {
                                        FieldParams fieldParamObj = fieldCombodata.getField();
                                        xtype = fieldParamObj.getFieldtype();
                                        if (xtype == 7) { // for Multi select dropdown
                                            if (request.getParameterValues("wl_custom_field" + str) != null) {
                                                valuesArr = request.getParameterValues("wl_custom_field" + str);
                                                tmp = "";
                                                tmpAr = "";
                                                for (int i = 0; i < valuesArr.length; i++) {
                                                    fieldCombodata = (FieldComboData) kwlCommonTablesDAOObj
                                                            .getClassObject(
                                                                    "com.krawler.common.admin.FieldComboData",
                                                                    valuesArr[i]);
                                                    if (i == valuesArr.length - 1) {
                                                        tmp += fieldCombodata.getValue();
                                                        tmpAr += valuesArr[i];
                                                    } else {
                                                        tmp += fieldCombodata.getValue() + ",";
                                                        tmpAr += valuesArr[i] + ",";
                                                    }
                                                }
                                                mailValueMap.put(tmpStr, tmp);
                                                //Since multiselect combo list has not been saved becoz parammap contains only single value as there are multiple values selected
                                                if (((String[]) paramMap.get(
                                                        "wl_custom_field" + str)).length < valuesArr.length) {
                                                    try {
                                                        lcdata = l.getCrmLeadCustomDataobj();
                                                        cl = Class.forName(
                                                                "com.krawler.crm.database.tables.CrmCustomData");
                                                        invoker = (Object) lcdata;
                                                        setter = cl.getMethod(
                                                                "setCol" + fieldParamObj.getColnum(),
                                                                String.class);
                                                        setter.invoke(invoker, tmpAr);
                                                        l.setCrmLeadCustomDataobj((CrmLeadCustomData) invoker);
                                                    } catch (Exception e) {
                                                        logger.warn(e.getMessage());
                                                    }
                                                }
                                            } else
                                                mailValueMap.put(tmpStr, "");
                                        } else {
                                            fieldCombodata = (FieldComboData) kwlCommonTablesDAOObj
                                                    .getClassObject("com.krawler.common.admin.FieldComboData",
                                                            ((String[]) paramMap
                                                                    .get("wl_custom_field" + str))[0]);
                                            mailValueMap.put(tmpStr, fieldCombodata.getValue());
                                        }
                                    }
                                } else {
                                    mailValueMap.put(tmpStr, "");
                                }
                            } else if (tmpStr.startsWith("productid")) {
                                if (request.getParameterValues("wl_" + str) != null) {
                                    valuesArr = request.getParameterValues("wl_" + str);
                                    tmp = "";
                                    for (int n = 0; n < valuesArr.length; n++) {
                                        if (!tmpProductlist.isEmpty()) {
                                            tmpProductlist.remove(0);
                                        }
                                        tmpProductlist.add(valuesArr[n]);
                                        tmp += ((crmProductDAOObj.getProducts(tmpProductlist)).get(0))
                                                .getProductname() + ",";
                                    }
                                    tmp = tmp.substring(0, tmp.lastIndexOf(','));
                                    mailValueMap.put(tmpStr, tmp);
                                    if (((String[]) paramMap.get("wl_productid")).length < valuesArr.length) {
                                        //Since products list has not been saved becoz parammap contains only single value as there are multiple values selected
                                        try {
                                            crmLeadDAOObj.saveLeadProducts(new String[] { l.getLeadid() },
                                                    valuesArr);
                                        } catch (Exception ex) {
                                            logger.warn(ex.getMessage());
                                        }
                                    }
                                } else
                                    mailValueMap.put(tmpStr, "");
                            } else if (tmpStr.startsWith("type")) {
                                tmp = ((String[]) paramMap.get("wl_" + str))[0];
                                if (tmp == "1")
                                    mailValueMap.put(tmpStr, "Company");
                                else
                                    mailValueMap.put(tmpStr, "Individual");

                            } else {
                                defItem = (DefaultMasterItem) kwlCommonTablesDAOObj.getClassObject(
                                        "com.krawler.crm.database.tables.DefaultMasterItem",
                                        ((String[]) paramMap.get("wl_" + str))[0]);
                                if (defItem != null)
                                    mailValueMap.put(tmpStr, defItem.getValue());
                                else
                                    mailValueMap.put(tmpStr, "");
                            }
                        } else
                            mailValueMap.put(tmpStr,
                                    ((String[]) paramMap.get("wl_" + tmpStr))[0] != null
                                            ? ((String[]) paramMap.get("wl_" + tmpStr))[0]
                                            : "");
                    }
                }
                String id = java.util.UUID.randomUUID().toString();
                String ipaddr = null;
                if (StringUtil.isNullOrEmpty(request.getHeader("x-real-ip"))) {
                    ipaddr = request.getRemoteAddr();
                } else {
                    ipaddr = request.getHeader("x-real-ip");
                }
                auditTrailDAOObj
                        .insertAuditLog(AuditAction.LEAD_CREATE,
                                ((l.getLastname() == null) ? "" : l.getLastname())
                                        + " - Lead created through Web to Lead Form ",
                                ipaddr, user.getUserID(), id);

                crmCommonDAOObj.validaterecorsingledHB(Constants.MODULE_LEAD, l.getLeadid(), companyid);

                txnManager.commit(status);
                if (resultObj.has("leadid")) {
                    String leadid = resultObj.getString("leadid");
                    if (leadRoutingUser == LeadRoutingUsers.ROUNDROBIN) {
                        crmManagerDAOObj.setLastUsedFlagForLeadRouting(user.getUserID(), companyid);
                        if (fieldJSON != null)
                            sendMailToLeadOwner(user, leadid, mailFieldsMap, mailValueMap);
                        else
                            sendMailToLeadOwner(user, leadid, null, null);
                    } else if (leadRoutingUser == LeadRoutingUsers.FCFS) {
                        List<String> recepients = new ArrayList();
                        KwlReturnObject kmsg = crmManagerDAOObj.getAssignedLeadRoutingUsers(companyid,
                                new HashMap<String, Object>());
                        List<User> userlist = kmsg.getEntityList();
                        for (User userObj : userlist) {
                            recepients.add(userObj.getUserID());
                        }
                        Map refTypeMap = new HashMap();
                        Map refIdMap = new HashMap();
                        refIdMap.put("refid1", leadid);
                        refTypeMap.put("reftype1", Constants.Crm_lead_classpath);
                        HashMap<String, Object> extraParams = new HashMap<String, Object>();
                        extraParams.put(NotificationConstants.LOGINURL, acceptURL);
                        if (recepients.size() > 0) {
                            String platformUrl = ConfigReader.getinstance().get("platformURL");
                            if (platformUrl != null) {
                                getPartnerURL(platformUrl, company, CHANNEL.EMAIL, NOTIFICATIONSTATUS.REQUEST,
                                        company.getCreator().getUserID(), recepients, refIdMap, refTypeMap,
                                        extraParams);
                            } else {
                                extraParams.put(NotificationConstants.PARTNERNAME, company.getCompanyName());
                                sendMailToAssignedLeadRoutingUsers(CHANNEL.EMAIL, NOTIFICATIONSTATUS.REQUEST,
                                        company.getCreator().getUserID(), recepients, refIdMap, refTypeMap,
                                        extraParams);
                            }
                        }
                    } else {
                        if (fieldJSON != null)
                            sendMailToLeadOwner(user, leadid, mailFieldsMap, mailValueMap);
                        else
                            sendMailToLeadOwner(user, leadid, null, null);
                    }
                }
            }
            model.put("successMsg", successMsg);
            String returnurl = request.getParameter("returnurl");
            if (!StringUtil.isNullOrEmpty(returnurl)) {
                model.put("redirectFlag", "1");
                model.put("returnurl", returnurl);
            }
        } else {
            model.put("successMsg", "Form should not be empty");
            model.put("successFlag", "0");
            txnManager.rollback(status);
        }

    } catch (Exception e) {
        txnManager.rollback(status);
        logger.warn(e.getMessage(), e);
        if (user != null) {
            sender = user;
        }
        if (sender != null) {
            sendMailToLeadOwner(sender, paramMap1);
        }
    }
    return new ModelAndView("captureLead", "model", model);
}

From source file:com.krawler.spring.crm.leadModule.crmLeadCommonController.java

public ModelAndView convertLeads(HttpServletRequest request, HttpServletResponse response)
        throws ServletException {
    JSONObject myjobj = null;/*from w ww.j av  a  2  s. co m*/
    boolean refNotFoundFlag = false;
    String refNotFoundStr = "";
    KwlReturnObject kmsg = null;
    CrmLead lead = null;
    CrmAccount acc = null;
    CrmOpportunity opp = null;
    String contactid = null;
    boolean b = false;
    //Create transaction
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("JE_Tx");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    TransactionStatus status = txnManager.getTransaction(def);
    JSONObject accModulejObj = new JSONObject();
    JSONObject oppModulejObj = new JSONObject();
    JSONObject contactModulejObj = new JSONObject();
    JSONObject resJson = new JSONObject();
    try {
        Map<String, Object> moduleFields = new HashMap<String, Object>();
        Map<String, Object> columnMappedList = new HashMap<String, Object>();
        JSONArray moduleCustomfieldArray;
        myjobj = new JSONObject();
        myjobj.put("success", false);
        String timeZoneDiff = sessionHandlerImpl.getTimeZoneDifference(request);
        String timeFormatId = sessionHandlerImpl.getUserTimeFormat(request);
        boolean convertedflag = true;
        boolean companyNotifyFlag = sessionHandlerImpl.getCompanyNotifyOnFlag(request);

        // extract ip address
        String ipAddress = SystemUtil.getIpAddress(request);
        String companyid = sessionHandlerImpl.getCompanyid(request);
        if (StringUtil.bNull(request.getParameter("jsondata"))) {
            String userid = sessionHandlerImpl.getUserid(request);
            String conversiontype = " ";
            String jsondata = request.getParameter("jsondata");
            JSONArray jarr = new JSONArray("[" + jsondata + "]");
            JSONObject jobj = jarr.getJSONObject(0);
            String leadid = jobj.getString("leadid");
            CrmLead CrmLeadObj = crmLeadDAOObj.getLead(leadid);
            if (CrmLeadObj == null || CrmLeadObj.getIsconverted().equals("1")) {
                convertedflag = false;
                refNotFoundStr = " Selected lead already converted successfully.";
            }
            if (convertedflag) {

                String accflag = jobj.getString("accflag");
                String conflag = jobj.optString("conflag");
                String oppflag = jobj.getString("oppflag");
                String taskflag = jobj.getString("taskflag");

                Long closingdate = jobj.getLong("closingdate");
                String lastname = jobj.getString("lastname");
                String accountname = jobj.getString("accountname");
                String oppParentaccountid = jobj.getString("oppparentaccountid");
                String oppname = jobj.getString("oppname");
                String oppstageid = jobj.getString("oppstageid");
                String validflag = jobj.getString("validflag");
                String leadType = jobj.getString("type");
                boolean transfer = false;
                String details = "";
                String accid = java.util.UUID.randomUUID().toString();

                // check all mandatory column mapped
                resJson.put("success", true);
                if (accflag.equals("1")) {
                    accModulejObj = getModuleRecord(request, Constants.MODULE_ACCOUNT, companyid, jobj,
                            moduleFields, columnMappedList);
                    checkManadatoryColumnMapped(resJson, Constants.MODULE_ACCOUNT, companyid, moduleFields,
                            columnMappedList);
                }
                if (oppflag.equals("1")) {
                    oppModulejObj = getModuleRecord(request, Constants.MODULE_OPPORTUNITY, companyid, jobj,
                            moduleFields, columnMappedList);
                    // check all mandatory column mapped
                    checkManadatoryColumnMapped(resJson, Constants.MODULE_OPPORTUNITY, companyid, moduleFields,
                            columnMappedList);
                }
                if (conflag.equals("1")) {
                    contactModulejObj = getModuleRecord(request, Constants.MODULE_CONTACT, companyid, jobj,
                            moduleFields, columnMappedList);
                    // check all mandatory column mapped
                    checkManadatoryColumnMapped(resJson, Constants.MODULE_CONTACT, companyid, moduleFields,
                            columnMappedList);
                }
                if (!resJson.getBoolean("success")) {
                    refNotFoundFlag = true;
                    refNotFoundStr = resJson.getString("msg");
                }
                if (!refNotFoundFlag) {
                    // Convert into Account
                    if (accflag.equals("1")) {
                        conversiontype = "1";
                        refNotFoundStr = "";
                        if (accModulejObj.getBoolean("success")) {
                            accModulejObj.put("accountname", accountname);
                            accModulejObj.put("leadid", leadid);
                            accModulejObj.put("companyid", companyid);
                            accModulejObj.put("userid", userid);
                            accModulejObj.put("updatedon", new Date());
                            accModulejObj.put("accountid", accid);
                            accModulejObj.put("validflag", "0");
                            accModulejObj.put("tzdiff", timeZoneDiff);
                            kmsg = crmAccountDAOObj.addAccounts(accModulejObj);

                            moduleCustomfieldArray = accModulejObj.getJSONArray("customfield");
                            if (moduleCustomfieldArray.length() > 0) {
                                KwlReturnObject customDataresult = fieldDataManagercntrl.setcustomdata(
                                        moduleCustomfieldArray, Constants.Crm_account_moduleid, accid,
                                        companyid, true);
                                if (customDataresult != null && customDataresult.getEntityList().size() > 0) {
                                    JSONObject accJObj = new JSONObject();
                                    accJObj.put("accountid", accid);
                                    accJObj.put("CrmAccountCustomDataobj", accid);
                                    accJObj.put("tzdiff", timeZoneDiff);
                                    kmsg = crmAccountDAOObj.editAccounts(accJObj);
                                }
                                //                            fieldManager.storeCustomFields(moduleCustomfieldArray,"account",true,accid,"1");
                            }
                            crmCommentDAOObj.CreateDuplicateComments(leadid, accid);

                            documentConversion(leadid, accid, "4");

                            auditTrailDAOObj.insertAuditLog(AuditAction.ACCOUNT_CREATE,
                                    accountname + " - Account created from Lead - " + lastname, request, accid);
                            acc = (CrmAccount) kmsg.getEntityList().get(0);
                            //Save Account Owner
                            saveAccOwnersFromLead(leadid, accid);
                            details += " Account - [ " + accountname + " ], ";
                            if (oppflag.equals("1")) {
                                transfer = false;
                            } else {
                                transfer = true;
                            }

                            if (leadType.equals("1")) { // checked for Lead Type - if Company then associated contacts must be linked with newly added Account
                                linkLeadsContactsToAccount(leadid, accid, userid, companyid, timeZoneDiff,
                                        ipAddress);
                            }

                        } else {
                            myjobj.put("success", false);
                            refNotFoundStr += "Data not found in Account module for following fields - <BR /> "
                                    + accModulejObj.getString("msg") + "<BR /><BR />";
                            refNotFoundFlag = true;
                        }

                        // Add Activity
                        if (taskflag.equals("1")) {
                            if (StringUtil.bNull(request.getParameter("activitydata"))) {
                                String activityjson = request.getParameter("activitydata");
                                JSONObject activityJSON = new JSONObject(activityjson);
                                activityJSON.put("relatedtoid", Constants.MODULE_ACCOUNT);
                                activityJSON.put("relatedtonameid", accid);
                                String loginURL = URLUtil.getRequestPageURL(request, Links.loginpageFull);
                                String partnerName = sessionHandlerImpl.getPartnerName(request);
                                activityManagementService.saveActivity(companyid, userid, timeFormatId,
                                        timeZoneDiff, ipAddress, activityJSON, companyNotifyFlag, loginURL,
                                        partnerName);
                            }
                        }
                    }

                    String oppid = java.util.UUID.randomUUID().toString();

                    // Convert into Opportunity
                    if (oppflag.equals("1")) {
                        conversiontype = "2";
                        if (oppModulejObj.getBoolean("success")) {
                            oppModulejObj.put("oppid", oppid);
                            oppModulejObj.put("companyid", companyid);
                            oppModulejObj.put("userid", userid);
                            oppModulejObj.put("updatedon", new Date().getTime());
                            oppModulejObj.put("tzdiff", timeZoneDiff);
                            //                    oppJObj.put("createdon", new Date());
                            oppModulejObj.put("leadid", leadid);
                            if (accflag.equals("1")) {
                                oppModulejObj.put("accountnameid", accid);
                            } else {
                                oppModulejObj.put("accountnameid", oppParentaccountid);
                            }
                            //                        String timeFormatId = sessionHandlerImpl.getUserTimeFormat(request);
                            //                        String timeZoneDiff = sessionHandlerImpl.getTimeZoneDifference(request);
                            if (jobj.has("closingdate")) {
                                oppModulejObj.put("closingdate", jobj.getLong("closingdate"));
                            }
                            oppModulejObj.put("validflag", "0");
                            oppModulejObj.put("oppstageid", oppstageid);
                            oppModulejObj.put("currencyid", "0");
                            oppModulejObj.put("oppname", oppname);
                            kmsg = crmOpportunityDAOObj.addOpportunities(oppModulejObj);

                            moduleCustomfieldArray = oppModulejObj.getJSONArray("customfield");
                            if (moduleCustomfieldArray.length() > 0) {
                                //                            fieldManager.storeCustomFields(moduleCustomfieldArray,"opportunity",true,oppid,"5");
                                KwlReturnObject customDataresult = fieldDataManagercntrl.setcustomdata(
                                        moduleCustomfieldArray, Constants.Crm_opportunity_moduleid, oppid,
                                        companyid, true);
                                if (customDataresult != null && customDataresult.getEntityList().size() > 0) {
                                    JSONObject oppJObj = new JSONObject();
                                    oppJObj.put("oppid", oppid);
                                    oppJObj.put("CrmOpportunityCustomDataobj", oppid);
                                    oppJObj.put("tzdiff", timeZoneDiff);
                                    kmsg = crmOpportunityDAOObj.editOpportunities(oppJObj);
                                }
                            }
                            opp = (CrmOpportunity) kmsg.getEntityList().get(0);
                            //Save Opportunity Owner
                            saveOppOwnersFromLead(leadid, oppid);
                            crmCommentDAOObj.CreateDuplicateComments(leadid, oppid);

                            documentConversion(leadid, oppid, "5");

                            auditTrailDAOObj.insertAuditLog(AuditAction.OPPORTUNITY_CREATE,
                                    oppname + " - Opportunity created from Lead - " + lastname, request, oppid);
                            details += "Opportunity [ " + oppname + " ], ";

                            if (accflag.equals("1")) {
                                //  transfer = true;
                            }
                            b = true;
                        } else {
                            myjobj.put("success", false);
                            refNotFoundStr += "Data not found in Opportunity module for following fields - <BR /> "
                                    + oppModulejObj.getString("msg") + "<BR /><BR />";
                            refNotFoundFlag = true;
                        }
                    }

                    // Convert into Contact
                    if (conflag.equals("1")) {
                        if (leadType.equals("0")) { // checked for Lead Type - if Company then don't convert to contact
                            if (contactModulejObj.getBoolean("success")) {
                                //   conversiontype="3";
                                contactModulejObj.put("leadid", leadid);
                                if (accflag.equals("1")) {
                                    contactModulejObj.put("accountid", accid);
                                } else if (oppflag.equals("1")) {
                                    contactModulejObj.put("accountid", oppParentaccountid);
                                }
                                contactModulejObj.put("validflag", "0");

                                // add new contact
                                JSONObject contactJson = contactManagementService.saveContact(companyid, userid,
                                        timeZoneDiff, ipAddress, contactModulejObj);
                                contactid = contactJson.getString("ID");

                                moduleCustomfieldArray = contactModulejObj.getJSONArray("customfield");
                                if (moduleCustomfieldArray.length() > 0) {
                                    //                                fieldManager.storeCustomFields(moduleCustomfieldArray,"contact",true,conid,"6");
                                    KwlReturnObject customDataresult = fieldDataManagercntrl.setcustomdata(
                                            moduleCustomfieldArray, Constants.Crm_contact_moduleid, contactid,
                                            companyid, true);
                                    if (customDataresult != null
                                            && customDataresult.getEntityList().size() > 0) {
                                        JSONObject contactJObj = new JSONObject();
                                        contactJObj.put("contactid", contactid);
                                        contactJObj.put("CrmContactCustomDataobj", contactid);
                                        contactJObj.put("tzdiff", timeZoneDiff);
                                        contactJson = contactManagementService.saveContact(companyid, userid,
                                                timeZoneDiff, ipAddress, contactJObj);
                                    }
                                }

                                //Save Contact Owner
                                saveContactOwnersFromLead(leadid, contactid);
                                //                    auditTrailDAOObj.insertAuditLog(AuditAction.CONTACT_CREATE,
                                //                                    firstname + " " + lastname + " - Contact created from Lead - "+kmsg.getEntityList().getFirstname()+" "+leadd.getLastname(),
                                //                                    request, conid);
                                String firstname = "";
                                String contactName = "";
                                String lName = "";
                                if (contactModulejObj.has("firstname")) {
                                    firstname = contactModulejObj.get("firstname").toString().trim();
                                }
                                if (contactModulejObj.has("lastname")) {
                                    lName = contactModulejObj.get("lastname").toString().trim();
                                }
                                contactName = (firstname + " " + lName).trim();

                                crmCommentDAOObj.CreateDuplicateComments(leadid, contactid);
                                documentConversion(leadid, contactid, "2");

                                auditTrailDAOObj.insertAuditLog(AuditAction.CONTACT_CREATE,
                                        contactName + " - Contact created from Lead - " + lastname, request,
                                        contactid);
                                if (oppflag.equals("1")) {
                                    transfer = false;
                                } else {
                                    transfer = true;
                                }
                                b = true;

                            } else {
                                myjobj.put("success", false);
                                refNotFoundStr += "Data not found in Contact module for following fields - <BR /> "
                                        + contactModulejObj.getString("msg") + "<BR /><BR />";
                                refNotFoundFlag = true;
                            }
                        } else {
                            if (accflag.equals("1")) {
                                accid = acc.getAccountid();
                            } else if (oppflag.equals("1")) {
                                if (opp.getCrmAccount() != null)
                                    accid = opp.getCrmAccount().getAccountid();
                                else
                                    accid = "";
                            } else {
                                accid = "";
                            }
                            updateContacts(leadid, accid, timeZoneDiff, ipAddress);
                        }
                    }

                }
                if (!refNotFoundFlag) {
                    kmsg = crmManagerDAOObj.getMasterIDCompany(companyid, Constants.LEADSTATUSID_QUALIFIED);
                    DefaultMasterItem obj = (DefaultMasterItem) kmsg.getEntityList().get(0);
                    JSONObject leadJObj = new JSONObject();
                    if (transfer) {
                        leadJObj.put("istransfered", "1");
                    }

                    leadJObj.put("leadid", leadid);
                    leadJObj.put("leadstatusid", obj.getID());
                    leadJObj.put("conversiontype", conversiontype);
                    leadJObj.put("leadconversiondate", conversiontype);
                    leadJObj.put("isconverted", "1");
                    leadJObj.put("updatedon", new Date());
                    leadJObj.put("tzdiff", timeZoneDiff);
                    kmsg = crmLeadDAOObj.editLeads(leadJObj);
                    lead = (CrmLead) kmsg.getEntityList().get(0);
                    auditTrailDAOObj.insertAuditLog(AuditAction.LEAD_CONVERT,
                            details + " created by converting Lead - " + lead.getLastname(), request, leadid);
                    b = true;
                    myjobj.put("success", b);
                }
            } // end of if
        }

        if (!refNotFoundFlag && convertedflag) {
            txnManager.commit(status);
            if (acc != null)
                crmCommonDAOObj.validaterecorsingledHB("Account", acc.getAccountid(), companyid);
            if (opp != null)
                crmCommonDAOObj.validaterecorsingledHB("Opportunity", opp.getOppid(), companyid);
            if (contactid != null)
                crmCommonDAOObj.validaterecorsingledHB("Contact", contactid, companyid);
        } else {
            myjobj.put("msg", refNotFoundStr);

            txnManager.rollback(status);
        }
    } catch (JSONException e) {
        txnManager.rollback(status);
        logger.warn(e.getMessage(), e);
    } catch (Exception e) {
        txnManager.rollback(status);
        logger.warn(e.getMessage(), e);
    }
    return new ModelAndView(successView, "model", myjobj.toString());
}

From source file:com.krawler.spring.crm.emailMarketing.crmEmailMarketingController.java

public RedirectView trackUrl(HttpServletRequest request, HttpServletResponse response) throws ServletException {
    String origUrl = request.getParameter("origurl");
    String trackid = request.getParameter("trackid");
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("JE_Tx");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    TransactionStatus status = txnManager.getTransaction(def);
    try {//from  ww w.  j  a v a2 s .  c o m
        crmEmailMarketingDAOObj.trackUrl(trackid, origUrl, new Date());
        txnManager.commit(status);
    } catch (ServiceException e) {
        logger.warn(e.getMessage(), e);
        txnManager.rollback(status);
    }
    return new RedirectView(origUrl);
}

From source file:com.krawler.spring.crm.emailMarketing.crmEmailMarketingController.java

public ModelAndView checkBounceStatus(HttpServletRequest request, HttpServletResponse response)
        throws ServletException {
    JSONObject myjobj = new JSONObject();
    KwlReturnObject kmsg = null;//from w ww.  j  a  va 2s . c  o  m
    //Create transaction
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();
    def.setName("JE_Tx");
    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
    def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_UNCOMMITTED);
    TransactionStatus status = txnManager.getTransaction(def);
    try {
        myjobj.put("success", false);
        kmsg = bounceHandlerImplObj.checkBounceStatus();
        myjobj.put("success", kmsg.isSuccessFlag());
        txnManager.commit(status);
    } catch (Exception e) {
        logger.warn(e.getMessage(), e);
        txnManager.rollback(status);
    }
    return new ModelAndView("jsonView", "model", myjobj.toString());
}