refactor(common): Refactor the related code for paginated queries

This commit is contained in:
sol 2025-09-17 19:23:19 +08:00
parent 8e3561848a
commit c13b474ea8
6 changed files with 24 additions and 14 deletions

View file

@ -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<T extends BaseEntity> {
@JsonIgnore
@Schema(hidden = true)
public AbstractLambdaWrapper<T, LambdaQueryWrapper<T>> getQueryWrapper() {
public Wrapper<T> getQueryWrapper() {
throw new UnsupportedOperationException("not implemented yet");
}
}

View file

@ -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<ENTITY extends BaseEntity, PAGE_DTO extends Ba
}
/**
* PAGE_DTO
* 分页查询
*
* @param pageDto 分页查询条件
* @return 分页数据
*/
@Transactional(readOnly = true)
public PageVo<ENTITY> findByPage(PAGE_DTO pageDto) {
// 获取分页条件
Page<ENTITY> page = new Page<>(pageDto.getPage(), pageDto.getSize());
return this.findByPage(page, pageDto.getQueryWrapper());
}
/**
* 分页查询
*/
@Transactional(readOnly = true)
public PageVo<ENTITY> findByPage(Page<ENTITY> page,
Wrapper<ENTITY> queryWrapper) {
// 执行分页查询
Page<ENTITY> entityPage = commonBaseMapper().selectPage(page, pageDto.getQueryWrapper());
Page<ENTITY> entityPage = commonBaseMapper().selectPage(page, queryWrapper);
// 缓存查询结果
if (ObjectUtils.isNotEmpty(commonBaseRedissonClient())) {

View file

@ -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<FileEntity> {
@Override
@JsonIgnore
@Schema(hidden = true)
public AbstractLambdaWrapper<FileEntity, LambdaQueryWrapper<FileEntity>> getQueryWrapper() {
public Wrapper<FileEntity> getQueryWrapper() {
LambdaQueryWrapper<FileEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(ObjectUtils.isNotEmpty(name), FileEntity::getName, name);
queryWrapper.like(ObjectUtils.isNotEmpty(url), FileEntity::getUrl, url);

View file

@ -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<ImageEntity> {
@Override
@JsonIgnore
@Schema(hidden = true)
public AbstractLambdaWrapper<ImageEntity, LambdaQueryWrapper<ImageEntity>> getQueryWrapper() {
public Wrapper<ImageEntity> getQueryWrapper() {
LambdaQueryWrapper<ImageEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(ObjectUtils.isNotEmpty(name), ImageEntity::getName, name);
return queryWrapper;

View file

@ -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<VideoEntity> {
@Override
@JsonIgnore
@Schema(hidden = true)
public AbstractLambdaWrapper<VideoEntity, LambdaQueryWrapper<VideoEntity>> getQueryWrapper() {
public Wrapper<VideoEntity> getQueryWrapper() {
LambdaQueryWrapper<VideoEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(ObjectUtils.isNotEmpty(name), VideoEntity::getName, name);
queryWrapper.gt(ObjectUtils.isNotEmpty(duration), VideoEntity::getDuration, duration);

View file

@ -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<UserEntity> {
@Override
@JsonIgnore
@Schema(hidden = true)
public AbstractLambdaWrapper<UserEntity, LambdaQueryWrapper<UserEntity>> getQueryWrapper() {
public Wrapper<UserEntity> getQueryWrapper() {
LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(ObjectUtils.isNotEmpty(username), UserEntity::getUsername, username);
queryWrapper.like(ObjectUtils.isNotEmpty(nickname), UserEntity::getNickname, nickname);