2. 菜品信息功能
用户可以查看菜品的详细信息,包括图片、价格、描述、库存和用户评价。
![](https://i-blog.csdnimg.cn/direct/d7cd37dc88d84dbfadb6b4a80f33e1c1.png)
3. 菜品订单功能
用户可以创建订单并查看自己的订单记录,管理员可以管理所有订单,更新订单状态。
-
主要代码实现:
@RestController
@RequestMapping("/api/orders")
public class OrderController {
@Autowired
private OrderService orderService;
@PostMapping("/create")
public R createOrder(@RequestBody OrderDTO order) {
orderService.createOrder(order);
return R.ok("Order created successfully");
}
@GetMapping("/user/{userId}")
public R getUserOrders(@PathVariable Long userId) {
return R.ok().put("data", orderService.getOrdersByUserId(userId));
}
}
-
截图:
![](https://i-blog.csdnimg.cn/direct/61f132a153004b199dc9e21f5a22ad5d.png)
4. 用户管理功能(后台)
管理员可以查看所有用户信息并进行增删改查操作,确保用户信息的完整性和准确性。
-
主要代码实现:
@RestController
@RequestMapping("/api/admin/users")
public class UserManagementController {
@Autowired
private UserService userService;
@GetMapping("/all")
public R getAllUsers() {
return R.ok().put("data", userService.getAllUsers());
}
@PostMapping("/update")
public R updateUser(@RequestBody UserDTO user) {
userService.updateUser(user);
return R.ok("User updated successfully");
}
}
- 截图:
![](https://i-blog.csdnimg.cn/direct/3bf5f768face47838fd4304912fc6f8c.png)
5. 菜品分类管理功能(后台)
管理员可以维护菜品分类,添加新分类或修改已有分类,方便用户按类别浏览菜品。
![](https://i-blog.csdnimg.cn/direct/def8e75ae47f484aaeea7e5e1691adbd.png)
技术栈
后端框架SpringBoot
- 简介:Spring Boot 是一个基于 Spring 框架的快速开发框架,支持内置 Tomcat,简化了 Web 应用程序的配置和部署。
- 优势:
- 自动配置:减少手动配置的复杂性,提高开发效率。
- 强大生态系统:集成 Spring Cloud、Spring Security 等,支持微服务和数据安全。
前端框架Vue
- 简介:Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面,特别适合开发单页面应用(SPA)。
- 优势:
- 响应式视图:数据和视图自动同步,提升用户体验。
- 组件化开发:便于代码复用和项目维护。
持久层框架MyBatis-Plus
- 简介:MyBatis-Plus 是一个 MyBatis 框架的增强工具,提供丰富的 CRUD 接口和插件支持。
- 优势:
- 减少代码量:通过简单配置实现复杂的数据库操作。
- 功能丰富:支持分页查询、乐观锁等功能,便于数据操作。
其他技术组件
- Redis:用于缓存用户会话和菜单数据,加快系统响应速度。
- JWT:实现用户身份验证,保护系统安全。
- Nginx:用于反向代理和负载均衡,提高系统并发性能。
- MySQL:主流关系型数据库,支持数据事务和高效查询。
系统实现与后端代码结构
代码结构概述
系统采用标准的分层架构设计,主要包括:
- Controller 层:处理前端请求并调用 Service 层处理业务逻辑。
- Service 层:封装业务逻辑,与 DAO 层交互。
- DAO 层:负责数据库操作,使用 MyBatis-Plus 实现 CRUD 功能。
- 实体类:定义数据库表对应的数据模型。
- 配置类:配置数据库连接、Redis 缓存和全局设置。
系统测试
系统测试目的
系统测试的目的是验证系统各功能模块的稳定性和正确性,确保用户操作流畅,系统逻辑正确。
系统功能测试
1. 登录功能测试
输入数据 | 预期结果 | 实际结果 | 结果分析 |
---|
用户名:user1,密码:123456 | 成功登录 | 成功登录 | 与预期一致 |
用户名:user1,密码:错误密码 | 提示“密码错误” | 提示“密码错误” | 与预期一致 |
用户名:空,密码:123456 | 提示“用户名不能为空” | 提示“用户名不能为空” | 与预期一致 |
用户名:user1,密码:空 | 提示“密码不能为空” | 提示“密码不能为空” | 与预期一致 |
2. 菜品信息功能测试
测试场景 | 输入数据 | 预期结果 | 实际结果 | 结果分析 |
---|
浏览菜品详细信息 | 菜品ID | 显示详细信息 | 显示详细信息 | 与预期一致 |
查询不存在的菜品 | 不存在的ID | 提示“菜品未找到” | 提示“菜品未找到” | 与预期一致 |
菜品库存不足时尝试下单 | 菜品数量 | 提示“库存不足” | 提示“库存不足” | 与预期一致 |
3. 菜品订单功能测试
测试场景 | 输入数据 | 预期结果 | 实际结果 | 结果分析 |
---|
创建订单 | 菜品ID与数量 | 订单创建成功 | 订单创建成功 | 与预期一致 |
查看用户订单 | 用户ID | 显示用户订单列表 | 显示用户订单列表 | 与预期一致 |
修改订单状态 | 新状态 | 状态更新成功 | 状态更新成功 | 与预期一致 |
4. 用户管理功能测试
测试场景 | 输入数据 | 预期结果 | 实际结果 | 结果分析 |
---|
查看所有用户信息 | 无需输入 | 显示用户列表 | 显示用户列表 | 与预期一致 |
修改用户信息 | 用户ID与新数据 | 更新成功 | 更新成功 | 与预期一致 |
删除用户 | 用户ID | 删除成功 | 删除成功 | 与预期一致 |
5. 菜品分类管理功能测试
测试场景 | 输入数据 | 预期结果 | 实际结果 | 结果分析 |
---|
添加新菜品分类 | 分类名称 | 添加成功 | 添加成功 | 与预期一致 |
修改菜品分类名称 | 新名称 | 更新成功 | 更新成功 | 与预期一致 |
删除菜品分类 | 分类ID | 删除成功 | 删除成功 | 与预期一致 |
系统测试结论
通过全面的测试,系统各模块运行稳定,逻辑正确,满足用户的需求,用户体验良好。
代码参考
更多实现细节和代码片段可在源码中查看。
数据库参考
CREATE TABLE `caipindingdan` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`dingdanbianhao` varchar(200) DEFAULT NULL COMMENT '订单编号',
`caipinmingcheng` varchar(200) DEFAULT NULL COMMENT '菜品名称',
`caipinfenlei` varchar(200) DEFAULT NULL COMMENT '菜品分类',
`tupian` varchar(200) DEFAULT NULL COMMENT '图片',
`caipinjiage` int(11) DEFAULT NULL COMMENT '菜品价格',
`xiadanshuliang` int(11) NOT NULL COMMENT '下单数量',
`zongjine` varchar(200) DEFAULT NULL COMMENT '总金额',
`xiadanshijian` datetime NOT NULL COMMENT '下单时间',
`canzhuohao` varchar(200) DEFAULT NULL COMMENT '餐桌号',
`yonghuming` varchar(200) DEFAULT NULL COMMENT '用户名',
`lianxidianhua` varchar(200) DEFAULT NULL COMMENT '联系电话',
`sfsh` varchar(200) DEFAULT '否' COMMENT '是否审核',
`shhf` longtext COMMENT '审核回复',
`ispay` varchar(200) DEFAULT '未支付' COMMENT '是否支付',
PRIMARY KEY (`id`),
UNIQUE KEY `dingdanbianhao` (`dingdanbianhao`)
) ENGINE=InnoDB AUTO_INCREMENT=1616249516189 DEFAULT CHARSET=utf8 COMMENT='菜品订单';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `caipindingdan`
--
LOCK TABLES `caipindingdan` WRITE;
/*!40000 ALTER TABLE `caipindingdan` DISABLE KEYS */;
INSERT INTO `caipindingdan` VALUES (51,'2021-03-20 13:36:16','订单编号1','菜品名称1','菜品分类1','http://localhost:8080/springboot1mi5m/upload/1616248880993.jpg',1,1,'1','2021-03-20 21:36:16','餐桌号1','用户名1','联系电话1','是','','未支付'),(52,'2021-03-20 13:36:16','订单编号2','菜品名称2','菜品分类2','http://localhost:8080/springboot1mi5m/upload/1616248890558.jpg',2,2,'4','2021-03-20 21:36:16','餐桌号2','用户名2','联系电话2','是','','未支付'),(53,'2021-03-20 13:36:16','订单编号3','菜品名称3','菜品分类3','http://localhost:8080/springboot1mi5m/upload/1616248899214.jpg',3,3,'9','2021-03-20 21:36:16','餐桌号3','用户名3','联系电话3','是','','未支付'),(54,'2021-03-20 13:36:16','订单编号4','菜品名称4','菜品分类4','http://localhost:8080/springboot1mi5m/upload/1616248937789.jpg',4,4,'16','2021-03-20 21:36:16','餐桌号4','用户名4','联系电话4','是','','未支付'),(55,'2021-03-20 13:36:16','订单编号5','菜品名称5','菜品分类5','http://localhost:8080/springboot1mi5m/upload/1616248947898.jpg',5,5,'25','2021-03-20 21:36:16','餐桌号5','用户名5','联系电话5','是','','未支付'),(56,'2021-03-20 13:36:16','订单编号6','菜品名称6','菜品分类6','http://localhost:8080/springboot1mi5m/upload/1616248958216.jpg',6,6,'36','2021-03-20 21:36:16','餐桌号6','用户名6','联系电话6','是','','未支付'),(1616249516188,'2021-03-20 14:11:55','202132022113612448606','麻辣小龙虾','川菜','http://localhost:8080/springboot1mi5m/upload/1616249301862.jpg',88,2,'176','2021-03-20 18:00:00','1号桌','1','12312312312','是','ok','已支付');
/*!40000 ALTER TABLE `caipindingdan` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `caipinfenlei`
--
DROP TABLE IF EXISTS `caipinfenlei`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `caipinfenlei` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`caipinfenlei` varchar(200) NOT NULL COMMENT '菜品分类',
PRIMARY KEY (`id`),
UNIQUE KEY `caipinfenlei` (`caipinfenlei`)
) ENGINE=InnoDB AUTO_INCREMENT=1616249288843 DEFAULT CHARSET=utf8 COMMENT='菜品分类';
/*!40101 SET character_set_client = @saved_cs_client */;
源码获取
文章下方名片可联系我获取完整源码及数据库。
点赞、收藏、关注、评论支持一下吧👇🏻获取联系方式👇🏻
版权声明:本文为原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请注明出处并附上原文链接。
原文链接:[https://blog.csdn.net/yinger1020/article/details/143822059]
嘤er: 名片加我哟
m0_75258264: 求源码