瑞吉外卖-移动端菜品展示功能,购物车添加菜品及修改等功能,用户下单功能及历史订单派送功能

整理记录下学习整个瑞吉外卖项目,详细代码可在我的Gitee仓库瑞吉外卖实战克隆下载学习使用!

12.菜品展示

12.1 需求分析

![[Pasted image 20230304211220.png]]

12.2 更改前台页面使其正常显示

由于购物车功能还未进行开发,所以修改main.js中的cartListJson函数中访问固定数据,如图
![[Pasted image 20230305102615.png]]
重启清除缓存后如图![[Pasted image 20230305103748.png]]

12.3 修改查询菜品方法

12.3.1 代码开发

前台访问的是查询菜品接口方法list,但移动端还需要菜品的口味信息,所以必须得修改DishController中原有的方法,修改如下:

    @GetMapping("/list")  
    public Result<List<DishDto>> list(Dish dish) {
     
        List<DishDto> dishDtoList;  
        //构造查询条件  
        LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>();  
        queryWrapper.eq(dish.getCategoryId() != null, Dish::getCategoryId, dish.getCategoryId());  
        //添加条件,查询状态为1(起售状态)的菜品  
        queryWrapper.eq(Dish::getStatus, 1);  
        //添加排序条件  
        queryWrapper.orderByAsc(Dish::getSort).orderByDesc(Dish::getUpdateTime);  
        List<Dish> list = dishService.list(queryWrapper);  
        dishDtoList = list.stream().map((item) -> {
     
            DishDto dishDto = new DishDto();  
            BeanUtils.copyProperties(item, dishDto);  
            Long categoryId = item.getCategoryId();//分类id  
            //当前菜品的id  
            Long dishId = item.getId();  
            LambdaQueryWrapper<DishFlavor> lambdaQueryWrapper = new LambdaQueryWrapper<>();  
            lambdaQueryWrapper.eq(DishFlavor::getDishId, dishId);  
            //SQL:select * from dish_flavor where dish_id = ?  
            List<DishFlavor> dishFlavorList = dishFlavorService.list(lambdaQueryWrapper);  
            dishDto.setFlavors(dishFlavorList);  
            return dishDto;  
        }).collect(Collectors.toList());  
        return Result.success(dishDtoList);  
    }

12.3.2 测试

  • 测试后如图,点击添加规格有口味信息来选择,![[Pasted image 20230305104045.png]]

12.4 查询套餐

12.4.1 代码开发

SetmealController编写查询套餐代码,如下:

@GetMapping("/list")  
    public Result<List<Setmeal>> list(Setmeal setmeal) {
     
        LambdaQueryWrapper<Setmeal> queryWrapper = new LambdaQueryWrapper<>();  
        queryWrapper.eq(setmeal.getCategoryId() != null, Setmeal::getCategoryId, setmeal.getCategoryId());  
        queryWrapper.eq(setmeal.getStatus() != null, Setmeal::getStatus, setmeal.getStatus());  
        queryWrapper.orderByDesc(Setmeal::getUpdateTime);  
        List<Setmeal> list = setmealService.list(queryWrapper);  
        return Result.success(list);  
    }

12.4.2 测试

如图所示,不再报错
![[Pasted image 20230305110950.png]]

13. 购物车模块

13.1需求分析

![[Pasted image 20230305110759.png]]

13.2 数据模型

购物车对应表为shopping_cart表,结构如下:
![[Pasted image 20230305111150.png]]

13.3 代码开发

13.3.1 导入实体类或编写实体类

@Data  
public class ShoppingCart implements Serializable {
     
    private static final long serialVersionUID = 1L;  
    private Long id;  
    //名称  
    private String name;  
    //用户id  
    private Long userId;  
    //菜品id  
    private Long dishId;  
    //套餐id  
    private Long setmealId;  
    //口味  
    private String dishFlavor;  
    //数量  
    private Integer number;  
    //金额  
    private BigDecimal amount;  
    //图片  
    private String image;  
    private LocalDateTime createTime;  
}

