当前位置: 首页 > news >正文

springboot 查询

ServiceImpl中

getBaseMapper()的使用

public IPage<ProductPageVO> getProductPage(Integer regionOrCityCode, Integer brandId, LocalDate usedDate, Page<ProductPageVO> page) {return getBaseMapper().getProductPage(regionOrCityCode, brandId, usedDate, page);}

optional的使用

        //查询产品Optional<ProductManage> optionalProductManage = productManageService.lambdaQuery().eq(BaseEntity::getId, productId).oneOpt();if (optionalProductManage.isEmpty()) {return null;}ProductManage productManage = optionalProductManage.get();

lamdaquery 查询+流操作获取vo

 List<CarInfoVO.Insure.Term> terms = insureTermService.lambdaQuery().in(BaseEntity::getId, termIds).orderByDesc(InsureTerm::getSort).list().stream().map(term -> {//对item进行遍历CarInfoVO.Insure.Term termVo = new CarInfoVO.Insure.Term();termVo.setTitle(term.getTitle());termVo.setSketch(term.getSketch());termVo.setDetail(term.getDetails());return termVo;}).collect(Collectors.toList());//聚集元素

流操作之分组

  Map<String, List<CarInfoVO.GeneralConfiguration>> subscribeMap =universalConfigureService.lambdaQuery().in(UniversalConfigure::getParentId, subscribes).eq(UniversalConfigure::getStatus, 1).orderByDesc(UniversalConfigure::getSort).list().stream().collect(Collectors.groupingBy(UniversalConfigure::getParentId,//对数据进行分组,指定分组的keyCollectors.mapping(item -> {//组建分组中的valueCarInfoVO.GeneralConfiguration generalConfiguration = new CarInfoVO.GeneralConfiguration();generalConfiguration.setTitle(item.getTitle());generalConfiguration.setSketch(item.getSketch());generalConfiguration.setDetail(item.getDetail());if (StringUtils.isNotBlank(item.getMaterialId())) {Optional<MaterialConfigure> optional =materialConfigureService.lambdaQuery().eq(BaseEntity::getId, item.getMaterialId()).oneOpt();if (!optional.isEmpty()) {generalConfiguration.setIcon(ossUtil.getCacheSignedUrl(optional.get().getUrl()));}}return generalConfiguration;}, Collectors.toList())));

流操作之排序

 List<CarInfoVO.Car> cars = carManages.stream().map(carManage -> {CarInfoVO.Car car = new CarInfoVO.Car();car.setCarId(carManage.getId());car.setTitle(carManage.getTitle());car.setStatus(carManage.getStatus());car.setPrice(carManage.getPrice());car.setCreateTime(carManage.getCreateTime());//车辆关系表Map<Integer, List<String>> carRelations = carManageRelationService.lambdaQuery().eq(CarManageRelation::getCarId, carManage.getId()).isNotNull(CarManageRelation::getRelationId).orderByDesc(CarManageRelation::getSort).list().stream().collect(Collectors.groupingBy(CarManageRelation::getType, Collectors.mapping(CarManageRelation::getRelationId, Collectors.toList())));//排期判断Integer integer = 0;List<String> tenancyIds = carRelations.get(1);//查询租期信息if (CollectionUtils.isNotEmpty(tenancyIds)) {//取最小租期Optional<TenancyConfigure> optional = tenancyConfigureService.lambdaQuery().in(BaseEntity::getId, tenancyIds).orderByAsc(TenancyConfigure::getDuration).last("limit 1").oneOpt();if (!optional.isEmpty()) {//结束时间LocalDate endDate = usedDate.plusDays(optional.get().getDuration() * 30);if (usedDate.isAfter(carManage.getStartTime().toLocalDate()) && endDate.isBefore(carManage.getEndTime().toLocalDate())) {//查询有无排期integer = scheduleServerUtil.searchScheduleRequest(carManage.getCarId(), usedDate, endDate, false);}}}car.setSchedule(integer != 0 ? 1 : 0);car.setRegistrationTime(carManage.getRegistrationTime().getYear() + "年" + carManage.getRegistrationTime().getMonthValue() + "月");car.setCarModelTerritory(carManage.getCarModelTerritory());car.setCurrentMileage(carManage.getCurrentMileage());car.setCarNumber(carManage.getCarNumber());Optional<MaterialConfigure> optional = materialConfigureService.lambdaQuery().eq(BaseEntity::getId, carManage.getCarCoverId()).oneOpt();if (!optional.isEmpty()) {car.setDisplay(ossUtil.getCacheSignedUrl(optional.get().getUrl()));}//外观 内饰 空间List<String> pictureRelationIds = new ArrayList<>();pictureRelationIds.addAll(carRelations.get(4));pictureRelationIds.addAll(carRelations.get(5));pictureRelationIds.addAll(carRelations.get(6));if (CollectionUtils.isNotEmpty(pictureRelationIds)) {Map<String, String> collect1 = materialConfigureService.lambdaQuery().in(BaseEntity::getId, pictureRelationIds).list().stream().collect(Collectors.toMap(BaseEntity::getId, MaterialConfigure::getUrl));List<String> collect2 = pictureRelationIds.stream().map(item -> ossUtil.getCacheSignedUrl(collect1.get(item))).collect(Collectors.toList());car.setPictures(collect2);}//自定义配置List<String> customCarConfigIds = carRelations.get(2);if (CollectionUtils.isNotEmpty(customCarConfigIds)) {List<CarInfoVO.Car.CustomCarConfig> collect = carConfigureService.lambdaQuery().in(BaseEntity::getId, customCarConfigIds).orderByDesc(CarConfigure::getSort).list().stream().map(item -> {CarInfoVO.Car.CustomCarConfig customCarConfig = new CarInfoVO.Car.CustomCarConfig();customCarConfig.setTitle(item.getTitle());customCarConfig.setResume(item.getResume());customCarConfig.setDetail(item.getDetails());return customCarConfig;}).collect(Collectors.toList());car.setCustomCarConfigs(collect);}return car;})//排序.sorted(Comparator.comparing(CarInfoVO.Car::getSchedule).reversed().thenComparing(CarInfoVO.Car::getPrice).thenComparing(CarInfoVO.Car::getCreateTime)).collect(Collectors.toList());

流操作之取大小

 List<CarManage> carManages = carManageService.lambdaQuery().eq(CarManage::getProductId, productId).eq(CarManage::getStatus, 1).list();Optional<CarManage> min = carManages.stream().min(Comparator.comparing(CarManage::getMarketPrice));if (!min.isEmpty()) {carInfoVO.setGuidePriceMin(min.get().getMarketPrice());}

流操作之过滤出指定字段

 //所有产品List<ProductManage> list = productManageService.lambdaQuery().in(ProductManage::getCityCode, allCities).eq(ProductManage::getStatus, 1).le(ProductManage::getStartTime, usedDate).ge(ProductManage::getEndTime, usedDate).list();if (ObjectUtils.isEmpty(list)) {return new ArrayList<>();}//查询产品下是否存在车辆 没有车辆不显示车系List<String> productIds = list.stream().map(BaseEntity::getId).collect(Collectors.toList());

相关文章:

springboot 查询

ServiceImpl中 getBaseMapper()的使用 public IPage<ProductPageVO> getProductPage(Integer regionOrCityCode, Integer brandId, LocalDate usedDate, Page<ProductPageVO> page) {return getBaseMapper().getProductPage(regionOrCityCode, brandId, usedDate, …...

【分布式链路追踪技术】sleuth+zipkin

目录 1.概述 2.搭建演示工程 3.sleuth 4.zipkin 5.插拔式存储 5.1.存储到MySQL中 5.2.用MQ来流量削峰 6.联系作者 1.概述 当采用分布式架构后&#xff0c;一次请求会在多个服务之间流转&#xff0c;组成单次调用链的服务往往都分散在不同的服务器上。这就会带来一个问…...

Windows 源码编译 MariaDB

环境 Win11, vs2022, git, cmake, Bison from GnuWin32, perl, Gnu Diff. 默认都安装好。 perl 看之前博客教程。perl Bison from GnuWin32 默认安装到 C:\GnuWin32 Add C:\GnuWin32\bin to your system PATH after installation. 下载mariadb源码 地址&#xff1a;MariaD…...

【动画视频生成】

转自&#xff1a;机器之心 动画视频生成这几天火了&#xff0c;这次 NUS、字节的新框架不仅效果自然流畅&#xff0c;还在视频保真度方面比其他方法强了一大截。 最近&#xff0c;阿里研究团队构建了一种名为 Animate Anyone 的方法&#xff0c;只需要一张人物照片&#xff0…...

《Spring Cloud学习笔记:微服务保护Sentinel》

Review 解决了服务拆分之后的服务治理问题&#xff1a;Nacos解决了服务治理问题OpenFeign解决了服务之间的远程调用问题网关与前端进行交互&#xff0c;基于网关的过滤器解决了登录校验的问题 流量控制&#xff1a;避免因为突发流量而导致的服务宕机。 隔离和降级&#xff1a…...

解密负载均衡:如何平衡系统负载(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…...

go 源码解读 - sync.Mutex

sync.Mutex mutex简介mutex 方法源码标志位获取锁LocklockSlowUnlock怎么 调度 goroutineruntime 方法 mutex简介 mutex 是 一种实现互斥的同步原语。&#xff08;go-version 1.21&#xff09; &#xff08;还涉及到Go运行时的内部机制&#xff09;mutex 方法 Lock() 方法用于…...

机器学习系列--R语言随机森林进行生存分析(1)

随机森林&#xff08;Breiman 2001a&#xff09;&#xff08;RF&#xff09;是一种非参数统计方法&#xff0c;需要没有关于响应的协变关系的分布假设。RF是一种强大的、非线性的技术&#xff0c;通过拟合一组树来稳定预测精度模型估计。随机生存森林&#xff08;RSF&#xff0…...

<JavaEE> TCP 的通信机制(四) -- 流量控制 和 拥塞控制

目录 TCP的通信机制的核心特性 五、流量控制 1&#xff09;什么是“流量控制”&#xff1f; 2&#xff09;如何做到“流量控制”&#xff1f; 3&#xff09;“流量控制”的作用 六、拥塞控制 1&#xff09;什么是“拥塞控制”&#xff1f; 2&#xff09;如何做到“拥塞…...

智慧监控平台/AI智能视频EasyCVR接口调用编辑通道详细步骤

视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;GB28181视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#xff0c…...

Go语言实现KV存储系统:前言

文章目录 前言前提条件持久索引并发总结 前言 你好&#xff0c;我是醉墨居士&#xff0c;最近想做一些存储方面的东西玩玩&#xff0c;我第一时间就想到了能不能自己开发一个保存键值对的存储系统 我找了些资料&#xff0c;准备使用Go语言实现一下&#xff0c;想着有想法咱就…...

代码随想录刷题笔记(DAY1)

前言&#xff1a;因为学校的算法考试让我认识了卡哥&#xff0c;为了下学期冲击大厂实习的理想&#xff0c;我加入了卡哥的算法训练营&#xff0c;从今天开始我每天会更新自己的刷题笔记&#xff0c;与大家一起打卡&#xff0c;一起共勉&#xff01; Day 1 01. 二分查找 &…...

Linux域名IP映射

本地域名IP映射 在Linux系统中&#xff0c;域名映射可以通过编辑/etc/hosts文件来实现。/etc/hosts文件用于将主机名映射到IP地址&#xff0c;从而实现本地域名解析。它通常被用于在没有DNS服务器的情况下&#xff0c;手动指定特定域名和IP地址的映射关系。 格式&#xff1a;…...

postman使用-03发送请求

文章目录 请求1.新建请求2.选择请求方式3.填写请求URL4.填写请求参数get请求参数在params中填写&#xff08;填完后在url中会自动显示&#xff09;post请求参数在body中填写&#xff0c;根据接口文档请求头里面的content-type选择body中的数据类型post请求参数为json-选择raw-选…...

【Spring实战】09 MyBatis Generator

文章目录 1. 依赖2. 配置文件3. 生成代码4. 详细介绍 generatorConfig.xml5. 代码详细总结 Spring MyBatis Generator 是 MyBatis 官方提供的一个强大的工具&#xff0c;它能够基于数据库表结构自动生成 MyBatis 持久层的代码&#xff0c;包括实体类、Mapper 接口和 XML 映射文…...

【自然语言处理】【大模型】 ΨPO:一个理解人类偏好学习的统一理论框架

一个理解人类偏好学习的统一理论框架 《A General Theoretical Paradiam to Understand Learning from Human Preferences》 论文地址&#xff1a;https://arxiv.org/pdf/2310.12036.pdf 相关博客 【自然语言处理】【大模型】 ΨPO&#xff1a;一个理解人类偏好学习的统一理论框…...

计算机网络——传输层(五)

前言&#xff1a; 最重要的网络层我们已经学习完了&#xff0c;下面让我们再往上一层&#xff0c;对网络层的上一层传输层进行一个学习与了解&#xff0c;学习网络层的基本概念和网络层中的TCP协议和UDP协议 目录 ​编辑一、传输层的概述&#xff1a; 1.传输层&#xff1a; …...

python3处理docx并flask显示

前言&#xff1a; 最近有需求处理docx文件&#xff0c;并讲内容显示到页面&#xff0c;对world进行在线的阅读&#xff0c;这样我这里就使用flaskDocument对docx文件进行处理并显示&#xff0c;下面直接上代码&#xff1a; Document处理&#xff1a; 首先下载Document的库文…...

Python:正则表达式速通,码上上手!

1前言 正则表达式&#xff08;Regular Expression&#xff09;是一种用来描述字符串模式的表达式。它是一种强大的文本匹配工具&#xff0c;可以用来搜索、替换和提取符合特定模式的文本。 正则表达式由普通字符&#xff08;例如字母、数字、符号等&#xff09;和元字符&#…...

centos7安装nginx并安装部署前端

目录&#xff1a; 一、安装nginx第一种方式&#xff08;外网&#xff09;第二种方式&#xff08;内网&#xff09; 二、配置前端项目三、Nginx相关命令 好久不用再次使用生疏&#xff0c;这次记录一下 一、安装nginx 第一种方式&#xff08;外网&#xff09; 1、下载nginx ng…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...