1.如何使用mybatis-plus的原生分页插件

本文展示了Spring Boot中Controller、Service及ServiceImpl层如何实现分页查询,通过Mapper接口和XML配置进行数据库操作,并将查询结果转换为不同类型的实体对象。涉及内容包括@ApiOperation、@TokenInfo注解,PageInfo、BaseMapper接口,以及实体类和日期格式的处理。
摘要由CSDN通过智能技术生成

1.controller层

@PostMapping(value = "/list")
@ApiOperation("查询学费通知单列表")
@TokenInfo
public Result<PageInfo<BizEduTollOrderDto>> getList(@RequestBody PageInfo<BizEduTollOrderInDto> dto , @ApiIgnore HttpServletRequest req, @ApiIgnore LoginUser loginUser) {
    return bizEduPushTollOrderService.queryPage(dto.getPageDto(), dto.getPageNo(), dto.getPageSize(), req.getParameterMap(), loginUser);

}
<--------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
2.service层

Result<PageInfo> queryPage(BizEduTollOrderInDto dto,
@RequestParam(name = “pageNo”, defaultValue = “1”) Long pageNo,
@RequestParam(name = “pageSize”, defaultValue = “10”) Long pageSize, Map<String, String[]> req, LoginUser loginUser);
<--------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
3.serviceimpl层
/**
1. 这里对应的表字段数据类型要相同、eduClassName对应的实体类中的eduClassName这个参数要与class_name类型相同、且该实体类型转成另一个实体类的类型也要相同

*/

@Override
public Result<PageInfo<BizEduTollOrderDto>> queryPage(BizEduTollOrderInDto dto, Long pageNo, Long pageSize, Map<String, String[]> req, LoginUser loginUser) {
    dto.setSchoolIds(loginUser.getSchoolIds());
    //创建Page对象并将BizEduTollOrderInDto实体类作为泛型,传入当前页和当前页所在的条数
    Page<BizEduTollOrderInDto> page = new Page<>(pageNo, pageSize);
    //进行分页查询
    Page<BizEduTollOrderInDto> page1 = EduPushTollMapper.selectEduPushTollPage(page, dto);
    PageInfo<BizEduTollOrderInDto> pageinfo = new PageInfo<>(page1);
    //pageinfo转化为集合 List<BizEduTollOrderInDto>
    List<BizEduTollOrderInDto> collect = pageinfo.getCollection().stream().collect(Collectors.toList());
    // List<BizEduTollOrderInDto>转化为 List<BizEduTollOrderDto>
    List<BizEduTollOrderDto> bizEduTollOrderDtos = BeanUtil.convertList(collect, BizEduTollOrderDto.class);
    //创建Pageinfo对象
    PageInfo<BizEduTollOrderDto> pageInfo = new PageInfo<>(bizEduTollOrderDtos, pageinfo.getPageSize(), pageinfo.getPageNo(), pageinfo.getTotal());
    Result result = new Result();
    return  result.response(pageInfo);


}
<--------------------------------------------------------------------------------------------------------------------------------------------------------------------------->

4.mapper层代码

@Mapper
public interface EduPushTollMapper extends BaseMapper {
// List selectEduPushToll( @Param(value = “dtos”) BizEduTollOrderInDto dtos);
Page selectEduPushTollPage(Page page,@Param(value = “dtos”) BizEduTollOrderInDto dtos);
}

5.mapper.xml配置信息如下



<
?xml version=“1.0” encoding=“UTF-8”?>

<!-- 可根据自己的需求,是否要使用 -->
<resultMap type="org.ies.charge.application.data.base.request.BizEduTollOrderInDto" id="eduPush">
    <result property="eduStudentName" column="stu_name" />
    <result property="eduStudentNo" column="stu_no" />
    <result property="id" column="id" />
    <result property="eduClassName" column="class_name" />
    <result property="eduGradeName" column="grade_name" />
    <result property="pushUserPhone" column="parent_iphone" />
    <result property="createTime" column="create_time"/>
    <result property="pushData" column="push_data" />
    <result property="eduTollProjectName" column="edu_toll_project_name" />
    <result property="tollOrderPrice" column="toll_order_price" />
    <result property="pushState" column="push_state" />
    <result property="tollStatus" column="toll_status"/>
</resultMap>

