一款智能点餐系统设计 | 【毕业设计选题推荐】毕设项目 毕设选题 附源码 课程教学+远程部署+文档指点+ppt java Python spring boot

50 阅读4分钟

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

一款智能点餐系统介绍

本智能点餐系统采用SpringBoot+Vue的前后端分离架构设计,为餐饮行业提供了一套完整的数字化点餐解决方案。系统后端基于Java语言开发,使用SpringBoot框架构建RESTful API接口,集成MyBatis持久层框架实现与MySQL数据库的高效交互,前端采用Vue.js框架结合ElementUI组件库打造现代化的用户界面,实现了响应式设计和良好的用户体验。系统核心功能涵盖用户注册登录、菜品信息展示、菜品分类管理、轮播图管理、订单处理以及个人中心等模块,通过B/S架构模式支持多终端访问,用户可以通过Web浏览器进行在线点餐操作。系统采用模块化设计思想,各功能模块相对独立又紧密协作,数据库设计遵循范式理论,确保数据的一致性和完整性,同时系统具备良好的扩展性和维护性,为餐厅经营者提供了高效的点餐管理平台,为顾客提供了便捷的点餐体验。

一款智能点餐系统演示视频

演示视频

一款智能点餐系统演示图片

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

一款智能点餐系统代码展示

import org.apache.spark.sql.SparkSession;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.factory.annotation.Autowired;

@RestController
public class UserController {
    @Autowired
    private UserService userService;
    private SparkSession spark = SparkSession.builder().appName("IntelligentOrderingSystem").master("local[*]").getOrCreate();
    
    @PostMapping("/api/user/login")
    public ResponseEntity<?> userLogin(@RequestBody UserLoginRequest request) {
        String username = request.getUsername();
        String password = request.getPassword();
        if (username == null || username.trim().isEmpty()) {
            return ResponseEntity.badRequest().body("用户名不能为空");
        }
        if (password == null || password.trim().isEmpty()) {
            return ResponseEntity.badRequest().body("密码不能为空");
        }
        User user = userService.findByUsername(username);
        if (user == null) {
            return ResponseEntity.badRequest().body("用户不存在");
        }
        String encodedPassword = DigestUtils.md5DigestAsHex(password.getBytes());
        if (!encodedPassword.equals(user.getPassword())) {
            return ResponseEntity.badRequest().body("密码错误");
        }
        String token = TokenUtil.generateToken(user.getId());
        LoginResponse response = new LoginResponse();
        response.setToken(token);
        response.setUser(user);
        userService.updateLastLoginTime(user.getId());
        return ResponseEntity.ok(response);
    }
    
    @PostMapping("/api/user/register")
    public ResponseEntity<?> userRegister(@RequestBody UserRegisterRequest request) {
        String username = request.getUsername();
        String password = request.getPassword();
        String phone = request.getPhone();
        if (username == null || username.trim().isEmpty()) {
            return ResponseEntity.badRequest().body("用户名不能为空");
        }
        if (password == null || password.trim().isEmpty()) {
            return ResponseEntity.badRequest().body("密码不能为空");
        }
        if (phone == null || phone.trim().isEmpty()) {
            return ResponseEntity.badRequest().body("手机号不能为空");
        }
        User existUser = userService.findByUsername(username);
        if (existUser != null) {
            return ResponseEntity.badRequest().body("用户名已存在");
        }
        User phoneUser = userService.findByPhone(phone);
        if (phoneUser != null) {
            return ResponseEntity.badRequest().body("手机号已注册");
        }
        User newUser = new User();
        newUser.setUsername(username);
        newUser.setPassword(DigestUtils.md5DigestAsHex(password.getBytes()));
        newUser.setPhone(phone);
        newUser.setCreateTime(new Date());
        newUser.setStatus(1);
        userService.save(newUser);
        return ResponseEntity.ok("注册成功");
    }
}

@RestController
public class DishController {
    @Autowired
    private DishService dishService;
    private SparkSession spark = SparkSession.builder().appName("DishAnalysis").master("local[*]").getOrCreate();
    
