基于SpringBoot和MySQL的CRM管理系统

person 匿名

发布日期: 2021-08-16 11:06:11 浏览量: 265
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

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.系统测试

登陆页面

主页

用户管理

修改分配角色

客户管理

新增联络

联络管理

文档管理

预定管理

日志管理

文件管理

背景更换

上传的附件 cloud_download CRM.zip ( 27.66mb, 4次下载 ) cloud_download CRM项目介绍(springboot+layui框架).pdf ( 2.63mb, 4次下载 )
error_outline 下载需要12点积分
eject