<select id="selectEduPushTollPage" resultMap="eduPush" >
    SELECT DISTINCT
    ec.id,
    ec.school_ids,es.stu_name,es.stu_no ,
    el.class_name,eg.grade_name ,
    ep.parent_iphone ,ec.toll_order_title,
    ec.push_data ,ec.edu_toll_project_name,
    ec.toll_order_price,ec.confirm_price ,
    ec.push_state ,ec.toll_status,ec.create_time
    FROM  edu_charges ec
    LEFT  JOIN edu_student es ON ec.edu_student_id=es.id
    LEFT  JOIN edu_class el ON es.edu_class_id=el.id
    LEFT  JOIN edu_school_grade eg ON el.grade_code=eg.grade_code
    LEFT  JOIN edu_parent ep ON es.edu_parent_id = ep.id
    where ec.school_ids = #{dtos.schoolIds} and ec.del_flag = 0
    <if test='dtos.pushDataStart != null and dtos.pushDataEnd !=null '>
    and ec.push_data between  #{dtos.pushDataStart} and  #{dtos.pushDataEnd}
    </if>
    <if test='dtos.createtimeStart != null  and dtos.createtimeEnd !=null  '>
    and ec.create_time between  #{dtos.createTimeStart} and #{dtos.createTimeEnd}
    </if>
    <if test='dtos.eduGradeName != null and dtos.eduGradeName != ""'>
    and eg.grade_name like concat('%',#{dtos.eduGradeName},'%')
    </if>
    <if test='dtos.tollOrderTitle != null and dtos.tollOrderTitle != ""'>
    and ec.toll_order_title  like concat('%',#{dtos.tollOrderTitle},'%')
    </if>
    <if test='dtos.eduTollProjectName != null and dtos.eduTollProjectName != ""'>
    and  ec.edu_toll_project_name like concat('%',#{dtos.eduTollProjectName},'%')
    </if>
    <if test='dtos.tollStatus != null and dtos.tollStatus != ""'>
    and  ec.toll_status = #{dtos.tollStatus}
    </if>
    <if test='dtos.eduStudentName != null and dtos.eduStudentName != ""'>
    and  es.stu_name like concat('%',#{dtos.eduStudentName},'%')
    </if>
    <if test='dtos.eduClassId != null and dtos.eduClassId != ""'>
    and  el.id = #{dtos.eduClassId}
    </if>
    <if test='dtos.pushUserPhone != null and dtos.pushUserPhone != ""'>
    and  ep.parent_iphone  like concat('%',#{dtos.pushUserPhone},'%')
    </if>

    order by ec.create_time desc
</select>

<--------------------------------------------------------------------------------------------------------------------------------------------------------------------------->
6.serviceImpl用到的实体类对象

package org.ies.charge.application.data.base.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**

  • 收费订单业务

  • @author ljf

  • @email 903662850@qq.com

  • @date 2021-01-16 10:57:49
    */
    @Data
    public class BizEduTollOrderInDto {

    @JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
    @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
    @ApiModelProperty(“推送开始时间”)
    private Date pushDataStart;

    @JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
    @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
    @ApiModelProperty(“推送开始时间”)
    private Date pushData;

    @JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
    @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
    @ApiModelProperty(“推送结束时间”)
    private Date pushDataEnd;

    /*

    • 1.接受创建开始时间、接受创建结束时间
    • */
      @JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
      @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
      @ApiModelProperty(“创建开始时间”)
      private Date createTimeStart;

    @JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
    @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
    @ApiModelProperty(“创建结束时间”)
    private Date createTimeEnd;

    /创建时间/
    @JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
    @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
    @ApiModelProperty(“创建开始时间”)
    private Date createTime;

    /**

    • 接受年级信息进行查询
    • */
      @ApiModelProperty(“年级”)
      private String eduGradeName;

    /*

    • 按年级编号查询
    • /
      @ApiModelProperty(“年级编号”)
      private String gradeCode;
      /
      *
    • 收费单号
      */
      @ApiModelProperty(“收费单号”)
      private String tollOrderNo;

    @ApiModelProperty(“班级编号”)
    private String eduClassId;

    /**

    • 收费订单标题
      */
      @ApiModelProperty(“收费订单名称”)
      private String tollOrderTitle;

    /**

    • 收费项目
      */
      @ApiModelProperty(“收费项目”)
      private String eduTollProjectName;

    /**

    • 收费订单金额
      */
      @ApiModelProperty(“收费订单金额”)
      private BigDecimal tollOrderPrice;

    /**

    • 折扣
      */
      @ApiModelProperty(“折扣”)
      private String discountRate;

    /**

    • 减免
      */
      @ApiModelProperty(“减免”)
      private String exemptionPrice;

    /**

    • 学生id
      */
      @ApiModelProperty(“学生id”)
      private Long eduStudentId;

    /**

    • 收费编号id
      /
      @ApiModelProperty(“id”)
      private Long id;
      /
    • 学生编号
    • */

    @ApiModelProperty(“学生编号”)
    private String eduStudentNo;
    /**

    • 学生姓名
      */
      @ApiModelProperty(“学生姓名”)
      private String eduStudentName;

    /**

    • 班级
      */
      @ApiModelProperty(“班级”)
      private String eduClassName;

    /**

    • 收费订单状态
      */
      @ApiModelProperty(“收费订单状态”)
      private String tollStatus;

    /**

    • 手机号码
      */
      @ApiModelProperty(“手机号码”)
      private String pushUserPhone;

    /**

    • 推送的人
      */
      @ApiModelProperty(“推送的人”)
      private String pushUserId;

    /**

    • 所属学校
      */
      @ApiModelProperty(“所属学校”)
      private String schoolIds;

    /**

    • 推送状态(0表示已推送 1表示未推送 2表示推送失败)
      */
      @ApiModelProperty(“推送状态(0表示已推送 1表示未推送 2表示推送失败)”)
      private Integer pushState;
      }

<--------------------------------------------------------------------------------------------------------------------------------------------------------------------------->

package org.ies.charge.application.data.base.response;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**

  • 收费订单业务返回

  • @author ljf

  • @email 903662850@qq.com

  • @date 2021-01-16 10:57:49
    /
    @Data
    public class BizEduTollOrderDto {
    /
    *

    • 主键
      /
      @TableId(type = IdType.AUTO)
      @ApiModelProperty(“主键”)
      private Long id;
      /
      *
    • 收费单号
      /
      @ApiModelProperty(“收费单号”)
      @Excel(name = “收费单号”,
      width = 36.0D)
      private String tollOrderNo;
      /
      *
    • 收费订单标题
      /
      @ApiModelProperty(“收费订单标题”)
      @Excel(name = “收费订单标题”,
      width = 36.0D)
      private String tollOrderTitle;
      /
      *
    • 学生id
      /
      @ApiModelProperty(“学生id”)
      private Long eduStudentId;
      /
      *
    • 收费缴费状态
      /
      @ApiModelProperty("收费单缴费状态 1:已缴费 2:未缴费 ")
      @Excel(name = “收费单缴费状态”,
      width = 36.0D,dicCode=“tollStatus”)
      private String tollStatus;
      /
      *
    • 收费订单金额
      /
      @ApiModelProperty(“收费订单金额”)
      @Excel(name = “收费订单金额”,
      width = 36.0D)
      private BigDecimal tollOrderPrice;
      /
      *
    • 确认支付金额
      /
      @ApiModelProperty(“确认支付金额”)
      private BigDecimal confirmPrice;
      /
      *
    • 收费项目
      /
      @ApiModelProperty(“收费项目”)
      @Excel(name = “收费项目”,
      width = 36.0D)
      private String eduTollProjectName;
      /
      *
    • 推送时间
      /
      @JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
      @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
      @ApiModelProperty(“推送时间”)
      @Excel(name = “推送时间”,
      width = 20.0D,
      format = “yyyy-MM-dd HH:mm:ss”)
      private Date pushData;
      /
      *
    • 推送的人
      /
      @ApiModelProperty(“推送的人”)
      @Excel(name = “推送的人”,
      width = 36.0D)
      private String pushUserId;
      /
      *
    • 备注
      */
      @ApiModelProperty(“备注”)
      @Excel(name = “备注”,
      width = 36.0D)
      private String remarks;

    /**

    • 学生姓名
      */
      @ApiModelProperty(“学生姓名”)
      @Excel(name = “学生姓名”,
      width = 36.0D)
      private String eduStudentName;

    /**

    • 学生姓名
      */
      @ApiModelProperty(“学生学号”)
      @Excel(name = “学生学号”,
      width = 36.0D)
      private String eduStudentNo;

    /**

    • 班级
      */
      @ApiModelProperty(“班级”)
      @Excel(name = “班级”,
      width = 36.0D)
      private String eduClassName;

    /**

    • 创建时间
      */

    @JsonFormat(timezone = “GMT+8”, pattern = “yyyy-MM-dd HH:mm:ss”)
    @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)
    @ApiModelProperty(“创建结束时间”)
    @Excel(name=“创建时间”,
    width = 36.0D,
    format = “yyyy-MM-dd HH:mm:ss”)
    private Date createTime;

    /*

    • 创建结束时间
    • /
      @ApiModelProperty(“结束时间”)
      private Date createTimeEnd;
      /
      *
    • 结束时间
      */
      @ApiModelProperty(“结束时间”)
      private Date pushDataEnd;

    /**

    • 年级
      */
      @ApiModelProperty(“年级”)
      @Excel(name = “年级”,
      width = 36.0D)
      private String eduGradeName;

    /**

    • 手机号码
      /
      @ApiModelProperty(“手机号码”)
      @Excel(name = “手机号码”,
      width = 36.0D)
      private String pushUserPhone;
      /
      *
    • 订单中心订单号
      */
      @ApiModelProperty(“订单号”)
      @Excel(name = “订单号”,
      width = 36.0D)
      private String orderNum;

    /**

    • 推送状态(0表示已推送 1表示未推送 2表示推送失败)
      */
      @ApiModelProperty(“推送状态(0表示已推送 1表示未推送 2表示推送失败 3表示作废)”)
      @Excel(name = “推送状态”,
      width = 36.0D,dicCode=“pushStatus”)
      private Integer pushState;
      }
      错误总结

具体也可参考:https://kaven.blog.csdn.net/article/details/109010449

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值