java 瑞吉外卖 day5 套餐管理业务 套餐新增,套餐分页查询 套餐修改 套餐停售起售设置 短信服务

新增套餐

准备工作:

 

 

 

 

 

套餐信息分页查询

 前面已经写了好几个分页查询了,这里查询的关键点,是套餐分类名称,不在套餐表中,我们要到别的表里拿,然后封装进setmealDto

@GetMapping("/page")
public R page(int page,int pageSize,String name){

    Page<Setmeal> pageInfo =new Page<>(page,pageSize);
    Page<SetmealDto> dtoPage =new Page<>();

    LambdaQueryWrapper<Setmeal> queryWrapper =new LambdaQueryWrapper<>();
    //如果有传name就增加name筛选
    queryWrapper.eq(null!=name,Setmeal::getName,name);
    //按照更新时间降序
    queryWrapper.orderByDesc(Setmeal::getUpdateTime);

    setmealService.page(pageInfo,queryWrapper);
    //将装配好pageInfo 拷贝到dtoPage里 ,records 我们自行操作
    BeanUtils.copyProperties(pageInfo,dtoPage,"records");

    List<Setmeal> setmeals = pageInfo.getRecords();
    //将每页个setmeal都拷贝到setmealDto里,并且查询对应的categoryName然后封装进setmealDto,在合并成集合
    List<SetmealDto> setmealDtos = setmeals.stream().map((item) -> {

        SetmealDto setmealDto = new SetmealDto();
        BeanUtils.copyProperties(item, setmealDto);

        Long id = item.getCategoryId();
        Category category = categoryService.getById(id);
        String categoryName = category.getName();
        setmealDto.setCategoryName(categoryName);
        return setmealDto;
    }).toList();

    //将我们处理完成的集合,设置成新page的新records
    dtoPage.setRecords(setmealDtos);

    return new R(1,"分页查询成功",dtoPage);

}

套餐删除

 SetmealService:

@Override
public void removeWithDish(List<Long> ids) {
    //首先判断查询的内容有没有状态是在售的,如果在售,就抛自定异常

    LambdaQueryWrapper<Setmeal> queryWrapper =new LambdaQueryWrapper<>();
    queryWrapper.in(Setmeal::getId,ids);
    queryWrapper.eq(Setmeal::getStatus,1);
    long count=this.count(queryWrapper);

    //如果有在售的
    if (count>0){
        throw new CustomException("某个套餐正在售卖中,请停售再删除");
    }
    //根据ids删除套餐
    this.removeByIds(ids);


    //接下来我们要删除 套餐相关菜品的数据

    LambdaQueryWrapper<SetmealDish> queryWrapper1 =new LambdaQueryWrapper<>();
    queryWrapper1.in(SetmealDish::getSetmealId,ids);

    setmealDishService.remove(queryWrapper1);

}

套餐设置批量停售或者起售

因为批量跟单个访问的请求都是一个地址,我们直接做一个方法就可以了

注意,当我们封装ids成List集合的时候,必须要用@RequestParam 否则会报错

@PostMapping("/status/{status}")
public R statusChange(@PathVariable int status,@RequestParam List<Long> ids){
    //创建setmeal集合用作修改status条件
    List<Setmeal> setmeals =new ArrayList<>();
    //遍历id并携带status封装成setmeal对象然后装进集合
    for (Long id : ids) {
        Setmeal setmeal =new Setmeal();
        setmeal.setId(id);
        setmeal.setStatus(status);
        setmeals.add(setmeal);
    }

    setmealService.updateBatchById(setmeals);

    return new R(1,"修改状态成功");

}

套餐修改

通过传入的ID进行数据回显:

SetmealServiceImpl:

@Override
public SetmealDto getWithDish(Long id) {
     //先根据id查询到套餐的数据
    Setmeal setmeal = this.getById(id);
    //拷贝到SetmealDto中
    SetmealDto setmealDto =new SetmealDto();

    BeanUtils.copyProperties(setmeal,setmealDto);

    //接下来我们查询套餐里的菜品信息
    LambdaQueryWrapper<SetmealDish> queryWrapper =new LambdaQueryWrapper<>();
    queryWrapper.eq(SetmealDish::getSetmealId,id);

    List<SetmealDish> setmealDishes = setmealDishService.list(queryWrapper);

    //将菜品信息封装进 dto
    setmealDto.setSetmealDishes(setmealDishes);

    //封装完成 返回
    return setmealDto;
}

