Mybatis-plus使用wrapper实现分页查询

pom.xml

	<properties>
		<mybatisplus.version>3.0.7</mybatisplus.version>
	</properties>
	<dependency>
	    <groupId>com.baomidou</groupId>
	    <artifactId>mybatis-plus-boot-starter</artifactId>
	    <version>${mybatisplus.version}</version>
	    <exclusions>
	        <exclusion>
	            <groupId>com.baomidou</groupId>
	            <artifactId>mybatis-plus-generator</artifactId>
	        </exclusion>
	    </exclusions>
	</dependency>

Controller

	@Autowired
	private XXXService xxxService;
	
	@GetMapping(value = "/xxx/list")
	@ApiOperation(value = "查询信息列表", notes = "列表")
	@ApiImplicitParams({
	        @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
	        @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
	        @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
	        @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String")
	})
	public Result<PageData<XXXDTO>> pageInfo(@ApiIgnore @RequestParam Map<String, Object> params){
		CasClientWebUser webUser = LoginUtil.getLoginUser();
        Long deptId = webUser.getDeptId();
        // 当前部门ID以及下级部门ID
        params.put("deptId",deptId);
	    PageData<XXXDTO> page = xxxService.page(params);
	    return new Result<PageData<XXXDTO>>().ok(page);
	}

Servcie

	PageData<D> page(Map<String, Object> params);

ServiceImpl

	// 查询条件
    @Override
    public QueryWrapper<XXXEntity> getWrapper(Map<String, Object> params){
        Long id = MapUtils.getLong(params,"id");
        String title = MapUtils.getString(params,"title");
        Integer status = MapUtils.getInteger(params,"status");
        QueryWrapper<XXXEntity> wrapper = new QueryWrapper<>();
        wrapper.eq(id != null ,"id", id);
        // 等同于mybatis
        //<if test="id != null">
        //    AND id = #{id}
        //</if>
        wrapper.like(StringUtils.isNotBlank(title),"title", title);
        wrapper.eq(status != null,"status", status);
        wrapper.apply(deptId != null && deptId != 0L,"FIND_IN_SET ('"+deptId+"',org_branch)");
        wrapper.orderByDesc("create_date");
        return wrapper;
    }

    @Override
    public PageData<XXXDTO> page(Map<String, Object> params){
        IPage<XXXEntity> page = baseDao.selectPage(
                getPage(params, Constant.CREATE_DATE, false),
                getWrapper(params)
        );
        return getPageData(page, currentDtoClass());
    }

Dao

	IPage<T> selectPage(IPage<T> page, @Param("ew") Wrapper<T> queryWrapper);
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值