基于Java的客户关系管理系统的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Java的客户关系管理系统的设计与实现
【摘要】使用java语言设计与实现了基于B/S平台架构的客户关系管理系统,即CRM系统,该系统包括员工登陆、个人信息管理、客户管理、员工管理、角色管理和员工组管理六个模块。
采用Spring+Hibernate框架,以JSP为前端页面,使用Oracle来存储数据。
在各个企业或团体网站项目中,CRM系统是不可缺少的部分。
【关键词】管理系统;设计与实现
1.CRM系统重要性
随着网络的普及,各个公司或团体纷纷开设自己的网站,而越来越多的人开始使用网络之后,也使得用户数据开始急速膨胀,从而快速地进入了信息时代。
在当前的信息时代,掌握并管理大量的客户信息,往往意味着在市场竞争中可以取得更大的先机,因此在一个公司或团体的网站中,客户关系管理系统(CRM 系统)也成为了网站项目中不可或缺的一个子系统,是公司或团体用以管理客户信息的关键性的枢纽。
2.CRM系统设计
(1)CRM系统可以实现员工—客户以及员工—员工的信息管理。
可以对客户和员工的信息拥有妥善而全面的管理方式,拥有严谨的管理结构。
(2)员工与客户的信息将存储于数据库中,为了保证数据库中客户信息的安全存储,信息将会同时存入两个数据库,并由数据库管理员(DBA)统一管理,保持两个数据库中数据的统一和同步。
在突发情况时,双数据库的设计也可以最大程度地减少数据资源的损失。
(3)CRM系统采取B/S结构,采用Spring+Hibernate的框架组合来代替以往的Struts+Spring+Hibernate的框架组合。
Spring-mvc框架的Controller目前已经可以完全替代Struts的Action来处理浏览器的请求,而在配置上,Spring-mvc 比Struts却是更加地简洁。
(4)系统总体上采用MVC的结构,在前端(即表现层)使用JSP来显示页面,同时内嵌javascript和JSTL标签来实现前端页面的动态显示和简单的业务处理。
在服务器上(即控制层)使用Spring-mvc来实现对前端请求的处理,并同时调用数据层(即数据模型层)的服务来完成对Oracle数据库的访问,在数据层中使用Hibernate框架来提供各种面向控制层的业务接口。
3.功能模块设计
CRM系统主要分为五个功能模块:用户管理、客户管理、员工管理、角色
管理和员工组管理。
3.1用户管理
3.1.1用户登陆
员工可以登陆进入CRM,不同的员工由于本身的权限的不同,在登陆进入系统后所能查看的信息范围和管理范围也是有所不同,这些在员工登陆的时候就会有所区分,通过对当前登陆员工的权限的判断来显示相对应的界面和管理范围。
为了防止因为数据包被截取而导致的密码泄露,在前端设计中,在将相关的数据向服务端传送之前,使用javascript或者jQuery将密码以一定的规则来装换成其他格式的字符串,但是在服务器端却不予以转换回去。
原因是,为了防止密码在数据库中被直观地看见,增强了保密性,在数据库中存储的密码仍然应该是已经转换后的密码。
3.1.2信息管理
在员工登陆后,在界面的最上方有员工个人信息管理模块,主要有修改密码,更改联系方式,修改登录名等功能,用于员工自己修改个人的信息。
每个员工在第一次登陆的时候一般都会要求修改密码,因为初始密码是由管理员设置的。
3.2个人信息管理
在员工登陆后,在界面的最上方有员工个人信息管理模块,主要有修改密码,更改联系方式,修改登录名等功能,用于员工自己修改个人的信息。
每个员工在第一次登陆的时候一般都会要求修改密码,因为初始密码是由管理员设置的。
3.3客户管理
客户管理模块会出现在各个员工中,由员工不用的权限来显示相应的功能。
(1)添加客户:员工可以通过添加客户的功能来添加直属的客户,前提是该客户没有被任何其他员工添加为直属的客户。
(2)修改客户角色:员工不能对客户的基本信息进行任何的操作,但是可以对客户的客户角色进行更改,即添加客户的权限范围。
(3)查询客户信息:员工可以对直属的客户进行全面的信息查询,包括模糊查询和准确的查询。
(4)删除客户:在某些业务场景下,员工可以对客户进行删除,但只是断开客户与员工之间的关联关系,并不能直接将客户删除。
(在实际的应用场景中,不会出现真的将客户信息从数据库中删除的情况,因此只会将客户失效而已)。
3.4员工管理
员工管理模块一般只出现在组管理员中。
(1)新增员工:组管理员可以添加直属本组的新员工信息,该功能只添加最基本的员工信息,如:登录名,密码,联系方式和员工的ID。
添加后,这些信息只能由员工自己进行修改。
(2)添加员工:组管理员可以批量地将已存在的,但是不属于任何组的员工添加到本组中。
(3)修改员工角色:组管理员可以对本组的员工角色进行修改,从而达到修改员工权限的目的。
同时,员工与角色的关系是一对多的,即一个员工是可以拥有多个角色的。
(4)查询员工:组管理员可以查询本组的所有员工的基本信息和业绩状况,也包括了模糊查询和精确查询。
(5)删除员工:组管理员可以将员工删除,并清除数据库中该员工的数据,前提是,该员工没有任何的直属客户。
3.5角色管理
角色管理一般只出现在系统管理员中,属于高级管理权限功能。
(1)添加角色:系统管理员可以添加一个新的员工角色或客户角色,并在添加的同时关联相应的员工权限或客户权限。
(2)查询角色:系统管理员可以查询相关的员工角色或客户角色信息,查看角色相对应的员工权限或客户权限。
(3)修改角色:系统管理员可以修改员工角色或客户角色的信息,修改员工角色或客户角色所对应的员工权限或客户权限。
(4)删除角色:在某些情况下系统管理员可以删除员工角色或客户角色,前提是,该员工角色或客户角色没有任何员工或客户关联。
3.6员工组管理
员工组管理模块可以出现在系统管理员,或者少数特殊的员工中。
(1)添加员工组:该功能允许添加新的员工组,在添加的同时可以同时将没有员工组的员工添加进入该组。
(2)查询员工组:该功能会显示一个树状的员工组结构,拥有一定权限还可以查看每组的组员,在鼠标点击树中的员工组名时,会已悬浮框显示相应的基本信息。
(3)删除员工组:该功能可以删除一个员工组,将数据从数据库中删除,若该组为根组,不能删除,若该组有下属子组,则将其子组关联到被删除组的父组下。
删除后,该组所有员工均为无组状态。
4.数据库设计
根据上述的功能模块分析,需要建立7张表:客户表、账户表、员工表、员工角色表、客户角色表、员工角色关联表、员工组表。
实体关系(E-R)图如下:
5.数据流程
6.结语
本文设计与实现基于java语言的CRM系统,具有较为严谨的管理结构,不论在员工与客户管理上还是员工之间的管理上都有较全面的涉及,在权限的划分上可以以实际业务为主稍作变动。
在实际的项目中,应用性强,有效管理用户关系数据。
【参考文献】
[1]蔡剑,景楠.JavaWeb应用开发:J2EE和Tomcat[M].清华大学出版社,2004.
[2]董金祥,陈刚,尹建伟.客户关系管理CRM[M].浙江大学.
[3]孙卫琴.精通Hibernate[M].电子工业出版社,2005(4).
[4]周丽丽.企业客户关系管理现状研究[J].商场现代化,2008(17).
[5]林信良.Spring2.0技术手册[M].电子工业出版社,2006(6).。