客户关系管理系统 毕业设计 Spring+SpringMvc+Mybatis+Mysql

作者主页毕业设计精选

作者简介:9年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,CSDN博客专家

摘   要

随着社会经济和信息技术的高速发展, “以产品为中心”的营销模式逐步向“以客户为中”转变。传统客户  关系管理系统由于存在难以扩展维护、数据处理能力较差等问题, 已经无法满足用户需求。因此, 本文通过引入 MVC 模式, 结合 Java EE  Ajax 技术,构建基于 SSM(Spring+SpringMVC+MyBatis)框架的客户关系管理系统,帮助企业挖掘营销机会, 发现潜在客户,降低客户流失,从而提升企业的核心竞争力。

关键词:客户关系管理;SSM 框架;系统测试;

0  引言

近年来,市场经济迅猛发展,产品同质化日益严重,外 部竞争日益激烈。如何持续挖掘新客户、为客户提供优质的服 务,以满足客户的个性化需求,成为企业提高市场竞争力的 关键 [1]  目前,国外厂商的产品价格昂贵且适用性较差,而国 内厂商的产品大多采用 C/S 结构,难以进行部署和升级维护。 因此,本文构建了基于 SSM 框架的客户关系管理系统,帮助 企业加强与客户之间的联系,为客户提供个性化服务,深挖客 户综合价值,进而提升企业的盈利能力和经济效益 [2]

1  相关技术

1.1    SSM 框架

1.1.1    Spring

Spring 是基于 JavaBean 对象和面向接口思想开发的轻量  Java 开源框架。Spring 以控制反转和面向切面编程(Aspect Oriented Programming AOP )为核心,通过 IOC 容器管理对 象和对象之间的依赖关系,通过 AOP 将业务逻辑和特定功能代码分离开,可实现在程序的某个切面增加或删除服务而不影 响原来代码的执行 [3]

1.1.2    Spring MVC

Spring MVC 一种基于 MVC 设计模式的轻量级 Web 框架。 Spring MVC  Spring 框架用于 Web 开发的子模块,它以前端 控制器为核心,协调处理器映射器、处理器适配器、控制器、 视图解析器等组件,实现对用户请求的控制处理,具有较高的 灵活性和可维护性 [4]

1.1.3    MyBatis

MyBatis 是一种基于 Java 的开源持久层框架,实现了对 JDBC 操作数据库过程的封装 [5] MyBatis 通过 XML 和注解 将实体类映射到数据库中的数据表,支持自动建立数据库连 接,简化了大量开发和配置工作,有效提高了开发效率 [6]

1.2    MVC 模式

MVCModel-View-Controller )表示模型、视图和控制器。 模型主要负责处理数据逻辑和实现数据操作。视图主要负责向 用户展示前端界面并与用户进行数据交互。控制器负责接收和转发用户请求,对请求进行处理后,将响应结果返回给用户。 MVC 模式已广泛应用在 Web 开发项目中,其核心思想是对模 型、视图、控制器各模块进行解耦,实现高内聚、低耦合,从 而提高应用系统的可靠性和可扩展性 [7]

2  系统设计

2.1    系统架构设计

客户关系管理系统以 Spring 为核心,集成了 Spring MVC   MyBatis 框架。系统采用基于 MVC 模式的三层分层结构, 分别是表示层、业务逻辑层、数据持久层。表示层通过 Spring  MVC 实现与浏览器的数据交互和流程控制。业务逻辑层主要 实现对业务逻辑的处理。数据持久层通过MyBatis 操作数据库。 Spring 对系统中所有对象的生命周期进行管理,包括对象的创 建、初始化、销毁以及维护对象间的关联关系 [8] 系统架构如  1 所示。

用户通过前端界面发送请求,表示层接受请求并进行解 析,调用相应的 Controller 进行流程控制,然后调用业务逻辑层 Service 进行业务逻辑处理,进一步调用数据持久层进行数据持 久化操作,最后将响应结果返回到表示层,最后呈现给用户 [9]

2.2    功能模块设计

客户关系管理系统主要包括客户管理、营销管理、服务 管理、数据分析和系统管理。客户管理包括客户资源管理和 客户流失管理两部分,其中客户资源管理用于管理客户信息, 客户流失管理用于帮助企业及时挽留潜在流失客户。营销管理 用于帮助企业发现新的营销机遇、挖掘潜在客户,主要实现对 销售机会和开发计划的管理和维护。服务管理主要实现对服务 的管理等功能。数据分析主要用于对客户信息及行为数据进行 统计分析,并以图表等形式呈现给用户。系统管理主要用于管 理用户信息及用户权限。