通过页面的数据,提交封装成SetmealDto类数据保存:

SetmealServiceImpl:

public void updateWithDish(SetmealDto setmealDto){
    //首先更新我们的套餐
    this.updateById(setmealDto);

    //然后我们清除原来的套餐跟菜品联系数据 封装新的数据、
    LambdaQueryWrapper<SetmealDish> queryWrapper =new LambdaQueryWrapper<>();
    queryWrapper.eq(SetmealDish::getSetmealId,setmealDto.getId());
    setmealDishService.remove(queryWrapper);

    List<SetmealDish> setmealDishes = setmealDto.getSetmealDishes();

    List<SetmealDish> setmealDishes1 = setmealDishes.stream().map((item) -> {
        //将每个setmealDish添加上套餐id
        item.setSetmealId(setmealDto.getId());
        return item;
    }).toList();

    //把新数据添加进去
    setmealDishService.saveBatch(setmealDishes1);
}

手机验证码登录

短信发送

 

 

 

 

 

 

 修改过滤器

 

 @PostMapping("/sendMsg")
    public R sendMsg(@RequestBody User user, HttpSession session){
        //获取手机号
        String phone =user.getPhone();

        //如果手机号不为空
        if (StringUtils.isNotEmpty(phone)){
            //用ValidateCodeUtils生成随机的4位验证码
            String code = ValidateCodeUtils.generateValidateCode(4).toString();
            //这里我们只是测试,所以用log查看code然后登录就可以了
            log.info("code={}",code);
            //调用阿里云提供的短信服务API完成发送短信
//        SMSUtils.sendMessage("瑞吉外卖","",phone,code);
            //需要将生成的验证码保存到Session
            session.setAttribute(phone,code);

            return new R(1,"验证码发送成功");
        }
        return new R(0,"短信发送失败");

    }

