|
|
|
@ -1,45 +1,86 @@
|
|
|
|
|
package com.zsz.service.impl;
|
|
|
|
|
|
|
|
|
|
// 导入 MyBatis-Plus 的条件查询包装器,用于构建数据库查询条件
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
// 导入 MyBatis-Plus 的分页插件的 Page 类,用于实现分页查询
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
// 导入 MyBatis-Plus 提供的通用 Service 实现类,简化服务层代码编写
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
// 导入管理员数据访问层接口
|
|
|
|
|
import com.zsz.mapper.AdminMapper;
|
|
|
|
|
// 导入管理员实体类
|
|
|
|
|
import com.zsz.pojo.Admin;
|
|
|
|
|
// 导入用户登录表单实体类
|
|
|
|
|
import com.zsz.pojo.LoginForm;
|
|
|
|
|
// 导入管理员服务层接口
|
|
|
|
|
import com.zsz.service.AdminService;
|
|
|
|
|
// 导入 MD5 加密工具类,用于对密码进行加密处理
|
|
|
|
|
import com.zsz.util.MD5;
|
|
|
|
|
// 导入 Spring 框架的 Service 注解,将该类标记为服务层组件
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
// 导入 Spring 框架的事务管理注解,用于开启事务支持
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
// 导入 Spring 框架的工具类,用于字符串相关操作
|
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 管理员服务实现类,继承自 MyBatis-Plus 的 ServiceImpl 类,并实现 AdminService 接口。
|
|
|
|
|
* 该类提供了管理员相关的业务逻辑实现,如登录验证、根据 ID 获取管理员信息、分页查询管理员数据等。
|
|
|
|
|
*/
|
|
|
|
|
// 将该类标记为服务层组件,指定名称为 "adminServiceImpl"
|
|
|
|
|
@Service("adminServiceImpl")
|
|
|
|
|
// 开启事务支持,确保业务操作的原子性
|
|
|
|
|
@Transactional
|
|
|
|
|
public class AdminServiceImpl extends ServiceImpl<AdminMapper, Admin> implements AdminService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 管理员登录验证方法
|
|
|
|
|
* @param loginForm 用户登录表单对象,包含用户名和密码等信息
|
|
|
|
|
* @return 如果验证通过,返回对应的管理员对象;否则返回 null
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public Admin login(LoginForm loginForm) {
|
|
|
|
|
//创建QueryWrapper对象
|
|
|
|
|
// 创建 QueryWrapper 对象,用于构建数据库查询条件
|
|
|
|
|
QueryWrapper<Admin> adminQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
//拼接查询条件
|
|
|
|
|
// 拼接查询条件:用户名相等
|
|
|
|
|
adminQueryWrapper.eq("name", loginForm.getUsername());
|
|
|
|
|
//将密码转换成密文进行查询
|
|
|
|
|
// 将用户输入的密码进行 MD5 加密后,作为查询条件:密码相等
|
|
|
|
|
adminQueryWrapper.eq("password", MD5.encrypt(loginForm.getPassword()));
|
|
|
|
|
// 使用 BaseMapper 的 selectOne 方法,根据查询条件查询数据库,返回符合条件的唯一管理员对象
|
|
|
|
|
Admin admin = baseMapper.selectOne(adminQueryWrapper);
|
|
|
|
|
return admin;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据管理员 ID 获取管理员信息
|
|
|
|
|
* @param userId 管理员的 ID
|
|
|
|
|
* @return 如果存在对应的管理员信息,返回该管理员对象;否则返回 null
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public Admin getAdminById(Long userId) {
|
|
|
|
|
// 创建 QueryWrapper 对象,用于构建数据库查询条件
|
|
|
|
|
QueryWrapper<Admin> adminQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
// 拼接查询条件:管理员 ID 相等
|
|
|
|
|
adminQueryWrapper.eq("id", userId);
|
|
|
|
|
// 使用 BaseMapper 的 selectOne 方法,根据查询条件查询数据库,返回符合条件的唯一管理员对象
|
|
|
|
|
return baseMapper.selectOne(adminQueryWrapper);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 分页查询所有管理员数据
|
|
|
|
|
* @param adminPage 分页对象,包含页码、每页记录数等信息
|
|
|
|
|
* @param adminName 管理员姓名,用于模糊查询条件,可为空
|
|
|
|
|
* @return 包含分页查询结果的 Page 对象
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public Page<Admin> getAllAdminData(Page<Admin> adminPage, String adminName) {
|
|
|
|
|
// 创建 QueryWrapper 对象,用于构建数据库查询条件
|
|
|
|
|
QueryWrapper<Admin> adminQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
// 判断管理员姓名是否为空,如果不为空,则添加模糊查询条件
|
|
|
|
|
if (!StringUtils.isEmpty(adminName)) {
|
|
|
|
|
adminQueryWrapper.like("name", adminName);
|
|
|
|
|
}
|
|
|
|
|
// 使用 BaseMapper 的 selectPage 方法,根据分页信息和查询条件进行分页查询,返回分页结果
|
|
|
|
|
Page<Admin> page = baseMapper.selectPage(adminPage, adminQueryWrapper);
|
|
|
|
|
return page;
|
|
|
|
|
}
|
|
|
|
|