京淘电商后台管理系统

1,用户登录及左菜单显示

1.1.用户登录

1.1.1.构建springboot及mybatis项目

1.1.2.编辑pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.jt</groupId>
    <artifactId>jt</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>jt</name>
    <description>jt</description>

    <!--只需要复制 除了坐标之外的文件即可-->
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.4.1</spring-boot.version>
    </properties>
    <dependencies>
        <!--springBoot整合mvc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--springBoot整合测试方法-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--支持热部署 开发阶段有效-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>

        <!--引入插件lombok 自动的set/get/构造方法插件  -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <!--mybatis依赖包-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>

        <!--jdbc依赖包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <mainClass>com.jt.SpringbootDemo1Application</mainClass>
                </configuration>
                <!--排除一些指定的配置-->
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

1.1.3用户登录业务接口
请求路径: /user/login
请求方式: POST
请求参数
参数名称    参数说明    备注
username    用户名    不能为空
password    密码    不能为空
响应数据: SysResult对象
参数名称    参数说明    备注
status    状态信息    200表示服务器请求成功 201表示服务器异常
msg    服务器返回的提示信息    可以为null
data    服务器返回的业务数据    返回密钥token信息
1.1.4编辑SysResult对象

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class SysResult {
    private Integer status;
    private String msg;
    private Object data;
    public static SysResult fail(){
        return new SysResult(201,"服务器调用失败",null);
    }
    public static SysResult success(){
        return new SysResult(200,"服务器调用成功",null);
    }
    public static SysResult success(Object data){
        return new SysResult(200,"服务器调用成功",data);
    }
    public static SysResult success(String msg){
        return new SysResult(200,msg,null);
    }
    public static SysResult success(String msg,Object data){
        return new SysResult(200,msg,data);
    }
}

1.1.5.用户登录的流程

1用户输入用户名和密码 admit123/admit123456(在数据库里面的User表里的数据)点击
2通过vue中的axios发起post请求/user/login,实现用户登录
3在UserController中接收用户的请求和参数(json)
4先将密码进行加密(MD5),根据参数查询数据库
    查询成功有数据,输入正确,有且只有一个数据
    查询失败没有数据,输入有误
5如果登录成功,则返回token的密钥(安全性),利用SysResult对象返回

 1.1.6. 编辑UserController

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;
    @PostMapping("/login")
    public SysResult login(@RequestBody User user){
        String token = userService.findUserByUp(user);
        if (token ==null && "".equals(token)){
            return SysResult.fail();
        }
        return SysResult.success(token);
    }
}

1.1.7编辑UserService接口及UserServiceImpl(对密码进行加密处理)

1.1.7.1.UserService接口


import com.jt02.pojo.User;

public interface UserService {
    String findUserByUp(User user);
}

 1.1.7.2.UserServiceImpl

import com.jt02.mapper.UserMapper;
import com.jt02.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;

import java.util.UUID;
@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserMapper userMapper;
    @Override
    public String findUserByUp(User user) {
        byte[] bytes = user.getPassword().getBytes();
        String md5pass = DigestUtils.md5DigestAsHex(bytes);
        User userDB=userMapper.findUserByUP(user);
        if (userDB == null){
            return null;
        }
        return UUID.randomUUID().toString().replace("-","");
    }
}

1.1.8.编辑UserMapper

@Select("select * from user where username=#{username} and password=#{password}")
User findUserByUP(User user);

1.2.左菜单显示

1.2.1.业务接口

请求路径 /rights/getRightsList
请求类型 GET
请求参数 无
响应数据 SysResult对象
参数名称    参数说明    备注
status    状态信息    200表示服务器请求成功 201表示服务器异常
msg    服务器返回的提示信息    可以为null
data    服务器返回的业务数据    返回权限List集合

1.2.2.创建RightsController

import com.jt02.pojo.Rights;
import com.jt02.service.RightsService;
import com.jt02.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;


@RestController
@CrossOrigin
@RequestMapping("/rights")
public class RightsController {
    @Autowired
    private RightsService rightsService;
    @GetMapping("/getRightsList")
    public SysResult getRightsList(){
        List<Rights> list = rightsService.getRightsList();
        return SysResult.success(list);
    }
}

1.2.3创建RightdService接口及RightServiceImpl

import com.jt02.pojo.Rights;

import java.util.List;

public interface RightsService {
    List<Rights> getRightsList();

}
import com.jt02.mapper.RightsMapper;
import com.jt02.pojo.Rights;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class RightServiceImpl implements RightsService {
    @Autowired
    private RightsMapper rightsMapper;
    @Override
    public List<Rights> getRightsList() {

        return rightsMapper.getRightsList();
    }
}

1.2.4.编辑RightsMapper接口

import com.jt02.pojo.Rights;

import java.util.List;

public interface RightsMapper {
    List<Rights> getRightsList();

}

2.用户管理模块

2.1用户列表

2.1.1用户列表的业务接口

请求路径: /user/list
请求类型: GET
请求参数: 后台使用PageResult对象接收
请求案例: http://localhost:8091/user/list?query=查询关键字&pageNum=1&pageSize=10
参数名称    参数说明    备注信息
query    用户查询的数据    可以为null
pageNum    分页查询的页数    必须赋值不能为null
pageSize    分页查询的条数    必须赋值不能为null
响应参数: SysResult对象 需要携带分页对象 PageResult
参数名称    参数说明    备注信息
status    状态信息    200表示服务器请求成功 201表示服务器异常
msg    服务器返回的提示信息    可以为null
data    服务器返回的业务数据    返回值PageResult对象
PageResult 对象介绍
参数名称    参数类型    参数说明    备注信息
query    String    用户查询的数据    可以为null
pageNum    Integer    查询页数    不能为null
pageSize    Integer    查询条数    不能为null
total    Long    查询总记录数    不能为null
rows    Object    分页查询的结果    不能为null

2.1.2.编辑PageResult工具类

package com.jt02.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;


@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class PageResult {
    private String query;//查询数据
    private Integer pageNum;//页数
    private Integer pageSize;//条数
    private Long total;//总数
    private Object rows; //查询结果
}


2.1.3.编辑userController

@GetMapping("/list")
public SysResult getUserListByPage(PageResult pageResult){
    pageResult = userService.getUserListByPage(pageResult);
    return SysResult.success(pageResult);
}

2.1.4.编辑UserService接口及UserServiceImpl实体类

  PageResult getUserListByPage(PageResult pageResult);
 @Override
    public PageResult getUserListByPage(PageResult pageResult) {
        //1.总数
        long total = userMapper.findTotal();
        //2.分页结果
        int size = pageResult.getPageSize();    //条数
        int start = (pageResult.getPageNum()-1) * size; //起始位置
        String query = pageResult.getQuery();   //查询条件
        //查询分页数据
        List<User> userList =
                userMapper.findUserListByPage(start,size,query);
        //将返回值结果进行封装
        return pageResult.setTotal(total).setRows(userList);
    }

2.1.5.编辑Usermapper接口

@Select("select count(1) from user")
long findTotal();
//将多值封装为单值  一般使用对象/集合/Map
List<User> findUserListByPage(@Param("start") int start,
                              @Param("size") int size,
                              @Param("query") String query);

2.1.6.在Usermapper.xml里编写SQL语句

<select id="findUserListByPage" resultType="com.jt02.pojo.User">
        SELECT * FROM USER
        <where>
            <if test="query !=null and query !=''">username LIKE "%"#{query}"%"</if>
        </where>
        LIMIT #{start},#{size}
    </select>

3:运行结果示意图

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员慕慕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值