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