List of usage examples for org.springframework.transaction.support DefaultTransactionDefinition setIsolationLevel
public final void setIsolationLevel(int isolationLevel)
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()); }