潘愷曄
(閩江學院 福建 福州 350108)
伴隨著互聯網的快速發展和信息化時代的快速降臨,數據對企業的發展占據著越來越重要的地位。通過數據可以分析出客戶更多的信息,發掘客戶潛在的需求,滿足客戶需要。有利于拉近企業和客戶之間的關系,營造企業發展越來越好,客戶滿意度越來越高的良好氛圍。企業掌握的客戶信息的信息量決定著企業未來的發展前景,但是隨著信息量的增大,信息的管理也越來越困難,并且還存在著信息丟失的隱患。如果企業對信息的管理不夠完善、合理,企業的發展將來就會受限制,還可能由于信息管理混亂而出現大量的漏洞,需要后期來整改與維護。由此可見客戶關系管理系統對于企業管理客戶信息來說真的是十分必要的。本次的CRM 系統意在幫助企業解決對信息管理麻煩的難題。
(1)SSM 框架 jar 包整合:SSM 框架的搭建需要各種 jar 包的支撐。其中包括 Spring jar 包、SpringMVC jar 包、MyBatis jar 包、MySQL 驅動包、jstl jar 包、Junit jar 包。
(2)掌握SSM 框架的開發流程:jar 包導入、系統層次架構搭建、配置文件引入。其中配置文件在SSM 框架項目中發揮了很大作用。SpringMVC的配置文件中配置了Spring 過濾器以及各個模塊接受請求、 返回頁面的路徑配置。
(3)掌握 Spring、SpringMVC、MyBatis 的整合步驟和整合流程。以及各個框架的作用。
CRM 系統主要是保存和管理客戶信息。該系統分為用戶操作部分和客戶操作部分。用戶操作部分主要是用戶自身信息的保存,如用戶個人信息的錄入、對用戶的賦權操作。客戶操作部分主要是查看客戶拜訪記錄。該系統有管理員權限組、銷售部權限組等不同的權限組[1]。創建權限組的同時會給不同的權限組賦予不同的操作權限。用戶登錄需要進行登錄校驗、登錄后每進行一個操作都需要先鑒定該用戶所屬的權限組是否具備相應的權限,有相應的權限則允許進入到對應的操作界面,沒有該權限進入到對應的提示頁面。
根據上述的問題分析,該系統具有如下功能模塊:用戶登錄、客戶拜訪、部門設置、人事管理、操作權限組管理模塊、省份資料管理模塊等模塊。
(1)用戶登錄。用戶登錄時需要對用戶姓名、登錄密碼以及驗證碼進行校驗。登錄時有記住密碼功能,使用cookie 的方法將用戶名和密碼保存到本地電腦上,再設置一個cookie 的有效時間為7 天[2]。
(2)客戶拜訪。該功能主要是用戶用于記錄客戶拜訪記錄,如改登陸用戶將于XX 時候應該拜訪XX 客戶。
(3)部門設置。該模塊主要是設置部門的基礎信息。其中部門刪除時需要級聯刪除該部門下的所有用戶。
(4)人事管理。人事管理包括設置系統用戶的個人信息以及更改用戶的狀態。用戶的狀態為停用時無法登陸該系統。當用戶狀態變成停用時該用戶將無法登陸到本系統中,但是用戶的信息仍然保留。
(5)操作權限組管理。該功能模塊主要是為不同的用戶角色分配不同的操作權限。具體細化到為每個權限組分配可以操作哪些功能模塊下的哪些操作。具體實現是通過自定義過濾器實現的。
(6)省份資料。該模塊主要是設置省份的基本信息。定義客戶信息時客戶的省份信息即是來自于該模塊定義好的省份。
該系統共有五大功能模塊,分別有:客戶拜訪、部門設置、人事管理、 操作權限組管理、 省份資料五大模塊。每個功能模塊都是通過JaveBean 對象來傳輸數據的。
該CRM 系統共有客戶拜訪、部門設置、人事管理、操作權限組管理、省份資料五大模塊,系統模塊結構如圖1 所示。

