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

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("退出成功");
    }

好的,以下是一个简单的瑞吉外卖毕业设计: 1. 项目概述 瑞吉外卖是一个在线点餐和外卖配送平台,旨在为用户提供方便快捷的餐饮服务。本项目的目标是设计和开发一个瑞吉外卖平台的Web应用程序,使用户能够浏览菜单、下订单、支付并收到外卖。 2. 功能需求 - 用户注册和登录:用户可以注册账号并登录,以便进行下单和支付。 - 菜单浏览:用户可以浏览瑞吉外卖的菜单,包括菜品名称、图片、描述和价格等信息。 - 下订单:用户可以选择所需的菜品,并将其添加到购物车中。用户可以在购物车中修改订单内容,然后提交订单。 - 支付功能:用户可以使用信用卡、支付宝或微信支付等方式进行支付。 - 外卖配送:一旦订单被支付,瑞吉外卖系统将为用户安排外卖配送。 3. 技术实现 - 后端开发使用Java语言和Spring框架开发后端逻辑。 - 数据库:使用MySQL数据库存储用户信息、菜单和订单等数据。 - 前端开发使用HTML、CSS和JavaScript等技术实现用户界面。 - 支付接口:使用支付宝和微信支付的API实现支付功能。 - 外卖配送:使用第三方配送平台(例如饿了么)进行外卖配送。 4. 项目展望 瑞吉外卖是一项有潜力的业务,未来可以考虑以下扩展: - 扩大菜单种类和数量:增加更多的菜品种类和数量,以满足更广泛的用户需求。 - 推广活动:开展促销和折扣活动,以吸引更多用户。 - 用户评价:开发用户评价功能,使用户可以对菜品和服务进行评价,提供反馈和建议。 - 移动应用:开发移动应用程序,使用户可以更方便地使用瑞吉外卖服务。 以上是一个简单的瑞吉外卖毕业设计。当然,具体实现细节和功能可以根据自己的需求进行扩展和修改。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值