crm_用户管理
crm:用户关系管理系统
CRM 系统模块划分

环境搭建与测试
1.新建项目
2.引坐标,插件
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> </parent>
<!-- web 环境 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- aop -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- freemarker -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- 测试环境 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<!-- 分⻚插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- c3p0 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
<!-- commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<!-- 5.2.3. 添加配置⽂件
src/main/resources ⽬录下新建 application.yml 配置⽂件,内容如下:-->
<version>1.2.47</version>
</dependency>
<!-- DevTools 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<build>
<finalName>crm49</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>11</source>
<target>11</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
<plugin>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 如果没有该配置,热部署的devtools不⽣效 -->
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
3.添加配置⽂件 ---application.yml
4.添加视图转发
controller下添加系统登录,主页面转发代码
5.添加静态资源
6.添加视图模板
在 src/main/resources ⽬录下新建
views
⽬录,添加
index.ftl
、
main.ftl
等⽂件。
7.添加启动类
8.浏览器浏览
用户登录实现
1.准备好工具类和自定义异常类
2.自动生成代码:generatorConfig.xml 配置⽂件。
3.执行命令:mybatis-generator:generate -e

4.实现思
⽤户登录
1. 验证参数
姓名 ⾮空判断
密码 ⾮空判断
2. 根据⽤户名,查询⽤户对象
3. 判断⽤户是否存在
⽤户对象为空,记录不存在,⽅法结束
4. ⽤户对象不为空
⽤户存在,校验密码
密码不正确,⽅法结束
5. 密码正确
⽤户登录成功,返回⽤户的相关信息 (定义UserModel类,返回⽤户某些信息)
5.
前端登录功能实现
index.ftl
添加对应
index.js
,使⽤
layui
表单组件实现表单提交操作
修改密码
思路分析
⽤户密码修改
* 1. 参数校验
* userId ⾮空 ⽤户对象必须存在
* oldPassword ⾮空 与数据库中密⽂密码保持⼀致
* newPassword ⾮空 与原始密码不能相同
* confirmPassword ⾮空 与新密码保持⼀致
* 2. 设置⽤户新密码
* 新密码进⾏加密处理
* 3. 执⾏更新操作
* 受影响的⾏数⼩于1,则表示修改失败
退出登录
找到 "
退出登录
"
的元素,并绑定点击事件。当⽤户点击退出时,清空
cookie
信息
在
main.js
中,通过类选择器绑定元素的点击事件

非法请求拦截
思路
判断⽤户是否是登录状态
获取Cookie对象,解析⽤户ID的值
如果⽤户ID不为空,且在数据库中存在对应的⽤户记录,表示请求合法
否则,请求不合法,进⾏拦截,重定向到登录⻚⾯