Java项目-瑞吉外卖Day6
作者:mmseoamin日期:2023-12-14

导入用户地址功能,为用户添加地址:

添加AddressBook实体类,创建相关service,mapper,serviceImpl,controller类。

Java项目-瑞吉外卖Day6,第1张

controller类直接使用的资料提供的代码。

Java项目-瑞吉外卖Day6,第2张

实现菜品展示移动端开发:

看到前端发送了两个请求,由于第二个请求没有定义后端接口,所以页面无法正常显示。

Java项目-瑞吉外卖Day6,第3张

暂时改成静态资源

Java项目-瑞吉外卖Day6,第4张Java项目-瑞吉外卖Day6,第5张

显示效果:

Java项目-瑞吉外卖Day6,第6张

由于显示在前端的菜品没有口味信息,修改dishController中的list方法。

将返回的元素类型改为DishDto,并查询dish对应的dish_flavor表对dishDto进行赋值。

Java项目-瑞吉外卖Day6,第7张

修改后发现移动端无法显示套餐,于是在setmealController添加list对应接口。

Java项目-瑞吉外卖Day6,第8张

实现添加购物车功能:

建立ShoppingCart实体类及相关service,serviceImpl,mapper,controller类。

Java项目-瑞吉外卖Day6,第9张

后端代码:

思路是获取前端的shoppingCart,其实是dish或setmeal,判断时菜品还是套餐,最后保存到shopping_cart表中。这里有一些bug,判断shopping_cart是否有相同菜品时,只是根据id查询,并不包含口味信息,会导致不同口味的同一菜品计入到相同的shopping_cart中。

Java项目-瑞吉外卖Day6,第10张

Java项目-瑞吉外卖Day6,第11张

PS:减少购物车菜品还没实现。

实现查看购物车功能:

后端代码:

根据用户id查询购物车返回,根据createTime排序。所以为shoppingCart实体类的属性添加注解。

Java项目-瑞吉外卖Day6,第12张

并修改元注解类,因为shoppingCart实体类没有除了createTime以外其他的属性。

Java项目-瑞吉外卖Day6,第13张

Java项目-瑞吉外卖Day6,第14张

实现清空购物车功能:
Java项目-瑞吉外卖Day6,第15张

实现用户下单功能:

创建实体类order和详细订单表orderDetail。并创建相应相关service,serviceImpl,mapper,controller类。

图略

前端请求

Java项目-瑞吉外卖Day6,第16张

负载

Java项目-瑞吉外卖Day6,第17张

后端对接:

Java项目-瑞吉外卖Day6,第18张

实现submit方法:

思路:

前端传过来的数据包含addressBook

先获取当前用户Id,查看用户的购物车。再根据用户id查看用户地址数据,判断是否相同。
Java项目-瑞吉外卖Day6,第19张

构造orderDetails数据和orders数据。保存进表并删除用户的购物车。

Java项目-瑞吉外卖Day6,第20张

Java项目-瑞吉外卖Day6,第21张