13.3.2 新建对应的Mapper、Service及实现类和controller类

这里自行建立就行,和之前一样

13.3.3 购物车添加功能

  • controller编写添加功能,如下:
@Slf4j  
@RestController  
@RequestMapping("/shoppingCart")  
@RequiredArgsConstructor  
public class ShoppingCartController {
     
    private final ShoppingCartService shoppingCartService;  
    /**  
     * 添加购物车  
     * @param shoppingCart  
     * @return  
     */  
    @PostMapping("/add")  
    public Result<ShoppingCart> add(@RequestBody ShoppingCart shoppingCart){
     
        log.info("购物车数据:{}",shoppingCart);  
        //设置用户id,指定当前是哪个用户的购物车数据  
        Long currentId = BaseContext.getCurrentId();  
        shoppingCart.setUserId(currentId);  
        Long dishId = shoppingCart.getDishId();  
        LambdaQueryWrapper<ShoppingCart> queryWrapper = new LambdaQueryWrapper<>();  
        queryWrapper.
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: 要使用QQ邮箱来进行黑马瑞吉外卖移动端验证码登录,您需要按照以下步骤进行操作。 首先,在黑马瑞吉外卖移动应用程序中选择使用验证码登录选项。 然后,系统会要求您输入您的手机号码。请输入与您的QQ邮箱绑定的手机号码。 接下来,系统将会向您的QQ邮箱发送一封包含验证码的电子邮件。请在移动应用程序中等待几秒钟,确保您的QQ邮箱可以收到邮件。 打开您的QQ邮箱,并查找名为“黑马瑞吉外卖验证码”的邮件。请注意,有时候邮件可能会被归类到垃圾邮件或其他文件夹中,请确保您检查所有文件夹。 在邮件中,您将找到一个验证码。将该验证码复制,并返回到黑马瑞吉外卖移动应用程序。 在应用程序中,粘贴您刚才复制的验证码,并点击“确认”按钮。 系统将根据您输入的验证码验证您的身份。如果验证码输入正确,您将成功登录黑马瑞吉外卖移动应用程序。 请注意,验证码一般在发送后几分钟内失效。如果您在一定时间内没有收到邮件或验证码已失效,请尝试重新请求或重新发送验证码。 这样,您就可以使用您的QQ邮箱来进行黑马瑞吉外卖移动端验证码登录了。如果您遇到任何问题,请及时联系黑马瑞吉外卖的客户支持。 ### 回答2: 黑马瑞吉外卖是一家提供外卖服务的公司,为了提高用户的账户安全性,他们在移动端推出了验证码登录功能用户可以选择使用qq邮箱进行验证码登录。 用户移动端打开黑马瑞吉外卖的应用后,选择登录界面,并选择验证码登录选项。接下来,用户需要点击“使用qq邮箱登录”的按钮。 在点击按钮后,应用会要求用户输入他们的qq邮箱地址。用户需要输入正确的邮箱地址,并点击确认。系统会验证该邮箱是否存在以及是否正确。 验证通过后,系统会向用户的qq邮箱发送一封邮件,邮件中包含一个验证码。用户需要打开邮箱,找到这封邮件,复制验证码并返回外卖应用。 用户需要粘贴该验证码,并点击确认。系统会对验证码进行验证,如果验证码正确,用户将成功登录外卖应用,并可开始使用各种功能。 通过验证码登录的方式,账户的安全性得到了提高。因为只有用户本人能够收到并使用qq邮箱中的验证码,在他人无法猜测的情况下,他人无法登录用户的账户。 同时,使用qq邮箱登录还具有方便性。许多用户已经有自己的qq邮箱,不需要再注册新的账户,可以直接使用已有的qq邮箱进行登录,省去了注册的时间和麻烦。 总之,黑马瑞吉外卖移动端验证码登录使用qq邮箱的功能保证了用户账户的安全性,同时也提供了便利的登录方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值