MyBatis and or使用列表控制or条件

背景:最近项目需要,师傅可以查找订单,而师傅是指定可以服务2到3个区域,故需要使用到and, or条件的组合,以下记一下代码。

最重要的代码是:

1、构建List<Consumer<LambdaQueryWrapper<T>>> andConditions;

2、从列表中填好 andConditions使用 and, or;

3、queryWrapper使用and中使用for得到所有的条件。

// 通过staffId查找地域id
LambdaQueryWrapper<ServiceAreaStaff> areaQueryWrapper = new LambdaQueryWrapper<ServiceAreaStaff>().eq(ServiceAreaStaff::getStaffId, staff.getId());
List<ServiceAreaStaff> areasList = serviceAreaStaffMapper.selectList(areaQueryWrapper);
// 找到符合的订单// 当前师傅只能看到服务范围内的订单数据
List<Consumer<LambdaQueryWrapper<Order>>> andConditions = new ArrayList<>();List<Long> areas = new ArrayList<Long>();
for(ServiceAreaStaff area : areasList) {andConditions.add(wq -> wq.or().eq(Order::getServiceAreaId, area.getServiceAreaId()));
}LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper<Order>().and(true, wrapper -> {for (Consumer<LambdaQueryWrapper<Order>> condition : andConditions) {condition.accept(wrapper);}}).orderByDesc(Order::getId);

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

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

相关文章

【微信小程序】通过使用 wx.navigateTo方法进行页面跳转,跳转后的页面中通过一些方式回传值给原页面

以下是几种常见的回传值的方式&#xff1a; 使用 wx.navigateTo 方法传递参数&#xff1a; 在跳转时&#xff0c;可以在目标页面的 URL 中携带参数&#xff0c;然后在目标页面的 onLoad 方法中获取参数&#xff0c;并在目标页面中进行处理。例如&#xff1a; // 原页面跳转到目…

26.Netty源码之ThreadLocal

highlight: arduino-light JDK ThreadLocal 如果你需要变量在多线程之间隔离&#xff0c;或者在同线程内的类和方法中共享&#xff0c;那么 ThreadLocal 大显身手的时候就到了。ThreadLocal 可以理解为线程本地变量&#xff0c;它是 Java 并发编程中非常重要的一个类。 ThreadL…

【BASH】回顾与知识点梳理(二十)

【BASH】回顾与知识点梳理 二十 二十. 十六至十九章知识点总结及练习20.1 总结20.2 练习 该系列目录 --> 【BASH】回顾与知识点梳理&#xff08;目录&#xff09; 二十. 十六至十九章知识点总结及练习 20.1 总结 shell script 是利用 shell 的功能所写的一个『程序 (prog…

《OWASP代码审计》学习——跨站脚本注入(XSS)

一、跨站脚本概述 1.什么是跨站脚本 跨站点脚本(XSS)是一种编码注入漏洞。它通常出现在 web 应用程序中。XSS 使攻击者能够向其他用户浏览的网页中注入恶意内容。XSS 允许攻击者绕过访问控制&#xff0c;它是 OWASP Top10 最常见的漏洞之一。XSS 是网络服务器上的第二大漏洞。…

基于java快餐店线上点餐系统设计与实现

摘 要 随着计算机互联网的高速发展。餐饮业的发展也加入了电子商务团队。各种网上点餐系统纷纷涌现&#xff0c;不仅增加了商户的销售量和营业额&#xff0c;而且为买家提供了极大的方便&#xff0c;足不出户&#xff0c;就能订到喜欢的餐品。网上点餐已经是人们生活中所不可缺…

Linux系统性能调优及调试课:Linux Kernel Printk

🚀返回专栏总目录 文章目录 0、printk 说明1、printk 日志等级设置2、屏蔽等级日志控制机制3、printk打印常用方式4、printk打印格式0、printk 说明 在开发Linux device Driver或者跟踪调试内核行为的时候经常要通过Log API来trace整个过程,Kernel API printk()是整个Kern…

amis百度前端框架,在js中使用amis写json转页面

amis百度前端框架&#xff0c;在js中使用用amis写的json页面 1.在项目中使用百度 amis 的sdk做开发库。 <script src"./sdk/sdk/sdk.js"></script> 2。加载sdk中的库&#xff1a; amis amisRequire(amis/embed);amisLib amisRequire(amis);const ma…

Flume拦截器

实现 Interceptor接口 方法1 是初始化: 方法2和3重载 拦截: 方法3 是关闭: 但是flume是通过内部类创建对象的

