@Override public Pager<Course> findPager(int pageSize, int absPage, Course target, String order, String sort) { QueryBuffer queryBuffer = new QueryBuffer(); if (target == null) target = new Course(); queryBuffer.field("o.*") .from("bus_course").append(" o ") .where(" 1=1"); if (target.getLoginInfo() != null) { if (!target.getLoginInfo().getRole().getCode().equals("administrator") || target.getLoginInfo().getDeptId() != null) { if (target.getLoginInfo().getDeptId()!=0) queryBuffer.and().append(" CONCAT(',',o.deptIds,',') LIKE '%," + target.getLoginInfo().getDeptId() + ",%'"); } } if (StringUtil.isNotEmpty(target.getKey_())) { queryBuffer.and().append("(o.content LIKE #key OR o.title LIKE #key OR o.uid LIKE #key OR o.create_by LIKE #key )").setParamLike("key", target.getKey_()); } queryBuffer.countField("count(o.id)"); if (StringUtil.isEmpty(order)) order = "o.create_time"; if (StringUtil.isEmpty(sort)) sort = "DESC"; queryBuffer.orderby(order + " " + sort); return findPager(pageSize, absPage, queryBuffer); }
时间: 2024-04-01 13:35:59 浏览: 190
List<map>多字段组合排序
5星 · 资源好评率100%
这段代码是一个Java方法,用于查询课程信息并返回分页结果。它使用了一个QueryBuffer类来构造SQL查询语句,并调用了父类的findPager()方法来执行查询并返回分页结果。
具体来说,这个方法的功能如下:
- 接收四个参数:pageSize(每页记录数)、absPage(当前页码)、target(查询条件对象)、order(排序字段)和sort(排序方式)。
- 构造一个QueryBuffer对象,并使用它来拼接SQL查询语句。
- 根据查询条件对象target,添加WHERE子句中的条件。其中,如果target中的登录信息对象中的角色代码不为"administrator",或者登录信息对象中的部门ID不为null且不为0,则添加一个AND子句,限制查询结果只包括与登录信息对象中的部门ID相关的记录。
- 如果target中的关键词不为空,则添加一个AND子句,限制查询结果只包括标题、内容、UID或创建者中包含关键词的记录。
- 使用countField()方法添加一个COUNT语句,用于计算查询结果总记录数。
- 如果排序字段为空,则默认按照创建时间倒序排列。
- 调用父类的findPager()方法,执行查询并返回分页结果。
需要注意的是,这段代码中涉及到的一些类和方法,如QueryBuffer、StringUtil和findPager()等,可能是该项目中自定义的类和方法,因此无法准确地判断它们的具体实现。
阅读全文