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

需求背景,写了个联合接口,需要自定义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");

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

挑战一个月基本掌握C++(第六天)了解函数,数字,数组,字符串

一 C函数 函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数&#xff0c;即主函数 main() &#xff0c;所有简单的程序都可以定义其他额外的函数。 您可以把代码划分到不同的函数中。如何划分代码到不同的函数中是由您来决定的&#xff0c;但在逻辑上&#xff…

vue的ElMessage的css样式不生效

我使用elementplus&#xff0c;是使用的用哪个单独引入的&#xff0c;然后表单校验时候警告的css不生效&#xff0c;就是这个效果 反复看视频的引入也没发现问题&#xff0c;后来才知道需要这个引入 import { ElMessage } from "element-plus"; import element-pl…

PromptGIP:Unifying lmage Processing as Visual Prompting Question Answering

“Unifying Image Processing as Visual Prompting Question Answering” 文章提出了一种名为 PromptGIP 的通用模型&#xff0c;将图像处理任务统一为视觉提示问答范式&#xff0c;在多个图像处理任务上展现出良好性能&#xff0c;为通用图像处理提供了新的思路和方法。 confe…

Windows服务器修复SSL/TLS协议信息泄露漏洞等...

为了保证生产环境的安全, 我们会定期对服务器进行漏洞扫描, 一般情况下我们都是使用Linux服务器, 某些情况会用到Windows服务器 出现SSL/TLS协议信息泄露漏洞问题一般情况下是远程连接使用了不安全的加密算法, 需要禁用这些加密算法 修复方法 从网络中查询修复方法又很多, 大…

基于AT89C52单片机的6位电子密码锁设计

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/90166684?spm1001.2014.3001.5503 14 部分参考设计如下&#xff1a; 目 录 摘要 1 abstract 2 1 绪论 3 1.1 课题背景 3 1.2 课题的目的和意义 3 1.3 电子密码…

考前倒计时98天

2024年12月21日到2025年3月29日共有 98​ 天 一、计算机基础 思维分类特征强调学科代表理论思维&#xff08;推理思维&#xff09;推理和演绎推理数学实验思维&#xff08;证实思维&#xff09;观察和总结自然规律归纳物理学计算思维&#xff08;构造思维&#xff09;设计和构造…

力扣-图论-70【算法学习day.70】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程&#xff08;例如想要掌握基础用法&#xff0c;该刷哪些题&#xff1f;&#xff09;我的解析也不会做的非常详细&#xff0c;只会提供思路和一些关键点&#xff0c;力扣上的大佬们的题解质量是非…

最新详细Gmail 注册指南以及注册谷歌账号手机号码无法验证?解决方法分享

Gmail 注册指南&#xff1a;2024 年实用教程&#xff0c;解决手机号验证难题&#xff0c;开启你的数字之旅 在当今信息时代&#xff0c;Gmail 邮箱已成为我们工作与生活中常用的数字工具&#xff0c;它不仅功能强大、界面简洁&#xff0c;还是访问 Google 服务&#xff08;如 …

【已解决】黑马点评项目jmeter高并发测试中用户数据的生成

具体实现见此篇文章的第3章 运行 test 程序后&#xff0c;生成以下用户名 以下文件名改成自己的地址 成功

范德蒙矩阵(Vandermonde 矩阵)简介:意义、用途及编程应用

参考&#xff1a; Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares Stephen Boyd and Lieven Vandenberghe 书的网站: https://web.stanford.edu/~boyd/vmls/ Vandermonde 矩阵简介&#xff1a;意义、用途及编程应用 在数学和计算科学中&a…

数智化医院分布式计算框架融合人工智能方向初步实现与能力转换浅析

人工智能中心计算机 一、引言 1.1 研究背景与意义 近年来,人工智能(Artificial Intelligence,AI)与大数据技术的迅猛发展为医疗行业带来了前所未有的变革机遇。医疗领域积累了海量的数据,如电子病历(Electronic Medical Record,EMR)、医学影像、临床检验数据以及基因…

深度学习之超分辨率算法——SRGAN

更新版本 实现了生成对抗网络在超分辨率上的使用 更新了损失函数&#xff0c;增加先验函数 SRresnet实现 import torch import torchvision from torch import nnclass ConvBlock(nn.Module):def __init__(self, kernel_size3, stride1, n_inchannels64):super(ConvBlock…

Pytorch | 利用PI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用PI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集PI-FGSM介绍背景和动机算法原理算法流程 PI-FGSM代码实现PI-FGSM算法实现攻击效果 代码汇总pifgsm.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器&#xff1a; Pytorch | 从零构建AlexN…

IMX6ULL开发板如何关掉自带的QT的GUI界面和poky的界面的方法

重要说明&#xff1a;其实最后发现根本没必要去关掉自带的QT的GUI界面&#xff0c;直接把屏幕先刷黑就可以看到测试效果了&#xff0c;把屏蔽先刷黑的代码见博文&#xff1a; https://blog.csdn.net/wenhao_ir/article/details/144594705 不过&#xff0c;既然花了时间摸索如何…

【网络安全】逆向工程 练习示例

1. 逆向工程简介 逆向工程 (RE) 是将某物分解以了解其功能的过程。在网络安全中&#xff0c;逆向工程用于分析应用程序&#xff08;二进制文件&#xff09;的运行方式。这可用于确定应用程序是否是恶意的或是否存在任何安全漏洞。 例如&#xff0c;网络安全分析师对攻击者分发…

Docker Compose 安装 Harbor

我使用的系统是rocky Linux 9 1. 准备环境 确保你的系统已经安装了以下工具&#xff1a; DockerDocker ComposeOpenSSL&#xff08;用于生成证书&#xff09;#如果不需要通过https连接的可以不设置 1.1 安装 Docker 如果尚未安装 Docker&#xff0c;可以参考以下命令安装&…

深入浅出:多功能 Copilot 智能助手如何借助 LLM 实现精准意图识别

阅读原文 1. Copilot中的意图识别 如果要搭建一个 Copilot 智能助手&#xff0c;比如支持 知识问答、数据分析、智能托管、AIGC 等众多场景或能力&#xff0c;那么最核心的就是基于LLM进行意图识别分发能力&#xff0c;意图识别的准确率直接决定了 Copilot 智能助手的能力上限…

ZED-OpenCV项目运行记录

项目地址&#xff1a;GitCode - 全球开发者的开源社区,开源代码托管平台 使用 ZED 立体相机与 OpenCV 进行图像处理和深度感知 • 使用 ZED 相机和 OpenCV 库捕获图像、深度图和点云。 • 提供保存并排图像、深度图和点云的功能。 • 允许在不同格式之间切换保存的深度图和点云…

Linux 常见用例汇总

注&#xff1a;本文为 Linux 常见用例文章合辑。 部分内容已过时&#xff0c;未更新整理。 检查 Linux 上的 glibc 版本 译者&#xff1a;joeren | 2014-11-27 21:33 问&#xff1a;检查 Linux 系统上的 GNU C 库&#xff08;glibc&#xff09;的版本&#xff1f; GNU C 库&…

PHP阶段一

PHP 一门编程语言 运行在服务器端 专门用户开发网站的 脚本后缀名.php 与HTML语言进行混编&#xff0c;脚本后缀依然是.php 解释型语言&#xff0c;不要编译直接运行 PHP运行需要环境&#xff1a; Windows phpstudy Linux 单独安装 Web 原理简述 1、打开浏览器 2、输入u…