这种事情一定是分页插件搞得鬼,毕竟能悄咪咪给你sql拼接其他东西的只有它了。
问题
我们用的若依系统,正常情况是类继承baseController,在需要分页的方法的第一行先调用startPage()方法。然后获取数据,将数据做为参数放入getdatatable()方法中返回即可。
class controller extends BaseController{
@GetMapping("/selectMajor")
public TableDataInfo selectSpecialtyContrast(String majorName){
startPage();
List<Map<String,Object>> mapList = (majorName);
return getDataTable(mapList);
}
}
但是当我的业务逻辑需要更复杂的数据的时候,比如我要将多表数据拼接成json,我们简单的分页就不合适。我们会根据实际情况,编写sql来获取我们需要的数据。
此时,类虽然继承了BaseController,但是我们没有使用startPage()方法来做分页,但是你后端接收的参数里面有pageSize和pageNum这两个参数的话,若依的分页插件就会向你的sql后面拼接一个limit,加上字编写的limit,就会出现两个。
我还没深究若依分页的实现‘。我猜测是用拦截器做了一些判断,直接拦截了pageSize和pageNum这两个参数,去做了一些处理。
好,那我就把参数改了,改成了pagesize和pagenumber,再次尝试没有问题,解决。
@ApiOperation("订单查询")
@Log(title = "订单管理-查询",businessType = )
@GetMapping("/selectOrder")
public AjaxResult selectOrder(@RequestBody YxGoodsOrderVo yxGoodsOrderVo){
//查询订单-联查符合条件的order
int count = (yxGoodsOrderVo);
//处理数据
if (count > 0){
List<YxGoodsOrder> orderList = (yxGoodsOrderVo);
}
//......其他处理
}
@Data
public class YxGoodsOrderVo implements Serializable {
public static final long serialVersionUID = 1L;
private Integer pagesize;
private Integer pagenumber;
private Integer pageBegin;
}