餐饮管理系统ssm酒店饭店仓库进销存jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 餐饮管理系统ssm 系统有1权限&#xff1a;管理员 二…

flask-sqlalchemy使用

# sqlalchemy 集成到flask中 # 第三方: flask-sqlalchemy 封装了用起来&#xff0c;更简洁 安装 pip install flask-sqlalchemy 使用 # 使用flask-sqlalchemy集成1 导入 from flask_sqlalchemy import SQLAlchemy2 实例化得到对象db SQLAlchemy()3 将db注册到app中db.in…

Vue中使用qrcode说明

1.安装 npm i qrcode1.5.3 2.导入 import QRCode from qrcode 3.转换 说明&#xff1a;拿到服务器传来的字符串&#xff0c;转换成base64&#xff0c;然后通过img标签展示。 // 字符串转成二维码 let result await this.$API.reqPayInfo(this.orderId); 总结&#xff1a;

Java一般用于postgis空间数据库通用的增删查改sql命令

目录 1 增加 2 删除 3 查询 4 更新 "public"."JGSQGW_Geo"为某模式下得表 一般postgrel有这样的设计模式 1 增加 #前端绘制出的数据插入 INSERT INTO "public"."JGSQGW_Geo" ( "geom","gridone","gridon…

集合Collection-List-ArrayList学习

一、集合 集合是数据容器。相较于数组集合具有以下几个特点&#xff1a; 数组一旦创建&#xff0c;长度不可改变。集合的长度会自动扩容。集合具有很多数组没有的功能函数API数组元素的存储特点单一&#xff0c;不同的集合有不同的存储特点。 1. Collection顶层接口 Collect…

Python3.x String内置函数大全

文章目录 总结一下Python3.x字符串的常用系统函数&#xff0c;总共分为8类1. 大小写字母转换类的函数str.capitalize()str.title()str.lower()str.upper()str.swapcase() 2. 统计类的函数str.count(str1, beg 0,endlen(string)) 3. 匹配类的函数str.endswith(suffix, beg0, end…

zustand:基于 Flux 模型实现的小型、快速和可扩展的状态管理

目录 ReactStep 1&#xff1a;安装Step 2&#xff1a;Store 初始化Step3&#xff1a;Store 绑定组件&#xff0c;就完成了!效果图 VueStep 1: 安装Step 2: Store 初始化Step 3: Store 绑定组件&#xff0c;就完成了!效果图 微前端为什么你需要 zustand-pub &#xff1f;安装ste…

Centos8上加速git clone

首先通过命令获取域名对应的IP地址 [rootggbond ~]# nslookup github.global.ssl.fastly.net [rootggbond ~]# nslookup github.com 之后如上获取到的IP地址 以IP-域名的格式加入到hosts文件中 [rootggbond ~]# vim /etc/hosts Centos8上更新DNS缓存 [rootggbond ~]# nscd -…

R语言5_安装Giotto

环境Ubuntu22/20, R4.1. 已开启科学上网。 第一步&#xff0c;更新服务器环境&#xff0c;进入终端&#xff0c;键入如下命令&#xff0c; apt-get update apt install libcurl4-openssl-dev libssl-dev libxml2-dev libcairo2-dev libgtk-3-dev libhdf5-dev libmagick9-dev …

Leecode螺旋矩阵 II59

59.螺旋矩阵II 题目建议&#xff1a; 本题关键还是在转圈的逻辑&#xff0c;在二分搜索中提到的区间定义&#xff0c;在这里又用上了。 题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 文章讲解&#xff1a;代码随想录 视频…

opencv基础55-获取轮廓的特征值及示例

轮廓自身的一些属性特征及轮廓所包围对象的特征对于描述图像具有重要意义。本节介绍几个轮廓自身的属性特征及轮廓所包围对象的特征。 宽高比 可以使用宽高比&#xff08;AspectRation&#xff09;来描述轮廓&#xff0c;例如矩形轮廓的宽高比为&#xff1a; 宽高比 宽度&am…

消息队列比较

、ActiveMQ 优点&#xff1a;单机吞吐量万级&#xff0c;时效性ms级&#xff0c;可用性高&#xff0c;基于主从架构实现高可用性&#xff0c;消息可靠性较低的概率丢失数据。 缺点&#xff1a;官方社区现在对ActiveMQ5.X维护越来越少了&#xff0c;高吞吐量场景较少使用。 2、K…