Spring Boot实训项目 瑞吉外卖功能实现(二)

简介: Spring Boot实训项目 瑞吉外卖功能实现(二)

套餐关系表

字段

数据类型

主键

外键

是否为空

说明

Id

bigint(20)

CategoryId

bigint(20)

分类ID

Name

varchar(64)

套餐名称

Price

decimal(10)

套餐价格

Status

Int(11)

状态

Code

varchar(32)

编码

Descripte

varchar(512)

描述信息

Image

varchar(255)

图片

CreateTime UpdateTime

datetime

datetime

创建时间

更新时间

Createuser

Bigint(20)

创建者

Updateuser

Bigint(20)

修改者

Is_Delete

varchar(50)

是否删除

用户表

购物车表

地址薄表

分类表

菜品表

口味表

员工表

订单表

订单详情表

套餐表

套餐关系表

实体E-R图

6 具体实现

6.1 员工登录

6.1.1 登录功能

内部员工必须输入员工账号和密码,通过验证后才可以访问系统管理后台。过滤器会判断用户是否已经完成了登录,如果没有登录则跳转到登陆页面。

员工登录与退出核心代码:

1. @PostMapping("/employee/login")
2. 
3.     public R<Employee> login(HttpServletRequest request, @RequestBody Employee employee){
4. 
5.         //RequestBody可以接收JSON格式的数据并解析为实体类(Employee)
6. 
7.         String username = employee.getUsername();
8. 
9.         String password = DigestUtils.md5DigestAsHex(employee.getPassword().getBytes());
10. 
11.         System.out.println("用户名:"+username+"--密码:"+password);
12. 
13.         //LambdaQueryWrapper<List<Map>> lambdaQueryWrapper = new LambdaQueryWrapper<>();
14. 
15.         LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
16. 
17.         //查询结果是单张表,用实体类接收;如果是if交叉查询(多张表查询)用List<Map>
18. 
19.         queryWrapper.eq(Employee::getUsername,username);
20. 
21.         //使用LambdaQueryWrapper免除写sql,相当于进行select操作
22. 
23.         Employee employee1 = employeeService.getOne(queryWrapper);
24. 
25.         System.out.println("2********username:"+employee1.getPhone());
26. 
27.         if (employee1 == null){
28. 
29.             return R.error("用户名错误,登录失败,请重试!");
30. 
31.         }
32. 
33.         if (!password.equals(employee1.getPassword())){
34. 
35.             return R.error("密码错误,登录失败,请重试!");
36. 
37.         }
38. 
39.         if (employee1.getStatus()!=1){
40. 
41.             return R.error("该账户被删除或禁用,登录失败!");
42. 
43.         }
44. 
45.         request.getSession().setAttribute("employee",employee1);  //为了filter、后续调用方便
46. 
47.         BaseContext.setCurrentUserID(employee1.getId());  //为了普通类能够调用
48. 
49.         return R.success(employee1);
50. 
51.     }
52. 
53.     @PostMapping("/employee/logout")
54. 
55.     public R<Employee> logout(HttpServletRequest request){
56. 
57.         request.getSession().removeAttribute("employee");
58. 
59.         request.getSession().invalidate();
60. 
61.         return R.success(null);
62. 
63.     }

6.2 员工管理

6.2.1 查询功能

输入对应的员工名称可查找该员工。

6.2.2 添加功能

通过输入新员工的信息实现对员工的新增操作。

6.2.3 修改功能

点击编辑可以对所选员工的个人信息进行修改。

6.2.4 禁用功能

可以点击禁用禁止该员工的登录权限。

目录
相关文章
|
3月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
504 2
|
6月前
|
JSON 分布式计算 大数据
springboot项目集成大数据第三方dolphinscheduler调度器
springboot项目集成大数据第三方dolphinscheduler调度器
386 3
|
6月前
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
660 3
|
6月前
|
缓存 前端开发 Java
SpringBoot 实现动态菜单功能完整指南
本文介绍了一个动态菜单系统的实现方案,涵盖数据库设计、SpringBoot后端实现、Vue前端展示及权限控制等内容,适用于中后台系统的权限管理。
669 1
|
6月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
296 0
|
6月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
554 0
|
Java 数据库 数据安全/隐私保护
《Spring 3.0就这么简单》——1.2 实例功能概述
Spring拥有持久层、业务层和展现层的“原生技术”,分别是Spring JDBC、声明式事务和Spring MVC。为了充分展现Spring本身的魅力,在本章中仅使用Spring的这些原生技术,在以后的章节中,我们将学习其他的持久层和展现层技术,只要用户愿意,就可以平滑地将其过渡到其他技术实现中。
2190 0
|
6月前
|
Java Spring 容器
SpringBoot自动配置的原理是什么?
Spring Boot自动配置核心在于@EnableAutoConfiguration注解,它通过@Import导入配置选择器,加载META-INF/spring.factories中定义的自动配置类。这些类根据@Conditional系列注解判断是否生效。但Spring Boot 3.0后已弃用spring.factories,改用新格式的.imports文件进行配置。
1099 0
|
7月前
|
人工智能 Java 测试技术
Spring Boot 集成 JUnit 单元测试
本文介绍了在Spring Boot中使用JUnit 5进行单元测试的常用方法与技巧,包括添加依赖、编写测试类、使用@SpringBootTest参数、自动装配测试模块(如JSON、MVC、WebFlux、JDBC等),以及@MockBean和@SpyBean的应用。内容实用,适合Java开发者参考学习。
840 0
|
3月前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
405 3