基于Android的大学食堂点餐 | 选错技术栈延毕vs选对SpringBoot+uni-app保研:大学食堂点餐毕设天壤之别

62 阅读4分钟

💖💖作者:计算机毕业设计江挽 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目

基于Android的大学食堂点餐系统介绍

《大学食堂点餐》系统是一个基于SpringBoot框架和uni-app前端技术开发的现代化校园餐饮服务平台,该系统采用C/S和B/S混合架构模式,为大学生提供便捷高效的线上点餐服务。系统通过MySQL数据库存储和管理食堂商家信息、菜品数据、用户订单等核心业务数据,实现了从菜品浏览到订单支付的完整业务流程。平台支持多商家入驻模式,学生用户可以通过微信小程序或安卓客户端浏览不同食堂的菜品信息,根据个人喜好进行分类筛选和在线下单。系统具备完善的订单管理功能,支持订单状态实时跟踪、取餐提醒等实用功能。管理端提供系统管理、商家管理、菜品分类管理等后台功能,确保平台稳定运行。个人中心模块允许用户管理个人信息、查看历史订单、收藏喜爱菜品等个性化服务。整个系统界面简洁友好,操作流程符合大学生使用习惯,有效提升了校园餐饮服务的数字化水平。

基于Android的大学食堂点餐系统演示视频

演示视频

基于Android的大学食堂点餐系统演示图片

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

基于Android的大学食堂点餐系统代码展示

import org.apache.spark.sql.SparkSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@RestController
@RequestMapping("/api")
public class FoodOrderController {
    
    private SparkSession spark = SparkSession.builder()
            .appName("FoodOrderAnalysis")
            .master("local[*]")
            .getOrCreate();
    
    @Autowired
    private OrderService orderService;
    
    @Autowired
    private FoodService foodService;
    
    @Autowired
    private UserService userService;
    
    @PostMapping("/order/create")
    public Result createOrder(@RequestBody OrderRequest orderRequest) {
        Order order = new Order();
        order.setUserId(orderRequest.getUserId());
        order.setCanteenId(orderRequest.getCanteenId());
        order.setOrderTime(LocalDateTime.now());
        order.setStatus("待支付");
        BigDecimal totalAmount = BigDecimal.ZERO;
        List<OrderItem> orderItems = new ArrayList<>();
        for (OrderItemRequest itemRequest : orderRequest.getItems()) {
            Food food = foodService.getById(itemRequest.getFoodId());
            if (food == null || food.getStock() < itemRequest.getQuantity()) {
                return Result.error("菜品库存不足");
            }
            OrderItem orderItem = new OrderItem();
            orderItem.setFoodId(itemRequest.getFoodId());
            orderItem.setFoodName(food.getName());
            orderItem.setQuantity(itemRequest.getQuantity());
            orderItem.setPrice(food.getPrice());
            orderItem.setSubtotal(food.getPrice().multiply(BigDecimal.valueOf(itemRequest.getQuantity())));
            totalAmount = totalAmount.add(orderItem.getSubtotal());
            orderItems.add(orderItem);
            food.setStock(food.getStock() - itemRequest.getQuantity());
            foodService.updateStock(food);
        }
        order.setTotalAmount(totalAmount);
        order.setOrderNumber(generateOrderNumber());
        orderService.save(order);
        for (OrderItem item : orderItems) {
            item.setOrderId(order.getId());
            orderService.saveOrderItem(item);
        }
        return Result.success(order);
    }
    
    @GetMapping("/food/list")
    public Result getFoodList(@RequestParam Long canteenId, @RequestParam(required = false) Long categoryId) {
        List<Food> foodList;
        if (categoryId != null) {
            foodList = foodService.getByCanteenIdAndCategoryId(canteenId, categoryId);
        } else {
            foodList = foodService.getByCanteenId(canteenId);
        }
        for (Food food : foodList) {
            if (food.getStock() <= 0) {
                food.setStatus("已售完");
            } else if (food.getStock() <= 5) {
                food.setStatus("库存紧张");
            } else {
                food.setStatus("正常供应");
            }
            FoodCategory category = foodService.getCategoryById(food.getCategoryId());
            food.setCategoryName(category.getName());
            Long todaySales = orderService.getTodayFoodSales(food.getId());
            food.setTodaySales(todaySales);
            if (todaySales > 50) {
                food.setRecommended(true);
            }
        }
        foodList.sort((f1, f2) -> {
            if (f1.getRecommended() && !f2.getRecommended()) return -1;
            if (!f1.getRecommended() && f2.getRecommended()) return 1;
            return f2.getTodaySales().compareTo(f1.getTodaySales());
        });
        return Result.success(foodList);
    }
    
    @PostMapping("/order/manage")
    public Result manageOrder(@RequestParam Long orderId, @RequestParam String action, @RequestParam Long managerId) {
        Order order = orderService.getById(orderId);
        if (order == null) {
            return Result.error("订单不存在");
        }
        User manager = userService.getById(managerId);
        if (manager == null || !"管理员".equals(manager.getRole())) {
            return Result.error("权限不足");
        }
        switch (action) {
            case "confirm":
                if (!"待支付".equals(order.getStatus()) && !"已支付".equals(order.getStatus())) {
                    return Result.error("订单状态不允许确认");
                }
                order.setStatus("制作中");
                order.setConfirmTime(LocalDateTime.now());
                order.setConfirmBy(managerId);
                List<OrderItem> items = orderService.getOrderItems(orderId);
                for (OrderItem item : items) {
                    Food food = foodService.getById(item.getFoodId());
                    if (food != null) {
                        food.setSalesCount(food.getSalesCount() + item.getQuantity());
                        foodService.updateSales(food);
                    }
                }
                break;
            case "complete":
                if (!"制作中".equals(order.getStatus())) {
                    return Result.error("订单状态不允许完成");
                }
                order.setStatus("已完成");
                order.setCompleteTime(LocalDateTime.now());
                User user = userService.getById(order.getUserId());
                if (user != null) {
                    BigDecimal points = order.getTotalAmount().multiply(BigDecimal.valueOf(0.1));
                    user.setPoints(user.getPoints().add(points));
                    userService.updatePoints(user);
                }
                break;
            case "cancel":
                if ("已完成".equals(order.getStatus()) || "已取消".equals(order.getStatus())) {
                    return Result.error("订单状态不允许取消");
                }
                order.setStatus("已取消");
                order.setCancelTime(LocalDateTime.now());
                order.setCancelBy(managerId);
                List<OrderItem> cancelItems = orderService.getOrderItems(orderId);
                for (OrderItem item : cancelItems) {
                    Food food = foodService.getById(item.getFoodId());
                    if (food != null) {
                        food.setStock(food.getStock() + item.getQuantity());
                        foodService.updateStock(food);
                    }
                }
                break;
            default:
                return Result.error("无效的操作类型");
        }
        orderService.update(order);
        return Result.success("操作成功");
    }
    
    private String generateOrderNumber() {
        return "FO" + System.currentTimeMillis() + (int)(Math.random() * 1000);
    }
}

基于Android的大学食堂点餐系统文档展示

在这里插入图片描述

💖💖作者:计算机毕业设计江挽 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目