    @GetMapping("/api/dish/list")
    public ResponseEntity<?> getDishList(@RequestParam(defaultValue = "1") Integer page,
                                       @RequestParam(defaultValue = "10") Integer size,
                                       @RequestParam(required = false) String categoryId,
                                       @RequestParam(required = false) String keyword) {
        Page<Dish> pageInfo = new Page<>(page, size);
        QueryWrapper<Dish> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("status", 1);
        if (categoryId != null && !categoryId.trim().isEmpty()) {
            queryWrapper.eq("category_id", categoryId);
        }
        if (keyword != null && !keyword.trim().isEmpty()) {
            queryWrapper.like("name", keyword).or().like("description", keyword);
        }
        queryWrapper.orderByDesc("create_time");
        Page<Dish> result = dishService.page(pageInfo, queryWrapper);
        List<Dish> dishList = result.getRecords();
        for (Dish dish : dishList) {
            dish.setViewCount(dish.getViewCount() + 1);
            dishService.updateById(dish);
        }
        return ResponseEntity.ok(result);
    }
    
    @PostMapping("/api/dish/add")
    public ResponseEntity<?> addDish(@RequestBody DishAddRequest request) {
        String name = request.getName();
        String description = request.getDescription();
        BigDecimal price = request.getPrice();
        String categoryId = request.getCategoryId();
        String image = request.getImage();
        if (name == null || name.trim().isEmpty()) {
            return ResponseEntity.badRequest().body("菜品名称不能为空");
        }
        if (price == null || price.compareTo(BigDecimal.ZERO) <= 0) {
            return ResponseEntity.badRequest().body("菜品价格必须大于0");
        }
        if (categoryId == null || categoryId.trim().isEmpty()) {
            return ResponseEntity.badRequest().body("菜品分类不能为空");
        }
        Dish existDish = dishService.findByName(name);
        if (existDish != null) {
            return ResponseEntity.badRequest().body("菜品名称已存在");
        }
        Dish newDish = new Dish();
        newDish.setName(name);
        newDish.setDescription(description);
        newDish.setPrice(price);
        newDish.setCategoryId(categoryId);
        newDish.setImage(image);
        newDish.setStatus(1);
        newDish.setViewCount(0);
        newDish.setSalesCount(0);
        newDish.setCreateTime(new Date());
        dishService.save(newDish);
        return ResponseEntity.ok("添加成功");
    }
}

@RestController
public class OrderController {
    @Autowired
    private OrderService orderService;
    @Autowired
    private OrderItemService orderItemService;
    @Autowired
    private DishService dishService;
    private SparkSession spark = SparkSession.builder().appName("OrderAnalysis").master("local[*]").getOrCreate();
    
    @PostMapping("/api/order/create")
    public ResponseEntity<?> createOrder(@RequestBody CreateOrderRequest request) {
        String userId = request.getUserId();
        List<OrderItemRequest> items = request.getItems();
        String remark = request.getRemark();
        if (userId == null || userId.trim().isEmpty()) {
            return ResponseEntity.badRequest().body("用户ID不能为空");
        }
        if (items == null || items.isEmpty()) {
            return ResponseEntity.badRequest().body("订单商品不能为空");
        }
        BigDecimal totalAmount = BigDecimal.ZERO;
        for (OrderItemRequest item : items) {
            String dishId = item.getDishId();
            Integer quantity = item.getQuantity();
            if (dishId == null || quantity == null || quantity <= 0) {
                return ResponseEntity.badRequest().body("商品信息有误");
            }
            Dish dish = dishService.getById(dishId);
            if (dish == null || dish.getStatus() != 1) {
                return ResponseEntity.badRequest().body("商品不存在或已下架");
            }
            BigDecimal itemAmount = dish.getPrice().multiply(new BigDecimal(quantity));
            totalAmount = totalAmount.add(itemAmount);
        }
        Order order = new Order();
        order.setUserId(userId);
        order.setTotalAmount(totalAmount);
        order.setStatus(1);
        order.setRemark(remark);
        order.setCreateTime(new Date());
        orderService.save(order);
        for (OrderItemRequest item : items) {
            OrderItem orderItem = new OrderItem();
            orderItem.setOrderId(order.getId());
            orderItem.setDishId(item.getDishId());
            orderItem.setQuantity(item.getQuantity());
            Dish dish = dishService.getById(item.getDishId());
            orderItem.setPrice(dish.getPrice());
            orderItem.setAmount(dish.getPrice().multiply(new BigDecimal(item.getQuantity())));
            orderItemService.save(orderItem);
            dish.setSalesCount(dish.getSalesCount() + item.getQuantity());
            dishService.updateById(dish);
        }
        return ResponseEntity.ok(order);
    }
}

一款智能点餐系统文档展示

在这里插入图片描述

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