当前位置: 首页 > news >正文

java 瑞吉外卖day6 移动端 套餐 菜品展示 购物车加减,清空

导入用户地址簿相关功能代码

 

 

 

菜品展示

 

 购物车模块

 

 

 

 加入购物车:

@PostMapping("/add")
public R add(@RequestBody ShoppingCart shoppingCart){
    //获取当前线程用户的id并设置到shoppingCart中
    Long currentId = BaseContext.getCurrentId();

    shoppingCart.setUserId(currentId);
    //首先我们要判断当前购物车是否已经有同样的dish或者setmeal
    LambdaQueryWrapper<ShoppingCart> lambdaQueryWrapper=new LambdaQueryWrapper<>();
    //先判断
    lambdaQueryWrapper.eq(ShoppingCart::getUserId,shoppingCart.getUserId());
    //如果有dishID说明是添加的是菜品,没有则表示是套餐
    if (shoppingCart.getDishId()!=null){
        lambdaQueryWrapper.eq(ShoppingCart::getDishId,shoppingCart.getDishId());
    }else {
        lambdaQueryWrapper.eq(ShoppingCart::getSetmealId,shoppingCart.getSetmealId());
    }

    ShoppingCart shoppingCart1 = shoppingCartService.getOne(lambdaQueryWrapper);
    //如果查出来了说明当前已经有了,我们把number+1
    if (shoppingCart1!=null){
        shoppingCart1.setNumber(shoppingCart1.getNumber()+1);
        shoppingCartService.updateById(shoppingCart1);
    }else {
        //如果没查出来说明没有,我们存储数据 初始化number为1
        shoppingCart.setNumber(1);

        //给控的shoppingCart1赋值,保持两种情况返回的都是shoppingCart1
        shoppingCart1=shoppingCart;
        shoppingCartService.save(shoppingCart1);
    }


    return new R(1,"添加菜品或套餐成功",shoppingCart1);

数量减少

@PostMapping("/sub")
public R sub(@RequestBody ShoppingCart shoppingCart){
    //首先获取当前用户id
    Long currentId = BaseContext.getCurrentId();
    LambdaQueryWrapper<ShoppingCart> queryWrapper=new LambdaQueryWrapper<>();
    queryWrapper.eq(ShoppingCart::getUserId,currentId);
    //判断是dish还是setmeal
    if (shoppingCart.getDishId()!=null){
        queryWrapper.eq(ShoppingCart::getDishId,shoppingCart.getDishId());
    }else {
        queryWrapper.eq(ShoppingCart::getSetmealId,shoppingCart.getSetmealId());
    }
    ShoppingCart one = shoppingCartService.getOne(queryWrapper);
    int number=one.getNumber();
    //如果number>1就减,如果是1就删除数据
    if (number>1){
        one.setNumber(number-1);
        shoppingCartService.updateById(one);
    }else if(number==1){
        one.setNumber(0);
        shoppingCartService.removeById(one);
    }
    return new R(1,"减少成功",one);

}

清空购物车

@DeleteMapping("clean")
public R clean(){
    LambdaQueryWrapper<ShoppingCart> queryWrapper =new LambdaQueryWrapper<>();
    queryWrapper.eq(ShoppingCart::getUserId,BaseContext.getCurrentId());
    shoppingCartService.remove(queryWrapper);

    return new R(1,"清空购物车成功");


}

用户下单

 

 

 

 

相关文章:

  • Debezium系列之:打通Debezium2.0以上版本的使用技术
  • String类及常用方法
  • Rasa 基于知识库的问答 音乐百科机器人
  • 内科大深度学习期末复习笔记
  • 搭建nacos
  • Java面试--AQS
  • 电脑重装系统win11如何更改默认下载路径
  • MTI运动传感器ROS配置
  • DFS——剪枝优化迭代加深
  • 【Flutter】packages思维以及使用Java添加Android平台特定的实现在Flutter框架里的体现和运用
  • 无向图以及图的java代码实现
  • 大数据平台之Hadoop复习详细知识点
  • 四、网络层(五)IP组播
  • 513. 找树左下角的值
  • python csv模块读取/写入csv文件
  • Nacos学习笔记 (5)Nacos整合SpringBoot流程
  • 在服务器安装jupyter并在本地访问
  • MySQL索引-索引的优势和劣势
  • 基于R语言、MaxEnt模型融合技术的物种分布模拟、参数优化方法、结果分析制图与论文写作
  • 关于居住办公人口的统计技术解决方案