From c13b474ea85242c984e15c3c55d0ddbc1dd84550 Mon Sep 17 00:00:00 2001 From: sol Date: Wed, 17 Sep 2025 19:23:19 +0800 Subject: [PATCH] refactor(common): Refactor the related code for paginated queries --- .../bgasol/common/core/base/dto/BasePageDto.java | 5 ++--- .../common/core/base/service/BaseService.java | 15 +++++++++++---- .../bgasol/model/file/file/dto/FilePageDto.java | 8 +++++--- .../bgasol/model/file/image/dto/ImagePageDto.java | 3 ++- .../bgasol/model/file/video/dto/VideoPageDto.java | 4 ++-- .../bgasol/model/system/user/dto/UserPageDto.java | 3 ++- 6 files changed, 24 insertions(+), 14 deletions(-) diff --git a/cloud/common/common-base-model/src/main/java/com/bgasol/common/core/base/dto/BasePageDto.java b/cloud/common/common-base-model/src/main/java/com/bgasol/common/core/base/dto/BasePageDto.java index 4cd093b..b46bba1 100644 --- a/cloud/common/common-base-model/src/main/java/com/bgasol/common/core/base/dto/BasePageDto.java +++ b/cloud/common/common-base-model/src/main/java/com/bgasol/common/core/base/dto/BasePageDto.java @@ -1,7 +1,6 @@ package com.bgasol.common.core.base.dto; -import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.bgasol.common.core.base.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.v3.oas.annotations.media.Schema; @@ -32,7 +31,7 @@ public abstract class BasePageDto { @JsonIgnore @Schema(hidden = true) - public AbstractLambdaWrapper> getQueryWrapper() { + public Wrapper getQueryWrapper() { throw new UnsupportedOperationException("not implemented yet"); } } diff --git a/cloud/common/common-base-web/src/main/java/com/bgasol/common/core/base/service/BaseService.java b/cloud/common/common-base-web/src/main/java/com/bgasol/common/core/base/service/BaseService.java index 3d26453..5506770 100644 --- a/cloud/common/common-base-web/src/main/java/com/bgasol/common/core/base/service/BaseService.java +++ b/cloud/common/common-base-web/src/main/java/com/bgasol/common/core/base/service/BaseService.java @@ -1,6 +1,7 @@ package com.bgasol.common.core.base.service; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -301,18 +302,24 @@ public abstract class BaseService findByPage(PAGE_DTO pageDto) { // 获取分页条件 Page page = new Page<>(pageDto.getPage(), pageDto.getSize()); + return this.findByPage(page, pageDto.getQueryWrapper()); + } + /** + * 分页查询 + */ + @Transactional(readOnly = true) + public PageVo findByPage(Page page, + Wrapper queryWrapper) { // 执行分页查询 - Page entityPage = commonBaseMapper().selectPage(page, pageDto.getQueryWrapper()); + Page entityPage = commonBaseMapper().selectPage(page, queryWrapper); // 缓存查询结果 if (ObjectUtils.isNotEmpty(commonBaseRedissonClient())) { diff --git a/cloud/model/model-file/src/main/java/com/bgasol/model/file/file/dto/FilePageDto.java b/cloud/model/model-file/src/main/java/com/bgasol/model/file/file/dto/FilePageDto.java index b20eabd..47ac40b 100644 --- a/cloud/model/model-file/src/main/java/com/bgasol/model/file/file/dto/FilePageDto.java +++ b/cloud/model/model-file/src/main/java/com/bgasol/model/file/file/dto/FilePageDto.java @@ -1,12 +1,14 @@ package com.bgasol.model.file.file.dto; -import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.bgasol.common.core.base.dto.BasePageDto; import com.bgasol.model.file.file.entity.FileEntity; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.*; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; import lombok.experimental.SuperBuilder; import org.apache.commons.lang3.ObjectUtils; @@ -46,7 +48,7 @@ public class FilePageDto extends BasePageDto { @Override @JsonIgnore @Schema(hidden = true) - public AbstractLambdaWrapper> getQueryWrapper() { + public Wrapper getQueryWrapper() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.like(ObjectUtils.isNotEmpty(name), FileEntity::getName, name); queryWrapper.like(ObjectUtils.isNotEmpty(url), FileEntity::getUrl, url); diff --git a/cloud/model/model-file/src/main/java/com/bgasol/model/file/image/dto/ImagePageDto.java b/cloud/model/model-file/src/main/java/com/bgasol/model/file/image/dto/ImagePageDto.java index 4fb2f5e..f4998b5 100644 --- a/cloud/model/model-file/src/main/java/com/bgasol/model/file/image/dto/ImagePageDto.java +++ b/cloud/model/model-file/src/main/java/com/bgasol/model/file/image/dto/ImagePageDto.java @@ -1,6 +1,7 @@ package com.bgasol.model.file.image.dto; import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.bgasol.common.core.base.dto.BasePageDto; import com.bgasol.model.file.image.entity.ImageEntity; @@ -22,7 +23,7 @@ public class ImagePageDto extends BasePageDto { @Override @JsonIgnore @Schema(hidden = true) - public AbstractLambdaWrapper> getQueryWrapper() { + public Wrapper getQueryWrapper() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.like(ObjectUtils.isNotEmpty(name), ImageEntity::getName, name); return queryWrapper; diff --git a/cloud/model/model-file/src/main/java/com/bgasol/model/file/video/dto/VideoPageDto.java b/cloud/model/model-file/src/main/java/com/bgasol/model/file/video/dto/VideoPageDto.java index 808fc79..97a2f9e 100644 --- a/cloud/model/model-file/src/main/java/com/bgasol/model/file/video/dto/VideoPageDto.java +++ b/cloud/model/model-file/src/main/java/com/bgasol/model/file/video/dto/VideoPageDto.java @@ -1,6 +1,6 @@ package com.bgasol.model.file.video.dto; -import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.bgasol.common.core.base.dto.BasePageDto; import com.bgasol.model.file.video.entity.VideoEntity; @@ -33,7 +33,7 @@ public class VideoPageDto extends BasePageDto { @Override @JsonIgnore @Schema(hidden = true) - public AbstractLambdaWrapper> getQueryWrapper() { + public Wrapper getQueryWrapper() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.like(ObjectUtils.isNotEmpty(name), VideoEntity::getName, name); queryWrapper.gt(ObjectUtils.isNotEmpty(duration), VideoEntity::getDuration, duration); diff --git a/cloud/model/model-system/src/main/java/com/bgasol/model/system/user/dto/UserPageDto.java b/cloud/model/model-system/src/main/java/com/bgasol/model/system/user/dto/UserPageDto.java index 9196422..338d2c3 100644 --- a/cloud/model/model-system/src/main/java/com/bgasol/model/system/user/dto/UserPageDto.java +++ b/cloud/model/model-system/src/main/java/com/bgasol/model/system/user/dto/UserPageDto.java @@ -1,6 +1,7 @@ package com.bgasol.model.system.user.dto; import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.bgasol.common.core.base.dto.BasePageDto; import com.bgasol.model.system.user.entity.UserEntity; @@ -40,7 +41,7 @@ public class UserPageDto extends BasePageDto { @Override @JsonIgnore @Schema(hidden = true) - public AbstractLambdaWrapper> getQueryWrapper() { + public Wrapper getQueryWrapper() { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.like(ObjectUtils.isNotEmpty(username), UserEntity::getUsername, username); queryWrapper.like(ObjectUtils.isNotEmpty(nickname), UserEntity::getNickname, nickname);