一、个人简介
💖💖作者:计算机编程果茶熊 💙💙个人简介:曾长期从事计算机专业培训教学,担任过编程老师,同时本人也热爱上课教学,擅长Java、微信小程序、Python、Golang、安卓Android等多个IT方向。会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 计算机毕业设计选题 💕💕文末获取源码联系计算机编程果茶熊
二、系统介绍
后端开发语言:Java+Python(两个版本都支持) 后端框架:Spring Boot(Spring+SpringMVC+Mybatis)+Django(两个版本都支持) 前端:uni-app+微信小程序+安卓 数据库:MySQL 系统架构:C/S + B/S 开发工具:IDEA(Java的)或者PyCharm(Python的)+微信小程序开发工具
《Spring Boot基于Android的餐饮点餐系统的设计与实现》是一套采用前后端分离架构的现代化餐饮管理解决方案。该系统以Spring Boot框架作为后端核心,整合SpringMVC和MyBatis实现业务逻辑处理和数据持久化操作,同时支持Django框架的Python版本实现,为开发者提供多样化的技术选择。前端采用uni-app跨平台开发框架,实现了微信小程序和Android原生应用的双端覆盖,确保用户能够在不同设备上获得一致的使用体验。系统构建了完整的餐饮服务生态,涵盖个人中心、用户管理、菜品分类管理、餐桌类型管理、餐桌信息管理、餐桌预约管理、菜品信息管理、点餐信息管理、留言反馈管理、美食论坛管理、论坛分类管理、举报记录管理等十二个核心功能模块。通过MySQL数据库进行数据存储,采用C/S和B/S混合架构模式,既满足了移动端用户的便捷操作需求,又为管理员提供了功能完善的后台管理界面,实现了从点餐下单到餐桌管理的全流程数字化操作。
三、视频解说
Spring Boot毕业设计:基于Android的餐饮点餐系统完整实现
四、部分功能展示
五、部分代码展示
import org.apache.spark.sql.SparkSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import java.util.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@RestController
@RequestMapping("/api")
public class RestaurantController {
@Autowired
private SparkSession sparkSession = SparkSession.builder().appName("RestaurantDataAnalysis").master("local[*]").getOrCreate();
@PostMapping("/order/create")
public Result createOrder(@RequestBody OrderRequest request) {
Order order = new Order();
order.setUserId(request.getUserId());
order.setTableId(request.getTableId());
order.setOrderTime(LocalDateTime.now());
order.setStatus("待确认");
BigDecimal totalAmount = BigDecimal.ZERO;
List<OrderItem> orderItems = new ArrayList<>();
for (OrderItemRequest itemRequest : request.getItems()) {
Dish dish = dishMapper.selectById(itemRequest.getDishId());
if (dish == null || dish.getStatus().equals("下架")) {
return Result.error("菜品不存在或已下架");
}
OrderItem orderItem = new OrderItem();
orderItem.setDishId(itemRequest.getDishId());
orderItem.setQuantity(itemRequest.getQuantity());
orderItem.setPrice(dish.getPrice());
orderItem.setSubtotal(dish.getPrice().multiply(new BigDecimal(itemRequest.getQuantity())));
orderItems.add(orderItem);
totalAmount = totalAmount.add(orderItem.getSubtotal());
}
order.setTotalAmount(totalAmount);
orderMapper.insert(order);
for (OrderItem item : orderItems) {
item.setOrderId(order.getId());
orderItemMapper.insert(item);
}
Table table = tableMapper.selectById(request.getTableId());
table.setStatus("已占用");
table.setUpdateTime(LocalDateTime.now());
tableMapper.updateById(table);
sparkSession.sql("INSERT INTO order_analytics VALUES (" + order.getId() + ", '" + order.getOrderTime() + "', " + totalAmount + ")");
return Result.success("订单创建成功", order);
}
@PostMapping("/reservation/book")
public Result bookTable(@RequestBody ReservationRequest request) {
QueryWrapper<Reservation> wrapper = new QueryWrapper<>();
wrapper.eq("table_id", request.getTableId());
wrapper.eq("reservation_date", request.getReservationDate());
wrapper.between("reservation_time", request.getReservationTime().minusHours(1), request.getReservationTime().plusHours(1));
wrapper.ne("status", "已取消");
List<Reservation> existingReservations = reservationMapper.selectList(wrapper);
if (!existingReservations.isEmpty()) {
return Result.error("该时间段餐桌已被预约");
}
Table table = tableMapper.selectById(request.getTableId());
if (table == null || !table.getStatus().equals("空闲")) {
return Result.error("餐桌不可用");
}
if (request.getPersonCount() > table.getCapacity()) {
return Result.error("预约人数超过餐桌容量");
}
Reservation reservation = new Reservation();
reservation.setUserId(request.getUserId());
reservation.setTableId(request.getTableId());
reservation.setReservationDate(request.getReservationDate());
reservation.setReservationTime(request.getReservationTime());
reservation.setPersonCount(request.getPersonCount());
reservation.setContactPhone(request.getContactPhone());
reservation.setStatus("已预约");
reservation.setCreateTime(LocalDateTime.now());
reservationMapper.insert(reservation);
table.setStatus("已预约");
table.setUpdateTime(LocalDateTime.now());
tableMapper.updateById(table);
sparkSession.sql("INSERT INTO reservation_analytics VALUES (" + reservation.getId() + ", '" + reservation.getReservationDate() + "', " + request.getPersonCount() + ")");
return Result.success("预约成功", reservation);
}
@PostMapping("/dish/manage")
public Result manageDish(@RequestBody DishRequest request) {
if (request.getId() == null) {
QueryWrapper<Dish> wrapper = new QueryWrapper<>();
wrapper.eq("name", request.getName());
wrapper.eq("category_id", request.getCategoryId());
Dish existingDish = dishMapper.selectOne(wrapper);
if (existingDish != null) {
return Result.error("同类别下已存在同名菜品");
}
DishCategory category = categoryMapper.selectById(request.getCategoryId());
if (category == null || !category.getStatus().equals("启用")) {
return Result.error("菜品分类不存在或已禁用");
}
Dish dish = new Dish();
dish.setName(request.getName());
dish.setDescription(request.getDescription());
dish.setPrice(request.getPrice());
dish.setCategoryId(request.getCategoryId());
dish.setImage(request.getImage());
dish.setStatus("上架");
dish.setCreateTime(LocalDateTime.now());
dish.setUpdateTime(LocalDateTime.now());
dishMapper.insert(dish);
sparkSession.sql("INSERT INTO dish_analytics VALUES (" + dish.getId() + ", '" + dish.getName() + "', " + dish.getPrice() + ", '" + dish.getCreateTime() + "')");
return Result.success("菜品添加成功", dish);
} else {
Dish dish = dishMapper.selectById(request.getId());
if (dish == null) {
return Result.error("菜品不存在");
}
dish.setName(request.getName());
dish.setDescription(request.getDescription());
dish.setPrice(request.getPrice());
dish.setImage(request.getImage());
dish.setStatus(request.getStatus());
dish.setUpdateTime(LocalDateTime.now());
dishMapper.updateById(dish);
sparkSession.sql("UPDATE dish_analytics SET price = " + dish.getPrice() + " WHERE dish_id = " + dish.getId());
return Result.success("菜品更新成功", dish);
}
}
}
六、部分文档展示
七、END
💕💕文末获取源码联系计算机编程果茶熊