3  系统实现

3.1    客户管理模块的实现

3.1.1    客户资源管理

客户资源管理主要实现对客户信息的增删查改等功能。 客户经理可在客户列表页查看客户编号、名称、地区、等级以 及对应的客户经理等信息。系统支持按照客户名称、客户等 级等条件进行查询,通过向服务器发送请求,将数据传递到 CustomerController 类中的 ndByName ndByRank 方法中,  Customer 表中查找相关记录。

客户经理可在客户列表页点击添加客户,重定向到添加 客户页面。通过提交客户名称、客户等级、地址、联系方式及 银行账号等信息,触发 CustomerController 类中的 validateAdd 验证方法,对提交的表单进行数据校验。如果校验不通过,则 在页面中展现错误信息。校验合法则执行 addCustomer 方法, 将新增的客户记录保存到 Customer 表中。

客户经理可在客户列表页通过勾选复选框批量删除客户, 也可在客户信息页删除单个客户。通过调用 CustomerController  类中的 delete 方法循环删除客户记录来实现批量删除。

3.1.2    客户流失管理

客户流失管理主要用于实现客户流失预警、暂缓客户流 失及确认客户流失等功能。系统根据客户下单频率以及时间间 隔,对客户经理发出客户流失预警提示。客户经理收到预警 后,根据客户等级、交往记录、上次下单时间等因素对流失 原因进行追踪。如果能够有效地防止客户流失,客户经理则 向系统提交详细情况,调用 LostController 中的 Relay 方法, 预警记录会更新为“ 已暂缓流失”状态。如果确实存在不可 逆因素,客户不再购买本公司产品,则确认客户流失,调用 LostController 类中 Conrm 方法,将 Loss_state 属性值更新为 “已流失”。

3.2    营销管理模块的实现

营销管理主要实现对销售机会的创建、指派、修改及删 除功能。客户经理可在销售机会列表页查看客户名称、联系人 姓名、联系人电话等概要信息,也可通过输入客户名称、联系 人姓名等查询条件,在 Opportunity 表中查找相关记录。

客户经理在销售机会列表页面点击添加销售机会,重定 向到添加页面后输入客户名称、联系方式、下单意向等信息, 提交后调用 addOppo 方法在 Opportunity 表中新增一条记录。

销售经理调用 OpportunityController 中的 dispatch 方法对 新创建的销售机会进行指派。当客户经理被指派后,制订开 发计划。当需要添加新的计划项时,点击添加按钮,通过向 服务器发送 Ajax 异步在 div 中动态创建一个 dom 节点,填写 时间节点和具体措施,全部添加完成后点击提交,保存到数 据库中。客户经理按照开发计划进行执行,调用 doPlan 方法 将执行效果保存在 Plan 表中。如果客户成功签订购买合同, 则点击开发成功;如果客户没有购买意向,则点击终止开发, 更新 Plan_state 属性。

3.3    服务管理模块的实现

服务管理主要实现服务创建、指派、处理、反馈、存档等 功能。客户经理点击服务创建,重定向到服务创建页,提交服 务类型、服务概要、客户名称以及服务请求等信息,验证合法 后执行 ServController 类中的 add 方法,在 Service 表中增加一 条服务记录。销售经理将新创建的服务指派给相应的客户经理, 同时服务分配表中的 Serv_solve_ uuid 属性值更新为该客户经理 编号 User_no。客户经理根据实际情况录入客户反馈结果和客 户的满意度。当满意度达标时,服务自动存档;当满意度不达 标时,重定向到服务处理页,客户经理需重新处理该服务。

3.4    数据分析模块的实现

数据分析模块主要包括客户构成统计、客户流失统计、 客户订单统计以及客户服务统计。销售总监可查看指定时间段  内的数据情况,包括:不同等级客户数量情况、变化情况以及  各等级客户的占比情况;各级别客户流失的数量、客户流失原  因、流失原因占比以及客户流失的变化情况;各客户下单频率、 下单金额以及变化情况;各类型服务数量及占比情况、客户满  意度及占比情况。

数据分析模块的实现基于 Spring MVC  Jfreechart  JasperReport 的整合。Jfreechart 是基于 Java 绘图的 API ,可生 成饼状图、柱状图、折线图等多种可视化图表。JasperReport 是基于 Java 的开源程序库,支持从数据库中抽取数据并将相 应数据展现在显示屏上。

3.5    系统管理模块的实现

