苍穹外卖项目实战(日记十一)-记录实战教程及问题的解决方法-(day3-3)完善菜品分页查询功能
菜品分页查询
(1)需求分析
(2)代码开发分析
DTO 前端给后端 ,VO 后端给前端;
vo是进行页面展示,dto是前后端数据交互的,pojo是对应数据库表字段
(3)DishController完善
位置:sky-server/src/main/java/com/sky/controller/admin/DishController.java
添加的代码:
/*** 分页查询菜品* @param dishPageQueryDTO* @return*/
@GetMapping("/page")
@ApiOperation("分页查询菜品")
public Result<PageResult> page(DishPageQueryDTO dishPageQueryDTO){log.info("分页查询菜品:{}", dishPageQueryDTO);PageResult pageResult = dishService.pageQuery(dishPageQueryDTO);return Result.success(pageResult);
}
示意图:
(4)DishService完善
位置:sky-server/src/main/java/com/sky/service/DishService.java
添加的代码:
/*** 分页查询菜品信息* @param dishPageQueryDTO* @return*/
PageResult pageQuery(DishPageQueryDTO dishPageQueryDTO);
示意图:
(5)DishServiceimpl完善
位置:sky-server/src/main/java/com/sky/service/impl/DishServiceimpl.java
添加的代码:
/*** 分页查询菜品信息* @param dishPageQueryDTO* @return*/
public PageResult pageQuery(DishPageQueryDTO dishPageQueryDTO) {PageHelper.startPage(dishPageQueryDTO.getPage(), dishPageQueryDTO.getPageSize());Page<DishVO> page = dishMapper.pageQuery(dishPageQueryDTO);return new PageResult(page.getTotal(), page.getResult());
}
示意图:
(6)DishMapper完善
位置:sky-server/src/main/resources/mapper/DishMapper.xml
添加的代码:
<select id="pageQuery" resultType="com.sky.vo.DishVO">select d.* , c.name as categoryName from dish d left outer join category c on d.category_id = c.id<where><if test="name != null">and d.name like concat('%', #{name}, '%')</if><if test="categoryId != null">and d.category_id = #{categoryId}</if><if test="status != null">and d.status = #{status}</if></where>order by d.create_time desc
</select>
示意图:
(7)测试菜品分页查询功能
1、启动(DeBug)项目,打开swagger接口文档
2、swagger接口文档测试
找到以下位置,输入数据,点击发送
响应码为401,表示JWT令牌过期,需要更换;
响应码为500,说明代码有误,可以检查一下SQL语句;
响应码为200,响应内容有菜品数据,表示成功!
网址:苍穹外卖项目接口文档
3、前后端联调
打开前端网址:菜品管理
查看控制台
有数据出现,即说明菜品分页查询功能成功!
注意:没有图片,学到后面修改时候把所有图片重新修改为自己图片就好了,因为那是老师的OSS路径的东西,不是我们OSS的东西
之前的数据是老师的图片阿里云url,不是你的阿里云的,所以不显示。先上传图片到OSS,把数据库image那栏改成自己的oss中的URL即可(这一步可忽略,后续会解决)