天天看点

mybatis plus 多条件分页查询 if 嵌套写法

mapper.xml

<select id="pageSelectList" resultMap="BaseResultMap" parameterType="DwdSchoolQuery"  flushCache="true">
        select
        *
        from dwd_school
        <where>
            1=1
            --- 学校名称
            <if test="params.schoolName !=null and params.schoolName !=''">
                and school_name LIKE CONCAT ('%',#{params.schoolName},'%')
            </if>
            --- 维度:学校类型(公立,私立,综合)
            <if test="params.dimSchoolType !=null and params.dimSchoolType !=''">
                and dim_school_type LIKE CONCAT ('%',#{params.dimSchoolType},'%')
            </if>
            --- 维度:学校等级(小初高,幼儿园,高校)
            <if test="params.dimSchoolLevel !=null and params.dimSchoolLevel !=''">
                and dim_school_level LIKE CONCAT ('%',#{params.dimSchoolLevel},'%')
            </if>
            --- 维度:年
            <if test="params.dimYear !=null and params.dimYear !=''">
                and dim_year LIKE CONCAT ('%',#{params.dimYear},'%')
                --- 维度:月
                <if test="params.dimMonth !=null and params.dimMonth !=''">
                    and dim_month LIKE CONCAT ('%',#{params.dimMonth},'%')
                </if>
            </if>
            --- 维度:省
            <if test="params.dimProvince !=null and params.dimProvince !=''">
                and dim_province LIKE CONCAT ('%',#{params.dimProvince},'%')
                --- 维度:市
                <if test="params.dimCity !=null and params.dimCity !=''">
                    and dim_city LIKE CONCAT ('%',#{params.dimCity},'%')
                    --- 维度:区
                    <if test="params.dimCounty !=null and params.dimCounty !=''">
                        and dim_county LIKE CONCAT ('%',#{params.dimCounty},'%')
                    </if>
                </if>
            </if>
        </where>
        ORDER BY ${params.orderBy} ${params.order}
    </select>
           

 mapper.java

Page<DwdSchool> pageSelectList(Page<DwdSchool> page, @Param("params") DwdSchoolQuery dwdSchoolQuery);
           

service

@Override
    public Page<DwdSchool> pageSelectList(DwdSchoolQuery dwdSchoolQuery) {
        /*分页*/
        Page<DwdSchool> page = new Page<>(dwdSchoolQuery.getPageNo(), dwdSchoolQuery.getPageSize());
        return this.baseMapper.pageSelectList(page, dwdSchoolQuery);
    }
           

 query

package com.hlta.map.query;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;

/**
 * @Author WangChangDian
 * @Description //TODO 学校信息表查询条件封装
 * @Date 11:31 2021/5/12
 **/
@Data
@EqualsAndHashCode(callSuper = false)
public class DwdSchoolQuery implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 学校名称
     */
    private String schoolName;
    /**
     * 维度:学校类型(公立,私立,综合)
     */
    private String dimSchoolType;

    /**
     * 维度:学校等级(小初高,幼儿园,高校)
     */
    private String dimSchoolLevel;

    /**
     * 维度:年
     */
    private String dimYear;

    /**
     * 维度:月
     */
    private String dimMonth;

    /**
     * 维度:省
     */
    private String dimProvince;

    /**
     * 维度:市
     */
    private String dimCity;

    /**
     * 维度:区
     */
    private String dimCounty;


    /**
     * pageNo
     */
    @ApiModelProperty(value = "pageNo", name = "页数", example = "1")
    private Long pageNo = 1L;
    /**
     * pageSize
     */
    @ApiModelProperty(value = "pageSize", name = "每页条数", example = "10")
    private Long pageSize = 10L;

    /**
     * 排序规则
     */
    @ApiModelProperty(value = "order", name = "排序规则", example = "DESC")
    private String order = "DESC";
    /**
     * 排序字段
     */
    @ApiModelProperty(value = "orderBy", name = "排序字段", example = "dwd_school.create_at")
    private String orderBy = "dwd_school.create_at";

}
           

继续阅读