SpringBoot之登录退出接口(MD5加密)

R通用类:

package com.dongdong.dingdong.common;


import lombok.Data;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

@Data
public class R<T> implements Serializable {
    private Integer code; //编码:1成功,0和其他数字为失败

    private String msg; //信息错误

    private T data; //数据

    private Map map = new HashMap(); //动态数据

    public static <T> R<T> success(T object){
        R<T> r = new R<T>();
        r.data = object;
        r.code = 1;
        return r;
    }

    public static <T> R<T> error(String msg){
        R<T> r = new R<T>();
        r.msg = msg;
        r.code = 0;
        return r;
    }
}

entity:

package com.dongdong.dingdong.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

@Data
public class Employee implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    private String username;

    private String name;

    private String password;

    private String phone;

    private String sex;

    private String idNumber;

    private Integer status;

    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    @TableField(fill = FieldFill.INSERT)
    private Long createUser;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;

}

mapper:

package com.dongdong.dingdong.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.dongdong.dingdong.entity.Employee;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface EmployeeMapper extends BaseMapper<Employee> {

    //根据用户名查询员工信息
    Employee getOne(String username);
}

mapper.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dongdong.dingdong.mapper.EmployeeMapper">

    <sql id="Base_Column_List">
        id,name,username,password,phone,sex,id_number,
        status,create_time,update_time,create_user,update_user
    </sql>

    <!--    根据用户名查询员工信息-->
    <select id="getOne" resultType="com.dongdong.dingdong.entity.Employee">
        select
        <include refid="Base_Column_List"></include>
        from
        employee
        where
        username =
        #{username}
    </select>
</mapper>

server:

package com.dongdong.dingdong.server;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dongdong.dingdong.entity.Employee;

public interface EmployeeService extends IService<Employee> {
    //根据用户名查询员工信息
    Employee getOne(String username);
}

impl:

package com.dongdong.dingdong.server.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dongdong.dingdong.entity.Employee;
import com.dongdong.dingdong.mapper.EmployeeMapper;
import com.dongdong.dingdong.server.EmployeeService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

@Service
public class EmployeeServiceImpl extends ServiceImpl<EmployeeMapper, Employee> implements EmployeeService {

    @Resource
    private EmployeeMapper employeeMapper;

    @Override
    public Employee getOne(String username) {
        return employeeMapper.getOne(username);
    }
}

controller:

package com.dongdong.dingdong.controller;


import com.dongdong.dingdong.common.R;
import com.dongdong.dingdong.entity.Employee;
import com.dongdong.dingdong.server.EmployeeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

@Slf4j
@RestController
@RequestMapping("/employee")
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    /**
     * 员工登录
     * @return
     */
    @PostMapping("/login")
    public R<Employee> login(HttpServletRequest request,
                             @RequestBody Employee employee){
        log.info("进入登录接口...");
        String pwd = employee.getPassword();
        pwd = DigestUtils.md5DigestAsHex(pwd.getBytes());
        //将页面提交的密码进行md5加密

        Employee emp = employeeService.getOne(employee.getUsername());
        //将页面提交的用户名在数据库中去查询

        if (emp==null){
            return R.error("用户不存在,登录失败!!!");
        }
        //如果用户不存在则返回登录失败结果

        if (!emp.getPassword().equals(pwd)){
            return R.error("密码错误,登录失败!!!");
        }
        //对比密码

        if (emp.getStatus()==0){
            return R.error("此账号被禁用,登录失败!!!");
        }
        //对比员工状态

        request.getSession().setAttribute("employee",employee.getId());
        //将员工id存入session

        return R.success(emp);
    }

    /**
     * 退出登录
     * @return
     */
    @PostMapping("/logout")
    public R<String> logout(HttpServletRequest request){
        log.info("退出...");
        request.getSession().removeAttribute("employee");
        return R.success("退出成功!!!");
    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值