diff --git a/src/main/java/com/zsz/service/impl/AdminServiceImpl.java b/src/main/java/com/zsz/service/impl/AdminServiceImpl.java index 7d189c9..f495571 100644 --- a/src/main/java/com/zsz/service/impl/AdminServiceImpl.java +++ b/src/main/java/com/zsz/service/impl/AdminServiceImpl.java @@ -1,46 +1,87 @@ 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 implements AdminService { + + /** + * 管理员登录验证方法 + * @param loginForm 用户登录表单对象,包含用户名和密码等信息 + * @return 如果验证通过,返回对应的管理员对象;否则返回 null + */ @Override public Admin login(LoginForm loginForm) { - //创建QueryWrapper对象 + // 创建 QueryWrapper 对象,用于构建数据库查询条件 QueryWrapper adminQueryWrapper = new QueryWrapper<>(); - //拼接查询条件 - adminQueryWrapper.eq("name",loginForm.getUsername()); - //将密码转换成密文进行查询 + // 拼接查询条件:用户名相等 + 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 adminQueryWrapper = new QueryWrapper<>(); - adminQueryWrapper.eq("id",userId); + // 拼接查询条件:管理员 ID 相等 + adminQueryWrapper.eq("id", userId); + // 使用 BaseMapper 的 selectOne 方法,根据查询条件查询数据库,返回符合条件的唯一管理员对象 return baseMapper.selectOne(adminQueryWrapper); } + /** + * 分页查询所有管理员数据 + * @param adminPage 分页对象,包含页码、每页记录数等信息 + * @param adminName 管理员姓名,用于模糊查询条件,可为空 + * @return 包含分页查询结果的 Page 对象 + */ @Override public Page getAllAdminData(Page adminPage, String adminName) { + // 创建 QueryWrapper 对象,用于构建数据库查询条件 QueryWrapper adminQueryWrapper = new QueryWrapper<>(); - if (!StringUtils.isEmpty(adminName)){ + // 判断管理员姓名是否为空,如果不为空,则添加模糊查询条件 + if (!StringUtils.isEmpty(adminName)) { adminQueryWrapper.like("name", adminName); } + // 使用 BaseMapper 的 selectPage 方法,根据分页信息和查询条件进行分页查询,返回分页结果 Page page = baseMapper.selectPage(adminPage, adminQueryWrapper); return page; } -} +} \ No newline at end of file