系统管理模块主要包括用户信息管理以及权限管理。用 户管理主要用于管理系统用户的基础信息。用户信息包括账户 名、账户密码、用户姓名、联系电话以及电子邮箱等基础信 息。系统管理员可对用户进行添加、修改、授权、删除等操作。 权限管理采用基于角色的权限访问控制,将权限与角色进行关联,通过为用户设置角色来授予相应的权限 [10] Spring MVC 的拦截器在系统调用前进行权限验证,查看用户有无访问权 限,如果没有权限则拒绝该用户访问。

4  系统测试

系统测试是软件系统开发生命周期中极为重要的阶段, 其目的是尽早发现和改正被测软件中存在的问题,保证软件产 品的质量 [11] 。本系统采用黑盒测试方式对系统的功能实现情 况进行验证和确认,功能测试用例如表 1 所示。

表 1   功能测试用例表

编号

测试项目

测试过程

预期结果

FT_001

添加客户

填写客户信息后提交

客户添加成功

FT_002

删除客户

选择相应客户进行删除

客户删除成功

FT_003

查询客户

输入客户名进行查询

客户查询成功

FT_004

添加销售机会

填写销售机会信息后提交

销售机会添加成功

FT_005

指派销售机会

将销售机会指派给相应的客户经理

销售机会指派成功

5    

在信息化高速发展的背景下,客户关系管理作为一种以  客户关系为导向的新型管理理念,它通过帮助企业对客户信息  进行分析和挖掘,加强企业与客户之间的合作关系,从而提高  企业利润。目前,已实现的功能包括客户管理、营销管理、服  务管理、数据分析以及系统管理,下一步将考虑增加合同管理、 日志管理、绩效管理以及即时通信等功能模块,以更好地满足  用户需求。

参考文献

[1] 魏小英 . 基于 ERP  CRM 企业销售系统集成设计 [J].   动化与仪器仪表 ,2016(6):194-195.

[2] 张杏红 . 客户关系管理系统在企业中的应用 [J].全国商情(  论研究 ),2012(19):31-32.

[3] 计文柯 .Spring 技术内幕 : 深入解析 Spring 架构与设计原 理 [M]. 北京 : 机械工业出版社 ,2012:18-19.

[4] 虞嘉成 . 上海闵行公安门户系统的设计与实现 [D]. 南京 : 南京理工大学 ,2019:54.

[5] 陈永政 , 张正龙 .JavaEE 框架技术 :SpringMVC+Spring+ Mybatis[M]. 西安 : 西安电子科技大学出版社 ,2018:11-13.

[6] 陈小虎 , 邓惠俊 . 基于 Spring  MyBatis 框架的阅读网站 的设计与研究 [J]. 信息与电脑 ,2021,33(15):101-103.

[7] 韦伟 . 基于 JavaEE 的应用软件开发平台的设计与实现 [D]. 厦门 : 厦门大学 ,2011:16-19.

[8] 岳江 . 基于 SSM 框架的律师工作平台 [J]. 工业控制计算  ,2019,32(5):143-144.

[9] 许琳妮 . 山东省高校质量工程项目申报与管理系统的设计 与实现 [D]. 济南 : 山东大学 ,2015:25.

[10] 张伟 , 杜聪聪 . 基于 Web 的学生成绩管理系统的研究与应 用 [J]. 信息通信 ,2018(8):140-142.

[11] 王逸 . 软件测试多维评估系统的设计与实现 [D]. 南京 : 南京大学 ,2020:37.

最近更新

  1. TCP协议是安全的吗?

    2024-06-18 11:30:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-18 11:30:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-18 11:30:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-18 11:30:03       18 阅读

热门阅读

  1. .NET C#基础:While & do-while

    2024-06-18 11:30:03       7 阅读
  2. ncnn 和 rknn 自定义算子对比实现

    2024-06-18 11:30:03       7 阅读
  3. 如何安全的进行数据获取!!

    2024-06-18 11:30:03       9 阅读
  4. Scala入门介绍

    2024-06-18 11:30:03       8 阅读
  5. vue 弹出消息框

    2024-06-18 11:30:03       8 阅读
  6. Hadoop Namenode节点迁移

    2024-06-18 11:30:03       7 阅读
  7. 面向对象编程基本概念

    2024-06-18 11:30:03       8 阅读
  8. 543. 二叉树的直径

    2024-06-18 11:30:03       7 阅读
  9. leetcode56 合并区间

    2024-06-18 11:30:03       7 阅读
  10. Android Intent的几种用法全面总结

    2024-06-18 11:30:03       6 阅读
  11. css3多列布局

    2024-06-18 11:30:03       6 阅读