ruoyi在接口controller层级设置body请求参数,page分页和params,PageHelper重复使用

news2024/12/23 13:47:24

需求背景,写了个联合接口,需要自定义body请求参数,page分页和params

看代码

@PostMapping("/xxx")
    public AjaxResult xxx(HttpServletRequest request){
        AjaxResult ajax = AjaxResult.success();
        OrderGift orderGift_top = new OrderGift();
        OrderGift orderGift_normal = new OrderGift();
        String shopId = "11"
        ConfigGlobal sysConfigGlobal = configGlobalService.selectConfigGlobalByShopId(shopId);
        if(sysConfigGlobal != null && sysConfigGlobal.getGiftShowTopStatus().equals(UserConstants.YES)){
            PageHelper.startPage(1, 3).setReasonable(true);
            // desc为降序,asc为升序
            PageHelper.orderBy("init_amount desc");
            Map<String, Object> params_top = new HashMap<>();
            String endTime = MyUtils.dateToStrLong(new Date());
            int giftRecentDay = 7;
            String beginTime = MyUtils.getBeforeDay(endTime, giftRecentDay);
            params_top.put("beginTime", beginTime);
            params_top.put("endTime", endTime);
            orderGift_top.setParams(params_top);

            List<OrderGift> topList = orderGiftService.selectOrderGiftList(orderGift_top);
            ajax.put("topList", topList);
        }

        PageHelper.clearPage();

        int pageNum = 10;
        BigDecimal giftShowMin = new BigDecimal(0);
        Map<String, Object> params_normal = new HashMap<>();
        if(sysConfigGlobal != null){
            pageNum = sysConfigGlobal.getGiftShowCount();
            giftShowMin = sysConfigGlobal.getGiftShowMin();
        }
        params_normal.put("minAmount", giftShowMin);
        orderGift_normal.setParams(params_normal);
        PageHelper.startPage(1, pageNum).setReasonable(true);

        List<OrderGift> giftList = orderGiftService.selectOrderGiftList(orderGift_normal);
        ajax.put("giftList", giftList);
        return ajax;
    }

mybatis中xml的代码 


    <select id="selectOrderGiftList" parameterType="OrderGift" resultMap="OrderGiftResult">
		<include refid="selectOrderGiftVo"/>
		where 1 = 1
		<if test="orderNo != null and orderNo != ''">
			AND o.order_no like concat('%', #{orderNo}, '%')
		</if>
		<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
			AND date_format(o.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
		</if>
		<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
			AND date_format(o.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
		</if>
		<if test="params.minAmount != null"><!-- 最小金额检索 -->
			AND #{params.minAmount} &lt;= o.init_amount
		</if>
		<!-- 数据范围过滤 -->
		${params.dataScope}
	</select>
自定义分页:
PageHelper.startPage(1, 5).setReasonable(true); 

// desc为降序,asc为升序 自定义排序:
PageHelper.orderBy("init_amount desc");

清除当前线程的分页参数
PageHelper.clearPage();
 /**
     * 封装分页对象 会读取客户端传来的pageSize,客户端没传,会默认10条 
     */
    public static PageDomain getPageDomain()
    {
        PageDomain pageDomain = new PageDomain();
        pageDomain.setPageNum(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1));
        pageDomain.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10));
        pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN));
        pageDomain.setIsAsc(ServletUtils.getParameter(IS_ASC));
        pageDomain.setReasonable(ServletUtils.getParameterToBool(REASONABLE));
        return pageDomain;
    }

/**
     * 封装分页对象 会读取客户端传来的pageSize,客户端没传,会默认10条
     */
    public static PageDomain getPageDomainByPost()
    {
        PageDomain pageDomain = new PageDomain();
        pageDomain.setPageNum(Convert.toInt(ServletUtils.getParameterByPost(PAGE_NUM), 1));
        pageDomain.setPageSize(Convert.toInt(ServletUtils.getParameterByPost(PAGE_SIZE), 10));
        pageDomain.setOrderByColumn(ServletUtils.getParameterByPost(ORDER_BY_COLUMN));
        pageDomain.setIsAsc(ServletUtils.getParameterByPost(IS_ASC));
        pageDomain.setReasonable(ServletUtils.getParameterToBool(REASONABLE));
        return pageDomain;
    }
