黑马瑞吉外卖之分类信息的分页查询

网友投稿 315 2022-08-23

黑马瑞吉外卖之分类信息的分页查询

黑马瑞吉外卖之分类信息的分页查询

​​前端分析​​​​后端分页功能开发​​

前端分析

在对页面的员工信息处理完之后,我们就开始去处理下一个功能,对分类的功能做一个整体的开发。这是我们的分类管理的界面,现在我们去对界面的分类的展示做一个开发。可以看到是需要进行分页查询,所以我们首先去做一个数据的展示。

那就还是从前端页面展示。单纯的面向前端编程。

我们所作的就是这个界面

可以找到这个二界面大致去看看,我们先着重去看页面分页相关的。初次打开这个界面的时候一定会有一个自动的分页查询,所以我们可以去着重去看是否有自动执行的方法或者是挂载的方法。

我们找到了,挂载的方法是会在打开这个页面自动执行的。

这里调用了这个方法,我们可以点进去去查看相关的请求路径

我们找到了这个具体的请求路径,其实这个具体的请求路径是卸载一个js里面的.我们这样就可以找到怎么设置Controller的路径,以及通过上面的分析知道需要提供哪些参数了。

点开看,这就是完整的请求和携带参数。默认是查找第一页的十条数据。404的原因是我们还没写具体的后端逻辑或者没有启动服务器,就调试了页面。

这就是整体的前端分析。

后端分页功能开发

我们需要具体的实体类,这个类是分类的实体类。

对照数据库表

于是写这样的一个实体类

package com.jgdabc.entity;import com.baomidou.mybatisplus.annotation.FieldFill;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableField;import com.baomidou.mybatisplus.annotation.TableId;import lombok.Data;import lombok.Getter;import lombok.Setter;import java.io.Serializable;import java.time.LocalDateTime;/** * 分类 */@Datapublic class Category implements Serializable { private static final long serialVersionUID = 1L; private Long id; //类型 1 菜品分类 2 套餐分类 private Integer type; //分类名称 private String name; //顺序 private Integer sort; //创建时间 @TableField(fill = FieldFill.INSERT) private LocalDateTime createTime; //更新时间 @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; //创建人 @TableField(fill = FieldFill.INSERT) private Long createUser; //修改人 @TableField(fill = FieldFill.INSERT_UPDATE) private Long updateUser;//// //是否删除// private Integer isDeleted;}

实体类的里面注解的字段属性是未来做公共属性自动填充的。

然后按照模式去写三层架构。

首先数据支持dao或者说是mapper层。

package com.jgdabc.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.jgdabc.entity.Category;import org.apache.ibatis.annotations.Mapper;@Mapperpublic interface CategoryMapper extends BaseMapper {}

然后service层

package com.jgdabc.service;import com.baomidou.mybatisplus.extension.service.IService;import com.jgdabc.entity.Category;public interface CategoryService extends IService { }

service层实现

package com.jgdabc.service.impl;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import com.jgdabc.common.CustomException;import com.jgdabc.entity.Category;import com.jgdabc.entity.Dish;import com.jgdabc.entity.Setmeal;import com.jgdabc.mapper.CategoryMapper;import com.jgdabc.service.CategoryService;import com.jgdabc.service.DishService;import com.jgdabc.service.SetMealService;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;@Slf4j@Servicepublic class CategoryServiceImpl extends ServiceImpl implements CategoryService { }}

这就是mybatisplus需要定义的模式。我删除了这些方法里面之后需要的一些拓展的自定义的方法,为了不影响本次的说明。

然后我们就可以去开发Controllerl.

按照这个请求路径

package com.jgdabc.controller;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;import com.jgdabc.common.R_;import com.jgdabc.entity.Category;import com.jgdabc.service.CategoryService;import com.mysql.cj.log.Log;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import java.util.List;//分类@Slf4j@RestController@RequestMapping("/category")public class CategoryController { @Autowired /** * 新增分类 */ private CategoryService categoryService; @GetMapping("/page") public R_ page(int page,int pageSize) {// 分页构造器 Page pageinfo = new Page<>(page,pageSize);// 条件构造器 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();//添加排序条件,根据sort queryWrapper.orderByAsc(Category::getSort);// 进行分页查询 categoryService.page(pageinfo,queryWrapper); return R_.success(pageinfo); }}

我们最终还是返回R_包装的结果。

前端接收过来然后展示

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:系统学习Python——类(class)与面向对象(Object-Oriented Programing, OOP)的基础知识
下一篇:Python 容器使用的 5 个技巧和 2 个误区(python能做什么)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~