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不为空,且在数据库中存在对应的⽤户记录,表示请求合法
         否则,请求不合法,进⾏拦截,重定向到登录⻚⾯