圖1 系統模塊結構圖
2.1.1 客戶拜訪
系統用戶保存客戶的所需信息,并且記錄下次拜訪客戶的時間。該模塊除了對客戶信息增刪改查外,還可以修改客戶下次的聯系時間、也可以將客戶資料共享給其他用戶。
2.1.2 部門設置
部門信息包括部門名稱、部門負責人、部門職能和部門備注信息。該功能主要是實現部門的增刪改查功能。
2.1.3 人事管理
該功能模塊主要是設置系統用戶的個人信息,包括所屬部門和所屬的權限操作組。并且該模塊可以設置用戶的狀態(停用或者啟用)。設置用戶為停用狀態后,用戶存在但是無法登錄。
2.1.4 操作權限組管理
常用的限制不同用戶的權限操作的方式有兩種。其一,可以通過判斷不同用戶所屬權限組來顯示功能頁面,不具備的權限菜單不會顯示出來。其二,不同權限組的用戶登錄后的界面一樣,只是每次訪問一個功能界面時會進行權限判斷。本系統選擇后者,通過自定義過濾器為不同用戶賦權。
2.1.5 省份資料
該功能模塊是管理省份信息的,該省份級聯到客戶拜訪功能。在客戶拜訪模塊中設置省份時省份選擇和該模塊有關。
該系統使用的是B/S 架構。前臺頁面通過JSP 來完成顯示的,頁面樣式的調節則是使用 HTML5、CSS3、JQuery 等相關技術[3]。前臺顯示頁面的設計是:瀏覽器頁面分為三個部分。頁面的上半部分單獨用來顯示系統名稱,左邊是一個樹狀結構的導航菜單欄,右邊是用來顯示點擊菜單欄后的對應頁面。左邊的導航欄是Z-Tree 框架來搭建的。在該導航欄側實現了客戶管理下面有一個客戶拜訪的分支,系統設置模塊下面有部門設置模塊,人事管理模塊,操作權限組模塊,省份資料這幾個分支模塊。每一個模塊被賦予了一個點擊事件,當點擊某個模塊觸發點擊事件后右邊的窗格就會顯示點擊模塊的名稱和對應模塊的內容。
在系統架構層中,表示層是通過JSP頁面來進行交互的,用戶發起請求后由Action 類接收請求并處理請求[4]。并跳轉到對應的響應頁面。在業務邏輯層是在用戶發起請求后,Action 類接收請求調用邏輯層的方法,接收業務邏輯層的返回結果。在數據訪問層中是和數據庫進行交互處理請求發送過來的數據,將處理的結果返回給業務層[5]。該系統的SSM 框架也實現了系統的層次劃分。
在登錄該系統時需要對用戶姓名、登錄密碼和登錄時的驗證碼進行驗證,并且可以選擇”記住密碼”按鈕。記住密碼的有效期是7 天。因此記住密碼后七天內都可以無須輸入密碼即可登錄。
用戶點擊“客戶拜訪”是就會顯示到客戶拜訪頁面,進入到該頁面就可以點擊進行相應的操作,如修改下次拜訪時間、更改客戶信息、查詢客戶、客戶共享、經手人變更等操作。
用戶進入部門設置頁面后,可以管理部門的相關信息。其中該模塊中主要的一個操作是刪除操作,刪除部門時涉及到級聯操作。是該模塊的主要操作。部門設置界面如圖2 所示。

圖2 部門設置界面
部門查詢關鍵代碼如下:
String whereHql="";
if(sysUserGroupSearch! =null){
if(StringUtils.isNotBlank(sysUserGroupSearch.getName())){
whereHql=whereHql+"and o.name like?";
paramList.add("%"+sysUserGroupSearch.getName().trim()+"%");
}
}
Object[]params=paramList.toArray();
LinkedHashMap<String,String>orderby=newLinkedHashMap<String,String>();
returniSysUserGroupDao.getObjectsByConditionWithNoPage(whereHql,params,orderby);
部門刪除時不僅刪除部門的信息,同時也會級聯刪除該部門下的所有用戶[5]。關鍵代碼如下:
for(int i=0;i<groupIds.length;i++){
if(i==0){
whereHql=whereHql+"and o.sysUserGroup.id in(?";
paramList.add(groupIds[i])[6];
}else if(i! =(groupIds.length-1)){
whereHql=whereHql+",?";
paramList.add(groupIds[i]);
}else{
whereHql=whereHql+",?)";
paramList.add(groupIds[i]);
}
}
人事管理模塊根據條件搜索用戶、添加用戶信息、修改用戶狀態、設置用戶權限。如果想阻止某一用戶但是又不想刪除該用戶的狀態下可以將該用戶設置為停用狀態。
該模塊是本系統的一個重要模塊之一,主要是設置各個模塊組的權限。其中該模塊的功能細化至對每個模塊的增刪改查以及其他功能操作權限的分配。實現步驟是先從數據庫中查詢出所有模塊組,然后依次查詢出每個模塊組下面的具體操作。對某一操作組賦權之后,也是按照模塊將對應操作功能保存在數據庫中。
該模塊功能簡單,主要是定義一些省份信息。但是該模塊也不能省略,增添客戶信息時,省份的選擇的數據即來自于該處。
客戶關系管理系統主要是面向企業的,為方便企業管理客戶信息而設計的。該系統有客戶拜訪、部門設置、人事管理、操作權限組管理、省份資料等功能模塊為系統為企業管理客戶資料節約成本的同時也提高了企業的執行效率。
該系統解決了可以跨時間、跨地域的收集、保存、分析和管理客戶數據的難題。該系統根據不同的用戶角色為每個用戶分配不同的操作權限。用戶不僅可以管理自己客戶的信息資料,還可以實現客戶資料共享。該系統為企業節約了大量的人力物力。幫助企業解決客戶資料容易丟失和資料丟失無據可查的問題,解決客戶資料管理麻煩的難題。為企業創造最大利益的同時,提高客戶的滿意程度。