问题:

由于我自定义的方法startPageByPost(),看代码中的initAmount,因为startPageByPost()方法会将前端传来的驼峰写法改成下划线,init_amount

我一开始这么写
PageHelper.orderBy("initAmount desc");
startPageByPost()

结果:就会导致pageSize不生效

如果去掉startPageByPost(),变成这么写
PageHelper.orderBy("initAmount desc");

就会提示 initAmount 未定义


结论:
不需要startPageByPost()方法,手动修改成下划线写法,对应数据库的字段名
PageHelper.orderBy("init_amount desc");

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2264257.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux下学 〖MySQL 〗表的属性之约束条件(下)(自增长auto_increament、唯一键unique key、外键foreign key)

绪论​ 每日激励&#xff1a;“不是看到希望才坚持&#xff0c;而是坚持了才有希望。—Jack” 绪论​&#xff1a; 本章是约束的下半篇&#xff0c;它将带你认识到一些在字段中非常常用的约束条件&#xff0c;自增长AUTO_CREMENT、唯一键UNIQUE KEY 和 外键FOREIGN KEY这三个。…

观察者模式(sigslot in C++)

大家&#xff0c;我是东风&#xff0c;今天抽点时间整理一下我很久前关注的一个不错的库&#xff0c;可以支持我们在使用标准C的时候使用信号槽机制进行观察者模式设计&#xff0c;sigslot 官网&#xff1a; http://sigslot.sourceforge.net/ 本文较为详尽探讨了一种观察者模…

内置函数.

日期函数 current_date/time() 日期/时间 获得年月日&#xff1a; 获得时分秒&#xff1a; 获得时间戳&#xff1a;日期时间 now()函数 体会date(datetime)的用法&#xff1a;只显示日期 在日期的基础上加日期&#xff1a;按照日历自动计算 关键字为 intervalinterval 后的数值…

web实验三

web实验三 三四个小时左右吧&#xff0c;做成功了学到新东西了&#xff0c;还是挺有趣的&#xff0c;好玩。还有些功能没做完&#xff0c;暂时这样了&#xff0c;要交了。 html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF…

36. Three.js案例-创建带光照和阴影的球体与平面

36. Three.js案例-创建带光照和阴影的球体与平面 实现效果 知识点 Three.js基础 WebGLRenderer WebGLRenderer 是Three.js中最常用的渲染器&#xff0c;用于将场景渲染到网页上。 构造器 new THREE.WebGLRenderer(parameters)参数类型描述parametersobject可选参数&#…

windows平台小熊猫C++安装fmt库

前言 Windows安装C第三方库有点不容易&#xff0c;使用VS的可能还好点&#xff0c;有vcpkg工具用。使用其他工具的就麻烦了&#xff0c;因为基本上第三方库&#xff0c;都默认你是Linux平台&#xff0c;给的安装方式教程都是清一色Cmake&#xff0c;Windows上没有cmake&#x…

信号处理相关的东东(学习解惑)

信号处理相关的东东&#xff08;学习解惑&#xff09; 所有内容学习自知乎专栏&#xff0c;https://www.zhihu.com/column/xinhao&#xff0c;写的很好&#xff0c;值得反复学习 时频域分析的一些常用概念 FROM&#xff1a;https://zhuanlan.zhihu.com/p/35742606 1、相加性…

pset4filter less: helpers.c

&#xff08;&#xff14;&#xff09;blur function 简单画图熟悉一下要做什么 可以看到3种情况&#xff0c;顶格&#xff0c;边界&#xff0c;里面如果分开算的话&#xff0c;是真的麻烦&#xff1b;但是当时还真的没有想到更好的&#xff0c;就先写一写&#xff08;此处摘取…

3. Kafka入门—安装与基本命令

Kafka基础操作 一. 章节简介二. kafka简介三. Kafka安装1. 准备工作2. Zookeeper安装2.1 配置文件2.2 启动相关命令3. Kafka安装3.1 配置文件3.2 启动相关命令-------------------------------------------------------------------------------------------------------------…

