MyQuery.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package com.chuanghai.ihotel.common.utils;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.core.metadata.OrderItem;
  4. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. /**
  7. * @Author: codingliang
  8. * @Description: 分页参数设置
  9. * @Date: 2021-04-29 12:51
  10. * @Version: V1.0
  11. **/
  12. public class MyQuery<T> {
  13. public IPage<T> getPage(PageParam params) {
  14. return this.getPage(params, null, false);
  15. }
  16. public IPage<T> getPage(PageParam params, String defaultOrderField, boolean isAsc) {
  17. //分页对象
  18. Page<T> page = new Page<>(params.getCurPage(), params.getPageSize());
  19. //排序字段
  20. //防止SQL注入(因为sidx、order是通过拼接SQL实现排序的,会有SQL注入风险)
  21. String orderField = SQLFilter.sqlInject(params.getOrderField());
  22. String order = params.getOrder();
  23. //前端字段排序
  24. if(StringUtils.isNotEmpty(orderField) && StringUtils.isNotEmpty(order)){
  25. if("asc".equalsIgnoreCase(order)) {
  26. return page.addOrder(OrderItem.asc(orderField));
  27. }else {
  28. return page.addOrder(OrderItem.desc(orderField));
  29. }
  30. }
  31. // 没有排序字段,则不排序
  32. if(StringUtils.isEmpty(defaultOrderField)){
  33. return page;
  34. }
  35. //默认排序
  36. if(isAsc) {
  37. page.addOrder(OrderItem.asc(defaultOrderField));
  38. }else {
  39. page.addOrder(OrderItem.desc(defaultOrderField));
  40. }
  41. return page;
  42. }
  43. }