You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
3.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.service.impl;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.dao.UsersDao;
import com.entity.UsersEntity;
import com.service.UsersService;
import com.utils.PageUtils;
import com.utils.Query;
/**
* 系统用户服务实现类
*
* 核心职责处理系统用户UsersEntity的分页查询和列表查询功能
*
* 技术架构:
* 1. 继承MyBatis-Plus的ServiceImpl → 获得基础CRUD能力
* 2. 实现自定义UsersService接口 → 扩展用户查询功能
*
* 业务场景:系统管理员查看用户列表、搜索用户、用户管理等后台操作
*/
@Service("usersService") // Spring服务注解指定bean名称为"usersService"
public class UsersServiceImpl extends ServiceImpl<UsersDao, UsersEntity> implements UsersService {
/**
* 分页查询系统用户(基础版本)
* 使用默认的EntityWrapper进行条件查询返回实体对象分页
* 主要用于系统管理后台的用户列表展示
*
* @param params 请求参数包含分页参数page、limit等
* @return 分页工具对象,包含分页数据和分页信息
*/
@Override
public PageUtils queryPage(Map<String, Object> params) {
// 创建分页查询使用Query工具类解析参数创建Page对象
Page<UsersEntity> page = this.selectPage(
new Query<UsersEntity>(params).getPage(), // 解析分页参数创建Page对象
new EntityWrapper<UsersEntity>() // 创建空的查询条件包装器
);
return new PageUtils(page); // 返回自定义的分页工具对象
}
/**
* 查询系统用户列表
* 支持自定义查询条件,返回用户实体列表
* 用于需要条件筛选的用户查询场景
*
* @param wrapper 查询条件包装器用于构建WHERE条件、排序等
* @return 系统用户实体列表
*/
@Override
public List<UsersEntity> selectListView(Wrapper<UsersEntity> wrapper) {
return baseMapper.selectListView(wrapper);
}
/**
* 分页查询系统用户(增强版本)
* 支持自定义查询条件和分页,返回分页的用户列表
* 用于管理系统中的高级搜索和分页展示
*
* @param params 请求参数,包含分页参数
* @param wrapper 自定义查询条件包装器
* @return 分页工具对象,包含分页的用户数据
*/
@Override
public PageUtils queryPage(Map<String, Object> params, Wrapper<UsersEntity> wrapper) {
// 创建分页对象
Page<UsersEntity> page = new Query<UsersEntity>(params).getPage();
// 执行分页查询,获取用户列表数据
page.setRecords(baseMapper.selectListView(page, wrapper));
// 封装分页结果
PageUtils pageUtil = new PageUtils(page);
return pageUtil;
}
}