某政银行APP登陆逆向

版本 V10.0.0 环境检测 {"xposed": {"action": "warn_and_exit","msg": {"zh_CN": "检测到您的设备安装有Xposed框架&#xff0c;存在非法攻击风险&#xff01;"},"button": {"zh_CN": &qu…

51c自动驾驶~合集42

我自己的原文哦~ https://blog.51cto.com/whaosoft/12888355 #DriveMM 六大数据集全部SOTA&#xff01;最新DriveMM&#xff1a;自动驾驶一体化多模态大模型&#xff08;美团&中山大学&#xff09; 近年来&#xff0c;视觉-语言数据和模型在自动驾驶领域引起了广泛关注…

算法题(12): 特殊年份

审题&#xff1a; 需要输出特殊年份的个数 思路&#xff1a; 获取数据&#xff1a;用字符串获取&#xff0c;然后全部加到总字符串s上判断 使用for循环对每一个四位数年分进行判断&#xff0c;如果是特殊年份就让负责记录的cou变量 解题&#xff1a; 注意&#xff1a;为什么我们…

RuoYi-Vue 数据权限控制示例nvliz (作业机器版)

目录 需求分析 ​编辑建表 代码编写 service层 Mapper层 测试 修改数据权限 添加数据 需求分析 建表 在若依的数据库中建立设备表&#xff1a;equipment 代码编写 使用代码生成&#xff0c;设备管理信息界面&#xff0c;如下图&#xff1a; 使用RuoYi的代码生成的功…

汽车IVI中控开发入门及进阶(三十八):手机投屏HiCar开发

手机投屏轻松实现手机与汽车的无缝连接,导航、音乐、通话等功能应有尽有,还支持更多第三方应用,让车载互联生活更加丰富多彩。 HiCar在兼容性和开放性上更具优势。 手机投屏可以说是车机的杀手级应用,大大拓宽了车机的可用性范围。其中华为推出的HiCar就是非常好用的一种。…

数据结构经典算法总复习(下卷)

第五章:树和二叉树 先序遍历二叉树的非递归算法。 void PreOrderTraverse(BiTree T, void (*Visit)(TElemType)) {//表示用于查找的函数的指针Stack S; BiTree p T;InitStack(S);//S模拟工作栈while (p || !StackEmpty(S)) {//S为空且下一个结点为空&#xff0c;意味着结束遍…

PID 控制算法理论背景:飞控领域的核心调控机制(1)

在飞控工程领域&#xff0c;PID 控制算法占据着极为关键的地位&#xff0c;是实现飞行器精确稳定控制的基石。PID 作为比例&#xff08;P&#xff09;、积分&#xff08;I&#xff09;、微分&#xff08;D&#xff09;的集成代表&#xff0c;构建起了控制系统的核心架构&#x…

插入排序与计数排序详解

在 C 编程中&#xff0c;排序算法是非常基础且重要的知识。今天我们就来深入探讨两种常见的排序算法&#xff1a;插入排序和计数排序&#xff0c;包括它们的代码实现、时间复杂度、空间复杂度、稳定性分析以及是否有优化提升的空间。 一、插入排序 插入排序&#xff08;Inser…

示波器--UNI-T 优利德 UT4102C 使用介绍

示波器--UNI-T 优利德 UT4102C 使用介绍 1 介绍图示特点 2 UTP04示波器探头&#xff08;100M带宽&#xff09;3 功能介绍4 示例RS232 电平信号测试 参考 1 介绍 图示 特点 2GS/s的实时采样率&#xff1a;设备能够以每秒2吉萨&#xff08;Giga Samples per second&#xff09;…

【Mybatis-Plus】连表查询 逻辑删除 多租户

文章目录 连表查询逻辑删除多租户 连表查询 引入 mybatis-plus-join-boot-starter 依赖 <dependency><groupId>com.github.yulichang</groupId><artifactId>mybatis-plus-join-boot-starter</artifactId><version>1.5.1</version>…