@PostMapping("/login")//这里传了code但是用User没法接收,我们用Map接收
public R login(@RequestBody Map map,HttpSession session){
    //获取手机号
    String phone = map.get("phone").toString();
    //获取验证码
    String code = map.get("code").toString();
    //从session获得保存的验证码然后比对

    Object codeInSession = session.getAttribute(phone);

    if (codeInSession!=null&&codeInSession.equals(code)){
        //说明登录成功
        // 判断当前手机号是否为新用户,如果是就自动完成注册
        LambdaQueryWrapper<User> queryWrapper =new LambdaQueryWrapper<>();
        queryWrapper.eq(User::getPhone,phone);
        User user = userService.getOne(queryWrapper);
        if (user==null){
            user=new User();
            user.setPhone(phone);
            user.setStatus(1);
            userService.save(user);
        }
        session.setAttribute("user",user.getId());
        return new R(1,"登陆成功",user);
    }

    return new R(0,"登录失败");

}
M00SE
关注 关注
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
java瑞吉外卖项目SpringBoot
02-20
瑞吉外卖项目是一个基于Spring Boot框架的在线外卖订餐系统。该项目旨在为用户提供一个便捷、高效、安全的在线订餐体验,同时为餐厅提供一个展示菜品、接收订单、管理订单等功能的平台。 技术栈: 后端:Spring ...
瑞吉外卖SpringBoot使用邮件发送短信验证码--完善用户登录功能
06-24
黑马程序员---瑞吉外卖--SpringBoot项目 新增sendMail()方法,用户登录时使用QQ邮件发送验证码,完善用户登录功能。 亲测有效!
Java项目实战】瑞吉外卖-06 套餐管理业务开发(包含修改套餐和单个/批量停售和启售方法)
Hello World!
06-15 4174
套餐就是菜品的集合。后台系统中可以管理套餐信息,通过新增套餐功能来添加一个新的套餐,在添加套餐时需要选择当前套餐所属的套餐分类和包含的菜品,并且需要上传套餐对应的图片,在移动端会按照套餐分类来展示对应的套餐新增套餐,其实就是将新增页面录入的套餐信息插入到setmeal表,还需要向setmeal_dish表中插入套餐和菜品关联数据,所以在新增套餐时,涉及到两个表:setmeal(套餐表) setmeal_dish(套餐菜品关系表)所需要的类和接口:实体类SetmealDish、SetmealDto;Mapp
传智健康day04 预约管理-套餐管理
热门推荐
terence的博客
01-19 6万+
1. 图片存储方案 1.1 介绍 在实际开发中,我们会有很多处理不同功能的服务器。例如: 应用服务器:负责部署我们的应用 数据库服务器:运行我们的数据库 文件服务器:负责存储用户上传文件的服务器 ...
瑞吉外卖-套餐管理-修改操作
最新发布
ihopeyousuccess的博客
03-29 350
需要注意的是如果只是根据id查询Setmeal的数据,那么菜品信息就不能查询到,所以需要使用到setmealDish这一张表,将Dish也查出来。2. 显示页面原来的数据(setmeal原来的数据先显示)接下来是controller进行直接调用就好。如图所示,/后面跟的是setmeal的id。那么Controller层就直接调用就好。根据URL的id进行查询数据。首先查看网页请求的URL。所以需要注意请求路径。
关于JAVA的旅游信息管理系统
Gefangenes的博客
05-06 467
旅游系统设计分为前后网站和后台管理系统,功能点包含旅游景点信息分类展示、景点详情(地理位置、特色景点概述等)、下单预订等功能;角色分为管理员和普通用户。用户可以对旅游线路及其详细信息进行查询、预定旅游线路等。用户注册,登录查看和预订旅游路线 (未登录只能查看,下同)查看和预订旅游景点查看和预订餐饮住宿查看和预订旅游车票查看和预订旅游保险查看和预订旅游攻略留言评论.....管理员可以修改旅游线路信息、删除和增加旅游线路、增加和修改公告信息、留言评论管理等等,详细如下。
【从零开始分析项目实战】11-套餐管理业务开发
weixin_47418550的博客
05-16 569
套餐就是菜品的集合,后台系统中可以管理套餐信息,通过新增套餐功能来添加一个新的套餐,在添加套餐的时候需要选择当前套餐所属的套餐分类和包含的菜品,并且需要上传套餐对应的图片,在移动端会按照套餐分类来展示对应的套餐新增套餐,其实就是将新增页面录入的套餐信息插入到setme.
java+ElementUI前后端分离旅游项目第三天 预约管理
fegus的博客
06-08 443
学习目标:1:了解常见的图片存储方案2:掌握新增套餐实现过程3:掌握套餐分页查询实现过程4:掌握Quartz使用方式美年旅游项目,图片存储方案1:介绍(1)文件上传功能介绍2:七牛云存储(1)注册(2)新建存储空间(3)查看存储空间信息(4)开发者中心(5)鉴权(6)Java SDK操作七牛云(7)封装工具类在实际开发中,我们会有很多处理不同功能的服务器。例如:应用服务器:负责部署我们的应用数据库服务器:运行我们的数据库文件服务器:负责存储用户上传文件的服务器分服务器处理的目的是让服务器各司其职,从而提高我
最新java项目-瑞吉外卖
05-07
最新java项目-瑞吉外卖 最新java项目-瑞吉外卖最新java项目-瑞吉外卖
基于java瑞吉外卖项目源码.zip
11-02
基于java瑞吉外卖项目源码.zip基于java瑞吉外卖项目源码.zip基于java瑞吉外卖项目源码.zip基于java瑞吉外卖项目源码.zip基于java瑞吉外卖项目源码.zip
瑞吉外卖笔记day05(1)
m0_59125452的博客
10-31 58
套餐管理列表页面点击修改按钮,跳转到修改套餐页面,在修改页面回显套餐相关信息并进行修改,最后点击确定按钮完成修改操作。2、页面发送ajax请求,请求服务端,根据id查询当前套餐信息,用于套餐信息回显。1、页面发送ajax请求,请求服务端获取分类数据,用于套餐分类下拉框中数据展示。SetmealServiceImpl添加getByIdWithDish方法。SetmealController处理Get请求。在SetmealController。经过调试传过来总的数据
javaweb餐饮程序
05-20
javaweb点餐系统,前台包含购物车,菜品陈列,个人账单管理以及后台管理系统包含菜品管理及账单管理
JAVA外卖项目第三天 公共字段和分类
fegus的博客
04-24 1334
瑞吉外卖-Day03 课程内容 公共字段自动填充 新增分类 分类信息分页查询 删除分类 修改分类 1. 公共字段自动填充 1.1 问题分析 前面我们已经完成了后台系统的员工管理功能的开发,在新增员工时需要设置创建时间、创建人、修改时间、修改人等字段,在编辑员工时需要设置修改时间、修改人等字段。这些字段属于公共字段,也就是也就是在我们的系统中很多表中都会有这些字段,如下: 而针对于这些字段,我们的赋值方式为: A. 在新增数据时, 将createTime、updateTime 设置为当前时间, crea
瑞吉外卖项目: 套餐的增删改查与分页
qq_41857955的博客
05-22 2751
目录 一. 新增套餐 1.1 需求分析 1.2 数据模型 1.3 代码实现 二.套餐分页查询 三.套餐删除 四. 套餐批量起售停售 一. 新增套餐 1.1 需求分析 首先,套菜就是菜品的集合,后台系统管理套餐信息,可以新增套餐信息,添加套餐时可以选择当前套餐所属的分类与包含的菜品,并且可以上传图片,移动端按照套餐分类来展示对应套餐。 1.2 数据模型 新增套餐,就是将新增页面录入的套餐信息插入到setmeal表中,同时还需要向setmeal_dish表中插入套餐与菜品.
瑞吉外卖项目:菜品分类的增删改查与分页
qq_41857955的博客
05-12 2900
一. 新增菜品 1.1需求分析 后台系统可以管理分类信息,分类菜品分类和套餐分类。当我们在后台系统添加菜品时需要选择一个菜品分类。 当我们在后台系统中添加一个套餐时需要选择一个套餐分类,在移动端也会按照菜品分类和套 餐分类来展示对应的菜品和套餐。 同时,在后台系统的分类管理页面分别添加菜品分类与套餐分类: 添加菜品分类 添加套餐分类 数据模型: 涉及一张表Category表: 表对应的数据JavaBean为Category.java Category.jav...
Java项目实战——瑞吉外卖day05
qq_48021871的博客
07-21 559
套餐管理列表页面点击删除按钮,可以删除对应的套餐信息。--设计多表操作基本信息添加到套餐表setmeal表,关联的菜品信息添加到套餐菜品关系表setmeal_dish表。--将套餐信息进行分页展示,需要注意的是其中个别信息需要手动转换,分类id---->分类名称。--后台系统中可以管理套餐信息,通过新增套餐功能来添加一个新的套餐,在添加套餐时需要选择。--从资料中导入套餐表和套餐菜品关系表,创建相关接口和类以及控制器方法。--数据模型涉及到两个表套餐信息插入到。--套餐管理,其实就是菜品的集合。...
瑞吉外卖项目实战Day05
qq_57907966的博客
08-06 290
1.创建套餐实体类Setmeal和套餐与菜品的关系SetmealDish实体类。当点击添加菜品时,根据分类查询菜品,并且设置菜品为的排序是按照价格升序排序。需要在SetmealServiceImpl中自定义一个方法来完成。2.创建对应的mapper和servlet及其实现类。在SetmealController中调用这个方法。前面写过这个分类查询,根据前端请求的type查询。添加分页查询的条件(判断是否被删除)该表单数据包含了套餐分类和套餐内容。所以需要同时完成两张表的新增操作。...
瑞吉外卖-全网最全笔记-Day05
eadzsdad的博客
04-24 6080
黑马教程-瑞吉外卖,基于流行的Spring Boot、mybatis plus等技术框架进行开发,带领学员体验真实项目开发流程、需求分析过程和代码实现过程。能够收获:锻炼需求分析能力、编码能力、bug调试能力,增长开发经验。阿里云验证码测试。
java collection套餐(1)烩总
aiyayayyaya的博客
06-17 213
图图图图 嗯 我尽力了 各种对比 List中 HashMap vs Hashtable hashmap hashtable 线程安全? 不安全 synchronized保证线程安全 初始化默认长度 16 11 怎么扩容 2*n 2*n+1 null-key,null-value 可以null-key但只允许一个;允许null-value 都不行 结构...
瑞吉外卖day04用mybatis怎么写新增菜品
04-27
最后,在Java代码中调用Mapper接口的方法来新增菜品,例如: ``` Dish dish = new Dish(); dish.setName("鱼香肉丝"); dish.setDescription("四川传统名菜,口感鲜美"); dish.setPrice(28.0); SqlSession ...

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 优质github账号直接领取价值200$空投奖励!starknet空投规则 2923
  • mysql json字段使用以及常用json函数,配合springBoot和mybatis-plus简化开发 2795
  • java黑马头条 day5自媒体文章审核 敏感词过滤算法DFA 集成RabbitMQ实现自动审核 2706
  • java 探花交友项目实战 day3 完善个人信息 阿里云OSS文件存储 百度人脸识别 2594
  • java 微服务 Nacos配置 feign 网关&路由 2577

分类专栏

  • java 微服务 10篇
  • 黑马头条项目 5篇
  • 探花交友项目实战 5篇

最新评论

  • 优质github账号直接领取价值200$空投奖励!starknet空投规则

    普通网友: 优质好文,支持支持。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • java黑马头条 day5自媒体文章审核 敏感词过滤算法DFA 集成RabbitMQ实现自动审核

    alsdjfklasjdfoa;sd: 有代码吗,用反射没有,直接配表名字段名,

  • java黑马头条 day5自媒体文章审核 敏感词过滤算法DFA 集成RabbitMQ实现自动审核

    alsdjfklasjdfoa;sd: 直接引入依赖,用就行了,java都有封装基础算法如快排啥的。

  • java 黑马头条 day4 自媒体文章发布 自媒体文章列表查询 频道列表展示 自媒体文章-发布、修改、保存草稿 自媒体文章-根据id查询 自媒体文章-删除

    weixin_53503919: 大佬,内容列表中的时间怎么显示的,我这个时间不显示,不知道怎么弄

  • 优质github账号直接领取价值200$空投奖励!starknet空投规则

    M00SE: 你确认了你有资格吗

大家在看

  • OJ搬砖问题
  • 记某次HVV:文件上传打入内网 947
  • 以远见超越未见丨硬核盘点之2023十大网安事件
  • 在ubuntu中创建容器并挂载windows共享的文件
  • 【Docker】解决访问难题:搭建私有的Docker镜像代理 433

最新文章

  • 等有空写篇关于spring aop 的应用场景
  • 子查询就一定会让sql变慢?搞半天把7s的慢sql优化到0.4s
  • 优质github账号直接领取价值200$空投奖励!starknet空投规则
2024年3篇
2023年31篇
2022年84篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司宜昌网站优化按天计费三亚建站公司怒江SEO按天计费哪家好荆州百姓网标王哪家好湘潭百搜标王公司无锡百度标王金华建设网站公司辽阳建站多少钱金昌网站优化推广公司连云港模板网站建设报价长治企业网站设计报价安阳阿里店铺运营公司黄冈建站价格宁波网站seo优化益阳SEO按效果付费价格平顶山建设网站多少钱湖州网页设计报价黄山网站设计报价包头seo网站优化泰安网页设计多少钱曲靖网站设计模板公司安顺百度网站优化报价肇庆网站改版推荐镇江网站优化推广报价通辽外贸网站建设公司北海百度标王多少钱南通网络广告推广报价丹竹头seo网站优化价格新乡网站优化推广公司邢台高端网站设计公司歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化