基于SpringBoot和MySQL的CRM管理系统
1.项目介绍(springboot+layui框架)
项目为 CRM 系统, CRM 是一种客户关系管理系统。 顾名思义就是管理公司与客户之间的关系。 是一种 以"客户关系一对 一理论"为基础,旨在改善企业与客户之间关系的新型管理机制。
1.1 功能模块
1.2 技术栈
-
前端 : LayUI 框架、 FreeMarker 视图
-
数据库 : Mysql-5.7.29
-
后端 :采用 JDK1.8 开发环境,使用 Spring 、 Spring MVC 、 Mybatis 三大框架
-
开发工具 : IDEA
-
项目管理工具 : Maven
2.数据库搭建
2.1 用户表
2.2 营销机会表
2.3 角色表
2.4 用户角色关联表
2.5 客户开发计划表
2.6 E-R图
3.项目开发
3.1 登陆实现
3.1.1 简单的流程
-
用户访问控制器进入所在视图页面
-
输入参数前端简单验证
-
通过后,再次访问验证用户密码的控制器
-
调用 service层验证
-
执行 sql 返回结果
-
生成前端所需要的数据供解析
3.1.2 登录页制作
mapper
定义出 t_user表相关要执行的 sql语句,也就是实现 User的 Mapper层相关操作。
对于用户的 mapper层的创建,我们使用 mybatis逆向工程生成 mapper接口和映射文件,但不去 生成 Example相关类( mybatis逆向工程使用方式放最后讲解)。
由于我们使用的 mybatis逆向工程生成的文件, sql语句ID都是一样的,所以我们可以创建一个 基础的包 base,用于存放各种基础的方法通用的 BaseMapper类,然后去继承它 此时想实现查询数据库是否有对应的 user_name,注意账号也是要为有效状态,而现在 mapper 是没有存在此方法,所以还需我们去编写。
UserMapper源代码位于:
src/main/java/com/migu/mapper/usermapper/UserMapper.java
service
对于 Service层,我们需要为前端传过来的用户做以下操作:
- 查看传入账号和密码是否为空,这边可以使用 StringUtils工具类
0 查看用户账号在数据库是否存在,存在则取出密码与用户传过来的密码比较
-
登录成功后:将用户ID和基本信息封装到cookie中,存到浏览器中 Cookie 操作,交由 Jquery执 行,后端传输 JSON过去,让前端获取即可,一个供前端解析的视图对象,存放着成功失败的提示 信息和data域(用户对象)
-
各种操作失败,我们将抛出异常,并设置异常信息供前端向用户解释(自定义异常 ParamsException),这些异常信息将封装成供前端解析的视图对象,我们定义的供前端解析的 视图对象 ResultInfo就起到作用
-
避免大量 if操作,将再定义一个检查类 AssertUtil,检查是否操作失败
上面这个两个操作定义可以应用于任何地方,不止仅限于用户登录操作上。
-
UserService源代码位于:
src/main/java/com/migu/service/UserService.java
-
简化的 User对象源代码位于:
src/main/java/com/migu/vo/UserModel.java
-
自定义异常信息类源代码位于:
src/main/java/com/migu/exception/ParamsException.java
Controller
-
对于 Controller层,接收 User对象,返回供前端判断的 JSON视图对象
-
创建要返回的视图对象
-
调用 Service层,并捕获异常,如果存在异常,则把原因设置到返回的视图对象中
-
正常返回视图对象
UserController源代码位于:
src/main/java/com/migu/controller/UserController.java
返回的视图对象源代码位于:
src/main/java/com/migu/base/ResultInfo.java
还有我们要配置项目的访问路径,供 FreeMarker使用,所以可以写一个 BaseController让 UserController去继承它。
3.1.3 测试
3.2 拦截器实现
使用 LayUI提供的后台系统模板设计主页:
当用户访问主页时会经过这样一个流程:
-
访问 主页 内容
-
拦截器对其拦截
-
获取 request携带的 Cookie是否存在 UserId
-
不存在抛出一个 未登录异常 ,提示用户,并重定向到登录页面 存在继续执行,携带该 UserId去访问数据库 执行 sql查询是否存在该 id
- 存在,对其 放行
-
不存在,提示用户,并重定向到登录页面
-
使用 Spring提供的拦截器来处理
实现 HandlerInterceptor接口,在 preHandle方法配置拦截条件
源码:
src/main/java/com/migu/interceptor/NoLoginInterceptor.java
4.系统测试
登陆页面
主页
用户管理
修改分配角色
客户管理
新增联络
联络管理
文档管理
预定管理
日志管理
文件管理
背景更换
参考文献
- 基于J2EE体系结构的CRM系统的研究与开发(中南大学·杨骐)
- 基于SSH2的CRM系统的开发(西安工程大学·李久鑫)
- 企业项目管理系统设计与实现(吉林大学·刘舒杨)
- 基于Spring、Hibernate的中小企业CRM系统的设计与实现(北京邮电大学·曹美溪)
- 基于SSH框架的人力资源管理系统的设计与开发(电子科技大学·唐伟)
- 办公流程管理系统的设计与实现(北京邮电大学·王影)
- 基于SSH2的CRM系统的开发(西安工程大学·李久鑫)
- 基于OAuth2.0协议的企业分布式授权系统设计与实现(华中科技大学·支猛)
- 基于WEB的客户关系管理系统的设计与实现(中国海洋大学·代学卿)
- 中小企业中CRM应用模型的研究(西安电子科技大学·曹会河)
- 基于J2EE的客户关系管理系统的设计与实现(吉林大学·李维威)
- 基于J2EE的客户关系管理系统的设计与实现(吉林大学·李维威)
- 基于SSH的客户关系管理系统的研究与实现(西安电子科技大学·张荣召)
- 基于Dubbo框架的开发者中心的设计与实现(北京交通大学·涂鹏程)
- 企业项目管理系统设计与实现(吉林大学·刘舒杨)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码驿站 ,原文地址:https://bishedaima.com/yuanma/35446.html