瑞吉外卖防坑及优化

  1. 使用LocalDataTime时druid版本冲突问题,出现此问题时,需要提高druid的版本

  2. 老师给的资料无此问题,B站下的资料有次问题菜品分类实体类中有逻辑删除字段,数据表结构中没有

    解决方法一: 删除实体类中逻辑删除的字段(简单)

    解决方法二: 数据库添加逻辑删除字段,删除方法改为逻辑删除(复杂)瑞吉外卖防坑及优化_第1张图片瑞吉外卖防坑及优化_第2张图片

  3. 菜品分类删除分类时,前端参数为ids,后端方法中参数写id的话会删除不成功,需要写成ids瑞吉外卖防坑及优化_第3张图片

  4. 在使用MultipartFile上传文件时,默认上传大小为1M,图片过大会导致上传不成功,想上传需在yml配置中,在spring:下添加此配置,添加配置后前端校验也需要修改瑞吉外卖防坑及优化_第4张图片

     瑞吉外卖防坑及优化_第5张图片

  5. 手机端登录,验证码前端请求问题,需要自己添加修改瑞吉外卖防坑及优化_第6张图片

  6. 购物车减少菜品或套餐数量时对应前端优化      瑞吉外卖防坑及优化_第7张图片     

      减少代码编写

    @PostMapping("/sub")
        public R sub(@RequestBody ShoppingCart shoppingCart){
            //设置用户id,指定当前购物车是哪个用户的数据
            Long currentId = BaseContext.getCurrentId();
            shoppingCart.setUserId(currentId);
            //查询当前菜品或套餐是否在购物车中
            Long dishId = shoppingCart.getDishId();
            LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
            lqw.eq(ShoppingCart::getUserId,currentId);
    
            if(dishId!=null){
                //添加到购物车的是菜品
                lqw.eq(ShoppingCart::getDishId,dishId);
            }else {
                //添加到购物车的是套餐
                lqw.eq(ShoppingCart::getSetmealId,shoppingCart.getSetmealId());
            }
            //查询当前菜品或套餐是否在购物车中
            ShoppingCart cartServiceOne = shoppingCartService.getOne(lqw);
            //获取number值
            Integer number = cartServiceOne.getNumber();
            //如果已存在,在原来的数量上减一
            cartServiceOne.setNumber(number-1);
            //提交修改语句
            shoppingCartService.updateById(cartServiceOne);
    
            //返回结果
            return R.success(cartServiceOne);
        }

    查询代码也要随之修改

    @GetMapping("/list")
        public R> list(){
            LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
            lqw.eq(ShoppingCart::getUserId,BaseContext.getCurrentId());
            lqw.orderByAsc(ShoppingCart::getCreateTime);
            //获取购物车数据
            List shoppingCartList = shoppingCartService.list(lqw);
            //遍历数据集合,将number为0的数据移除
            for (ShoppingCart shoppingCart : shoppingCartList) {
                if (shoppingCart.getNumber()==0){
                    Long id = shoppingCart.getId();
                    shoppingCartService.removeById(id);
                }
            }
            //删除后重新查询
            shoppingCartList = shoppingCartService.list(lqw);
            return R.success(shoppingCartList);
        }

    效果演示

你可能感兴趣的:(java,spring,后端)