劉昊+李民
摘 要:客戶關(guān)系管理是企業(yè)為了優(yōu)化長期價(jià)值和管理客戶而選擇的經(jīng)營戰(zhàn)略,而基于J2EE平臺的CRM系統(tǒng)可以實(shí)現(xiàn)移動辦公和分布式管理的需求。采用目前流行的SSM(Spring MVC、Spring和MyBatis)框架進(jìn)行CRM系統(tǒng)開發(fā),提高了系統(tǒng)開發(fā)效率及可用性,使數(shù)據(jù)庫的訪問更加靈活。
關(guān)鍵詞:客戶關(guān)系管理;CRM;J2EE;SSM
DOIDOI:10.11907/rjdk.171711
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2017)007-0087-03
0 引言
隨著信息技術(shù)的迅猛發(fā)展和產(chǎn)業(yè)環(huán)境的不斷變化,面對市場更為激烈的競爭,建立企業(yè)CRM系統(tǒng)無疑是一項(xiàng)重要的舉措。CRM旨在改善客戶對企業(yè)的滿意度與忠誠度,它的實(shí)施要求以客戶為中心來架構(gòu)企業(yè)的業(yè)務(wù)流程,一方面通過提供周全的個性化服務(wù)來保持客戶的忠誠度,同時(shí)有選擇性地吸引更多新客戶,另一方面通過對業(yè)務(wù)流程的全面管理降低企業(yè)成本。CRM系統(tǒng)作為信息化的企業(yè)級客戶信息管理和決策平臺,將企業(yè)的注意力集中在提高客戶滿意度和重塑企業(yè)營銷能力上。
J2EE是Java2平臺企業(yè)版(Java 2 Platform Enterprise Edition)的英文縮寫,是由SUN公司開發(fā)的一套企業(yè)家應(yīng)用規(guī)范,其核心是一組技術(shù)規(guī)范與指南,在系統(tǒng)架構(gòu)上,J2EE采用分層設(shè)計(jì)模式,減輕客戶端處理壓力,使組件間的耦合度降低。J2EE應(yīng)用大致包括如下幾類組件:表現(xiàn)層組件、控制器層組件、業(yè)務(wù)邏輯層組件。系統(tǒng)采用SSM框架(Spring MVC、Spring和MyBatis),它相對于SSH(Struts2、Spring和Hibernate)框架更輕量級,系統(tǒng)設(shè)計(jì)更清晰,便于管理與維護(hù),開發(fā)效率更高。SSM 框架是標(biāo)準(zhǔn)的MVC框架,將整個系統(tǒng)劃分為表示層、控制層、服務(wù)層、數(shù)據(jù)庫訪問層4層,使用Spring MVC負(fù)責(zé)請求的轉(zhuǎn)發(fā)和視圖管理,Spring實(shí)現(xiàn)業(yè)務(wù)對象管理,MyBatis作為數(shù)據(jù)對象持久化引擎。
1 系統(tǒng)介紹
1.1 CRM體系
CRM的支柱功能主要是對銷售實(shí)現(xiàn)、市場營銷和客戶服務(wù)與支持這3部分流程的信息化,這些是客戶與企業(yè)聯(lián)系的主要領(lǐng)域,這些聯(lián)系可能發(fā)生在銷售的不同時(shí)段,也可能發(fā)生在客戶與企業(yè)更近的接觸中。人們通常將CRM分為3種不同的類型:運(yùn)營型(Opera-tional)CRM、分析型(Analytical)CRM和協(xié)作型(Collaborative)CRM。CRM 體系結(jié)構(gòu)如圖1所示。
1.2 系統(tǒng)功能
CRM系統(tǒng)的基本功能包括各模塊的信息添加、修改、刪除和查詢等,包括客戶、聯(lián)系人、公司的信息添加、修改和刪除功能;銷售機(jī)會管理的信息添加、修改和刪除功能;客戶開發(fā)計(jì)劃的添加、修改和刪除功能以及開發(fā)狀態(tài)查詢;客戶信息的添加、修改和刪除功能、交往記錄、歷史訂單查詢功能;客戶服務(wù)管理的服務(wù)創(chuàng)建、分配、處理、反饋、歸檔功能;日程安排、城市區(qū)域信息管理和產(chǎn)品信息管理功能。
從功能角度對于客戶關(guān)系管理系統(tǒng)作進(jìn)一步細(xì)分,可分為營銷管理、客戶管理、服務(wù)管理、統(tǒng)計(jì)分析等模塊,具體如下:①營銷機(jī)會管理功能:可以通過“客戶名稱”、“概要”、“創(chuàng)建人”和分配狀態(tài)(已分配,未分配)來查詢數(shù)據(jù),同時(shí)工具欄可以創(chuàng)建、修改、刪除銷售機(jī)會;②客戶信息管理功能:可以通過 “客戶編號”或“客戶名稱”查詢數(shù)據(jù),工具欄可以創(chuàng)建、修改、刪除聯(lián)系人管理、交往記錄管理,實(shí)現(xiàn)歷史訂單查看功能、合同書的生成功能等;③客戶服務(wù)管理功能:服務(wù)的創(chuàng)建和安排、分配;事件的處理、查詢,服務(wù)的跟蹤反饋和服務(wù)協(xié)議的生成;④統(tǒng)計(jì)分析功能:通過數(shù)據(jù)倉庫對數(shù)據(jù)進(jìn)行存儲和管理,抽取相關(guān)數(shù)據(jù)進(jìn)行數(shù)據(jù)挖掘和統(tǒng)計(jì)分析,生成統(tǒng)計(jì)報(bào)表;⑤基礎(chǔ)數(shù)據(jù)管理:數(shù)據(jù)字典、客戶信息以及產(chǎn)品信息和區(qū)域信息的維護(hù);⑥系統(tǒng)管理:系統(tǒng)參數(shù)設(shè)置和密碼的安全管理。
客戶關(guān)系管理系統(tǒng)功能設(shè)計(jì)如圖2所示。
2 系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)開發(fā)環(huán)境
操作系統(tǒng):Windows 10;數(shù)據(jù)庫服務(wù)器:MySQL 5.7;Web服務(wù)器:Tomcat 6.0.16;JDK版本:JDK 1.6.0;配置:CPU:主頻1.0GHZ以上;內(nèi)存:512MB以上;硬盤:40G以上。
2.2 相關(guān)技術(shù)
系統(tǒng)后端采用J2EE技術(shù)和SSM框架整合實(shí)現(xiàn),使用RESTful和JSON的數(shù)據(jù)形式實(shí)現(xiàn)系統(tǒng)的前后端分離設(shè)計(jì)。前端采用Bootstrap前端框架和EasyUI框架實(shí)現(xiàn)用戶界面和交互。其中SSM框架包括:
(1)Spring 框架。Spring作為一個開源框架,其為用戶提供了IOC(控制反轉(zhuǎn))容器和AOP(面向切面編程)支持。在Spring中,各模塊的依賴關(guān)系通過簡單的IOC配置文件進(jìn)行描述,使其更加清晰地把外部化信息集中起來。
(2)Spring MVC框架。Spring MVC是Spring為用戶開發(fā)提供的主流框架。Spring MVC分離了視圖、模型、控制器3種角色,將業(yè)務(wù)處理從界面交互中獨(dú)立出來,封裝到模型和控制器設(shè)計(jì)中去,使得它們之間互相解耦,可以獨(dú)立擴(kuò)展。
(3)MyBatis框架。MyBatis是優(yōu)秀的數(shù)據(jù)持久層框架。MyBatis提供的持久層框架包括SQL Maps和Data Access Objects(DAO),MyBatis消除了近乎所有的JDBC代碼和手工設(shè)置的參數(shù)及對結(jié)果集的封裝檢索。MyBatis使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJOs(Plain Old Java Objects及普通的Java對象映射成數(shù)據(jù)庫中的記錄。
Spring整合Mybatis的配置文件部分代碼如下:
<!-- 配置MyBatis的sqlSessionFactory -->
<!-- 自動掃描mappers.xml文件 -->
<!-- MyBatis配置文件 -->
整合SpringMVC和Spring。由上述可知,SpringMVC框架是Spring基于MVC設(shè)計(jì)模型的實(shí)現(xiàn),因此單獨(dú)配置一個SpringMVC配置文件,其主要完成自動掃描控制器、視圖模式、注解的啟動等功能配置,然后在web.xml文件中配置整合即可。SpringMVC的配置文件部分代碼如下:
<!-- 使用注解的包,包括子集 -->
<!-- 視圖解析器 -->
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
2.3 類設(shè)計(jì)
根據(jù)系統(tǒng)需求分析和總體架構(gòu)設(shè)計(jì),系統(tǒng)分為表現(xiàn)層、控制層、服務(wù)層和數(shù)據(jù)庫訪問層。系統(tǒng)主要類如圖3所示。
2.4 數(shù)據(jù)庫設(shè)計(jì)
根據(jù)需求分析,CRM系統(tǒng)主要有客戶、訂單、聯(lián)系人、銷售機(jī)會、開發(fā)機(jī)會等實(shí)體類;系統(tǒng)涉及的主要表有用戶信息表、產(chǎn)品表、客戶表、銷售機(jī)會表、客戶開發(fā)表、客戶服務(wù)表等。其中,CRM系統(tǒng)的EER圖如圖4所示。
3 系統(tǒng)實(shí)現(xiàn)
在CRM系統(tǒng)結(jié)構(gòu)圖中,網(wǎng)站后臺管理總共有6種功能,其中營銷管理、客戶管理、服務(wù)管理、統(tǒng)計(jì)分析的主要功能是實(shí)現(xiàn)數(shù)據(jù)庫的增刪改查,因?yàn)镃RM系統(tǒng)管理都是以客戶管理為基礎(chǔ)的,下文主要講述客戶管理查詢功能的實(shí)現(xiàn)。
(1)數(shù)據(jù)持久層。MyBatis框架首先創(chuàng)建SqlSessionFactory實(shí)例,其作用相當(dāng)于一個數(shù)據(jù)庫連接池,然后SqlSessionFactory通過配置的XML文件來獲取一個SqlSession。執(zhí)行SQL 語句所必須的方法,都包含在SqlSession中,所以通過SqlSession 完成對數(shù)據(jù)庫的操作,用完之后需要釋放數(shù)據(jù)庫連接。
(2)業(yè)務(wù)邏輯層。數(shù)據(jù)訪問采用DAO(數(shù)據(jù)訪問對象)模式,DAO為面向?qū)ο蟮臄?shù)據(jù)庫接口,當(dāng)需要和數(shù)據(jù)源交互時(shí),便可使用DAO接口。它的使用可以減少業(yè)務(wù)邏輯組件和數(shù)據(jù)庫訪問邏輯的耦合度,能夠更加專注于編寫數(shù)據(jù)訪問代碼。定義接口類之后在MyBatis的Mapper配置文件中添加配置即可。
(3)控制層。在查詢客戶信息時(shí),通過Form表單來臨時(shí)存儲客戶表中每個字段的信息,因此需要一個表單實(shí)體類Customer作為可重用組件(JavaBean),里面每個字段都定義了Getter( )和Setter( )方法,便可直接在Controller的參數(shù)列表中直接寫這個Javabean對象,Spring會自動進(jìn)行封裝。
已經(jīng)在web.xml的文件中配置了請求地址,DispatcherServlet作為MVC框架的調(diào)度樞紐,根據(jù)請求地址DispatcherServlet會在Controller類中的方法上分派請求。通過@Controller注解來注冊所寫的Controller類,@RequestMapping來注冊請求的路徑,經(jīng)過上述處理實(shí)現(xiàn)了控制層的功能。
(4)表現(xiàn)層。表現(xiàn)層視圖的呈現(xiàn),通過調(diào)用DispatcherServlet可以將網(wǎng)頁上數(shù)據(jù)訪問請求轉(zhuǎn)發(fā)到注冊過的Controller類中的doDispatch方法上,實(shí)現(xiàn)系統(tǒng)頁面之間的跳轉(zhuǎn)。由于在SpringMVC的配置文件中已經(jīng)配置好了視圖解析器,采用了jsp、jstl、el進(jìn)行展示,效果及渲染方面則采用EasyUI框架同時(shí)使用Ajax異步刷新技術(shù),并結(jié)合Javascript技術(shù)實(shí)現(xiàn)頁面動態(tài)豐富的效果。
4 SSM框架開發(fā)CRM系統(tǒng)的優(yōu)勢
J2EE在企業(yè)開發(fā)中占有絕對優(yōu)勢,很多CRM開發(fā)商都將它作為CRM的開發(fā)平臺。SSM框架有良好的可維護(hù)性和復(fù)用性,已成為B/S應(yīng)用的主要選擇。目前,大多主流應(yīng)用都采用了SSM框架,為搭建優(yōu)秀的應(yīng)用分層及可擴(kuò)展性和可維護(hù)性好的CRM系統(tǒng)提供了基礎(chǔ)。具體如下:①典型的三層架構(gòu)體現(xiàn)MVC(模型Model、視圖View和控制器Controller)思想,可以讓開發(fā)人員減輕對技術(shù)規(guī)范復(fù)雜性的處理,便于對設(shè)計(jì)的變更作出迅速反應(yīng),降低開發(fā)時(shí)間成本,提高開發(fā)效率,并且隨著技術(shù)的更迭和客戶需求的改變,系統(tǒng)有時(shí)需要重構(gòu),而SSM架構(gòu)使重構(gòu)成功率有更大提升;②系統(tǒng)設(shè)計(jì)清晰和易維護(hù),MyBatis通過數(shù)據(jù)方法層將數(shù)據(jù)訪問邏輯和業(yè)務(wù)邏輯之間分離,把SQL語句寫在映射文件中,使系統(tǒng)設(shè)計(jì)更清晰,便于管理與維護(hù),同時(shí)在高并發(fā)的系統(tǒng)開發(fā)中,MyBatis的控制能力強(qiáng),調(diào)優(yōu)成本低;③優(yōu)秀的解耦性,由于軟件產(chǎn)品需求的不固定性,隨著開發(fā)過程的深入,客戶對系統(tǒng)功能的需求會不斷明晰,對軟件需求也相應(yīng)發(fā)生變化,使企業(yè)開發(fā)者在開發(fā)新的代碼時(shí)投入更多的財(cái)力物力。SSM三層構(gòu)架,致力于讓系統(tǒng)的應(yīng)用組件以松耦合的方式組織在一起,使應(yīng)用組件之間的耦合在接口層次,而不是代碼層次。
5 結(jié)語
一個優(yōu)秀的CRM系統(tǒng),是以提升客戶滿意度和客戶忠誠度為目標(biāo)發(fā)展的,并同時(shí)實(shí)現(xiàn)企業(yè)利潤最大化。本文在對系統(tǒng)展開充分需求分析和系統(tǒng)設(shè)計(jì)的基礎(chǔ)上,綜合運(yùn)用SSM、Ajax和數(shù)據(jù)庫等相關(guān)技術(shù),編程實(shí)現(xiàn)CRM系統(tǒng)的各項(xiàng)功能,滿足了企業(yè)CRM需求。
參考文獻(xiàn):
[1]丁秋林,力士奇.客戶關(guān)系管理[M].北京:清華大學(xué)出版社,2002.
[2]李剛.輕量級JavaEE 企業(yè)應(yīng)用實(shí)戰(zhàn)[M].第4版.北京:電子工業(yè)出版社,2015.
[3]李洋. SSM框架在Web應(yīng)用開發(fā)中的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2016(12):190-194.
[4]田同生.客戶關(guān)系管理的中國之路[M].北京:機(jī)械工業(yè)出版社,2001.
[5]高曉翯.以客戶為核心的CRM系統(tǒng)的研究與設(shè)計(jì)[D].天津:天津大學(xué),2007.
[6]顧桂芳,李文元.數(shù)據(jù)挖掘在移動通信業(yè)客戶關(guān)系管理中的應(yīng)用研究[J].科技管理研究,2007(2):28-29
[7]李蘇琴.九江學(xué)院在線考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2012.
[8]顧美芳.數(shù)據(jù)挖掘技術(shù)在零售業(yè)客戶關(guān)系分析中的應(yīng)用研究[D].蘇州:蘇州大學(xué),2006.
[9]馬志祥.基于J2EE的海量數(shù)據(jù)虛擬存儲管理平臺的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2013.