首页 > 其他分享 >Ruoyi 之前端控制排序方式

Ruoyi 之前端控制排序方式

时间:2024-10-24 13:51:22浏览次数:3  
标签:startPagePlus pageSize Ruoyi isAsc startPage 之前 pageNum 排序 pageDomain

       由于在与前端对接接口时,动态排序的需求较多,导致代码结构混乱,严重影响了后端的代码质量,并且修改频繁。参考了 Ruoyi 的分页排序插件 startPage,我对其进行了改进,开发出了自己的 startPagePlus

1、参考Ruoyi本身的startPage。在BaseController下添加 startPagePlus

/**
     * 设置请求分页数据
     */
    protected void startPage()
    {
        PageUtils.startPage();
    }

    /**
     * 设置请求分页数据Plus
     */
    protected void startPagePlus()
    {
        PageUtils.startPagePlus();
    }

2、在Pageutils中添加startPagePlus方法.

/**
     * 设置请求分页数据
     */
    public static void startPage()
    {
        PageDomain pageDomain = TableSupport.buildPageRequest();
        Integer pageNum = pageDomain.getPageNum();
        Integer pageSize = pageDomain.getPageSize();
        String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
        Boolean reasonable = pageDomain.getReasonable();
        PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);
    }

    /**
     * 设置请求分页数据
     */
    public static void startPagePlus()
    {
        PageDomain pageDomain = TableSupport.buildPageRequest();
        Integer pageNum = pageDomain.getPageNum();
        Integer pageSize = pageDomain.getPageSize();
        String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderByPlus());
        Boolean reasonable = pageDomain.getReasonable();
        PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);
    }

3、引入getOrderByPlus()方法

    public String getOrderBy() {
        if (StringUtils.isEmpty(orderByColumn)) {
            return "";
        }
        return StringUtils.toUnderScoreCase(orderByColumn) + " " + isAsc;
    }

    public String getOrderByPlus() {
        if (StringUtils.isEmpty(orderByColumn)) {
            return "";
        }
        List<String> strList = Arrays.stream(orderByColumn.split(",")).collect(Collectors.toList());
        List<String> isAsc = Arrays.stream(this.isAsc.split(",")).collect(Collectors.toList());
        return IntStream.range(0, Math.max(strList.size(), isAsc.size()))
                .mapToObj(i -> StringUtils.toUnderScoreCase(strList.get(i)) + " " + (i < isAsc.size() ? isAsc.get(i) : "asc"))
                .collect(Collectors.joining(", "));
    }

4、前端使用一 一对应关系,使用场景app内商品排序,价格排序等

标签:startPagePlus,pageSize,Ruoyi,isAsc,startPage,之前,pageNum,排序,pageDomain
From: https://blog.csdn.net/qq_54228972/article/details/143179847

相关文章

  • Tita | 实行OKR之前你清楚这些吗
    OKR即目标与关键成果法,是一套明确和跟踪目标及其完成情况的管理工具和方法,由英特尔公司发明。OKR的主要目标是明确公司和团队的“目标”以及明确每个目标达成的可衡量的“关键结果”。OKR被部分应用组织定义为“一个重要的思考框架与不断发展的学科,旨在确保员工共同工作,并集中精......
  • 排序
    Unity常用排序算法冒泡排序冒泡排序算法,它是最慢的排序算法之一,但也是一种容易实现的排序算法。比较相邻的数据functionmaopao(list){letlen=list.length;for(leti=0;i<len;i++){//控制循环的次数for(letj=0;j<len-i-1;j++){//控制每次循环......
  • P7910 [CSP-J 2021] 插入排序 题解
    正解首先要注意$2$点:修改数组元素的值会影响接下来的操作.对数组进行排序不会影响接下来的操作.思路直接扫一遍数组.假设排序后$a_x$会在第$p$位上.将$p$初始化为$n$.然后就开始找$x$前后有多少个小于$a_x$的值就行了.时间复杂度:$\Theta(nq)$.注意......
  • 快速排序
    一、快速排序的介绍快速排序简单来说就是指先选择一个基准元素(默认第一个是基准元素),再去找到比基准元素大的元素,放在基准元素的右边,比基准元素小的放在基准元素的左边,再将找到的最后一个比基准元素小的元素与基准元素进行交换动画演示的网址https://visualgo.net/en/sorting......
  • 选择排序
    一、选择排序的介绍简单来说就是,先从数组中找到最小的那个数(先默认第一个数为最小的),对他进行标记(使用一个变量存储它的下标,遇到比他小的更新下标),直到找到数组中的最后一个数,然后将最小的那个数与第一个数进行交换。接下来我们使用动画演示进行解释下面的是网址跟截屏以及如何......
  • 排序(一)插入排序,希尔排序,选择排序,堆排序,冒泡排序
    目录一.排序1.插入排序2.希尔排序3.选择排序4.堆排序5.冒泡排序二.整体代码1.Sort.h2.Sort.c3.test.c一.排序1.插入排序插入排序基本思想:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序......
  • 冒泡排序
    一、冒泡排序的介绍冒泡排序简单的来说就是将第一个数与第二个数进行比较,如果第一个数大就进行交换,这样比到最后就是这组数中最大数,下面将使用动画演示来展示冒泡排序https://visualgo.net/en/sorting这是一个可视化界面,可以详细的查看相关的排序动画。二、代码进行演示接下......
  • python中的字典排序--sorted()
    字典的排序:在学习python的时候,了解到相比于列表,字典是一个无序的数据结构,一般都不对其进行排序的。但是要想对字典进行排序,是可以通过sorted()函数进行操作的!关于字典的排序,下面从键key和值value进行代码的运行和分析:【先看代码和执行结果,后面会进行详细的解析】#先定义一......
  • Saas多租户数据权限设计(参考RuoYi)
    导航引子场景梳理基于角色的访问控制(RBAC)多租户系统的权限设计RuoYi系统的数据权限设计最终设计方案参考本文首发《智客工坊-Saas多租户数据权限设计(参考RuoYi)》,共计3656字,阅读时长5min。引子最近公司打算把内部的系统打造成商业化的Saas产品,我们组承担了产品的研发......
  • 排序算法 —— 快速排序(理论+代码)
    目录1.快速排序的思想2.快速排序的实现hoare版挖坑法前后指针法快排代码汇总3.快速排序的优化三数取中小区间优化三路划分4.快速排序的非递归版本5.快速排序总结1.快速排序的思想快速排序是一种类似于二叉树结构的排序方法。其基本思想为从待排序序列中任取一个......