瑞吉外卖第一天(登录功能的实现)

1.创建EmployeeService,使用Mybatis-plus(MP),使其接口继承了IService

package com.itheima.reggie.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.reggie.entity.Employee;

public interface EmployeeService extends IService<Employee> {
}

2.创建EmployeeServiceImpl继承ServiceImpl<M extends BaseMapper<T>, T> 执行了EmployeeService接口



import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.itheima.reggie.entity.Employee;
import com.itheima.reggie.mapper.EmployeeMapper;
import com.itheima.reggie.service.EmployeeService;
import org.springframework.stereotype.Service;

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

3.创建EmployeeMapper使其继承BaseMapper<T>

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

@Mapper
public interface EmployeeMapper extends BaseMapper<Employee> {
}

 4.创建EmployeeController,添加其注解

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


}

5.分析登录功能

a . 获取前端传来的密码进行Md5加密

b.构造封装条件(以用户名为条件)

c.根据用户名进行查询

d.判断结果是否为空,若为空则用户不存在

e.用户存在判断密码是否相同,不相同则提示密码错误

f.密码正确判断此用户是否为禁用状态,若禁用则提示用户已被禁用

g.登录成功,将用户的id存入到session中

@PostMapping("/login")
    public R<Employee> login(HttpServletRequest request, @RequestBody Employee employee){
        //1.对前端传来的密码进行Md5加密
        String password = employee.getPassword();
        password = DigestUtils.md5DigestAsHex(password.getBytes());

        //2.构造封装条件
        LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Employee::getUsername,employee.getUsername());
        //3.根据用户名进行查询
        Employee emp = employeeService.getOne(queryWrapper);

        //4.判断结果是否为空  如果为空返回错误信息
        if(emp == null){
            return R.error("登录失败");
        }
        //5.判断密码是否相同
        if(!emp.getPassword().equals(password)){
            return R.error("密码错误!");
        }
        //6.判断用户状态是否为锁定状态
        if(emp.getStatus() != 1 ){
            return R.error("用户已禁用");
        }
        //7.登录成功将用户id存入的session中
        request.getSession().setAttribute("employee",emp.getId());
        return R.success(emp);
    }

6.登录退出功能实现

a.将存入session中的信息移除返回提示信息

@PostMapping("/logout")
    public R<String> logout(HttpServletRequest request){
        //清理session中的指定数据
        request.getSession().removeAttribute("employee");
        return R.success("退出成功");
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值