苍穹外卖学习笔记(十三)

devtools/2024/10/18 12:25:11/

三. 导入商品浏览功能代码

由于user的Controller与admin的相同,记得修改RestController注释

1. 查询分类

CategoryController

java">package com.sky.controller.user;import com.sky.entity.Category;
import com.sky.result.Result;
import com.sky.service.CategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;/*** @author Jie.* @description: TODO* @date 2024/9/24* @version: 1.0*/
@RestController("userCategoryController")
@RequestMapping("/user/category")
@Api(tags = "分类管理")
@Slf4j
public class CategoryController {@Autowiredprivate CategoryService categoryService;@GetMapping("/list")@ApiOperation("条件查询")public Result<List<Category>> listCategory(Integer type) {log.info("条件查询:type={}", type);List<Category> list = categoryService.listCategory(type);return Result.success(list);}}

业务层方法与admin的相同,使用同一个

2. 根据分类ID查询菜品

Controller

java">package com.sky.controller.user;import com.sky.constant.StatusConstant;
import com.sky.entity.Dish;
import com.sky.result.Result;
import com.sky.service.DishService;
import com.sky.vo.DishVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;/*** @author Jie.* @description: TODO* @date 2024/9/25* @version: 1.0*/
@RestController("userDishController")
@RequestMapping("/user/dish")
@Api(tags = "菜品管理")
@Slf4j
public class DishController {@Autowiredprivate DishService dishService;/*** 根据分类id查询菜品*/@GetMapping("/list")@ApiOperation("根据分类id查询菜品")public Result<List<DishVO>> list(Long categoryId) {Dish dish = new Dish();dish.setCategoryId(categoryId);dish.setStatus(StatusConstant.ENABLE);List<DishVO> list = dishService.listWithFlavor(dish);return Result.success(list);}
}

Service

java">/**
* 根据菜品id查询菜品
*/
List<DishVO> listWithFlavor(Dish dish);

Impl

java">/*** 根据菜品id查询菜品*/@Overridepublic List<DishVO> listWithFlavor(Dish dish) {// 查询菜品LambdaQueryWrapper<Dish> queryWrapper = new LambdaQueryWrapper<>();queryWrapper.eq(Dish::getCategoryId, dish.getCategoryId());queryWrapper.eq(Dish::getStatus, StatusConstant.ENABLE);List<Dish> dishes = dishMapper.selectList(queryWrapper);List<DishVO> dishVOList = new ArrayList<>();for (Dish d : dishes) {DishVO dishVO = new DishVO();BeanUtils.copyProperties(d, dishVO);// 查询口味LambdaQueryWrapper<DishFlavor> flavorQueryWrapper = new LambdaQueryWrapper<>();flavorQueryWrapper.eq(DishFlavor::getDishId, d.getId());List<DishFlavor> flavors = dishFlavorMapper.selectList(flavorQueryWrapper);// 封装结果dishVO.setFlavors(flavors);dishVOList.add(dishVO);}return dishVOList;}

http://www.ppmy.cn/devtools/117444.html

相关文章

【最基础最直观的排序 —— 选择排序算法】

最基础最直观的排序 —— 选择排序算法 选择排序算法是一种简单直观的排序算法。其基本思想是每一次从待排序的数据元素中选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;存放在序列的起始位置&#xff0c;然后&#xff0c;再从剩余未排序元素中继续寻找最小&a…

机器学习 and 深度学习

机器学习&#xff08;Machine Learning, ML&#xff09;和深度学习&#xff08;Deep Learning, DL&#xff09;是人工智能领域中的两个重要分支&#xff0c;它们之间存在一定的联系与区别。 机器学习 机器学习是指让计算机通过数据来“学习”如何完成特定任务的技术。它依赖于…

智能软件开启精准品牌控价

在当今竞争激烈的商业世界中&#xff0c;品牌的价值如同璀璨的明珠&#xff0c;需要精心呵护。而价格管控&#xff0c;则是守护这颗明珠的关键防线。 当面对众多的产品和 SKU 时&#xff0c;传统的人力监测已显得力不从心。此时&#xff0c;力维网络自主开发的数据监测系统如同…

供电系统中电能质量监测的重要性与实践

王小姐 18721098782 在供电系统中&#xff0c;电力质量无疑是备受关注的焦点。它宛如整个电网系统的生命线&#xff0c;直接关系到电网能否稳定运行&#xff0c;为社会生产和生活提供持续、可靠的电力支持。 良好的用电质量是电网稳定运行的坚实保障。想象一下&#xff0c;一…

气膜儿童乐园:亲子互动的新兴乐土—轻空间

在亲子乐园中&#xff0c;气膜儿童乐园以其独特的设计和灵活的功能&#xff0c;成为孩子和家长们的理想去处。这个轻盈而充满乐趣的空间&#xff0c;不仅为孩子们提供了丰富的游玩选择&#xff0c;也为家长创造了一个舒适的陪伴环境。 全天候舒适体验 气膜儿童乐园的结构特点使…

c++ 使用 Graham 扫描的凸包(Convex Hull using Graham Scan)

先决条件&#xff1a; 如何检查两个给定的线段是否相交&#xff1f; c https://blog.csdn.net/hefeng_aspnet/article/details/141713655 java https://blog.csdn.net/hefeng_aspnet/article/details/141713762 python https://blog.csdn.net/hefeng_aspnet/article/details/…

神奇的可变模板参数的应用(C++标准库双向链表 list 中的emplace函数实现)

我们先来看一个可以构造任意对象的函数&#xff1a; /// <summary> /// 可以构造任意对象的函数 /// </summary> /// <typeparam name"MyClass">要转换对象的类型</typeparam> /// <typeparam name"...MyClassConstructorParameterT…

用Python实现运筹学——Day 3: 线性规划模型构建

一、学习内容 线性规划模型构建的步骤与技巧 线性规划&#xff08;Linear Programming, LP&#xff09;模型构建是运筹学中的核心内容&#xff0c;通常用于求解资源的最优分配问题。要从实际问题中提取出一个线性规划模型&#xff0c;需要按照以下步骤进行&#xff1a; 问题描…