|
|
|
@ -1,46 +1,97 @@
|
|
|
|
|
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;
|
|
|
|
|
// 导入教师数据访问层的 Mapper 接口
|
|
|
|
|
import com.zsz.mapper.TeacherMapper;
|
|
|
|
|
// 导入用户登录表单实体类
|
|
|
|
|
import com.zsz.pojo.LoginForm;
|
|
|
|
|
// 导入教师实体类
|
|
|
|
|
import com.zsz.pojo.Teacher;
|
|
|
|
|
// 导入教师服务层接口
|
|
|
|
|
import com.zsz.service.TeacherService;
|
|
|
|
|
// 导入 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 类,实现了 TeacherService 接口。
|
|
|
|
|
* 该类负责处理与教师相关的业务逻辑,如教师登录验证、根据 ID 获取教师信息以及分页查询教师数据。
|
|
|
|
|
*/
|
|
|
|
|
// 将该类标记为服务层组件,指定名称为 "teacherServiceImpl"
|
|
|
|
|
@Service("teacherServiceImpl")
|
|
|
|
|
// 开启事务支持,确保业务操作的原子性
|
|
|
|
|
@Transactional
|
|
|
|
|
public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> implements TeacherService {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 教师登录验证方法
|
|
|
|
|
* @param loginForm 用户登录表单对象,包含用户名和密码等信息
|
|
|
|
|
* @return 如果验证通过,返回对应的教师对象;否则返回 null
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public Teacher login(LoginForm loginForm) {
|
|
|
|
|
// 创建 QueryWrapper 对象,用于构建数据库查询条件
|
|
|
|
|
QueryWrapper<Teacher> teacherQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
teacherQueryWrapper.eq("name",loginForm.getUsername());
|
|
|
|
|
// 拼接查询条件:教师姓名等于登录表单中的用户名
|
|
|
|
|
teacherQueryWrapper.eq("name", loginForm.getUsername());
|
|
|
|
|
// 拼接查询条件:教师密码(经过 MD5 加密)等于登录表单中的密码加密后的值
|
|
|
|
|
teacherQueryWrapper.eq("password", MD5.encrypt(loginForm.getPassword()));
|
|
|
|
|
// 调用 BaseMapper 的 selectOne 方法,根据查询条件查询数据库,返回符合条件的唯一教师对象
|
|
|
|
|
Teacher teacher = baseMapper.selectOne(teacherQueryWrapper);
|
|
|
|
|
return teacher;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据教师 ID 获取教师信息
|
|
|
|
|
* @param userId 教师的 ID
|
|
|
|
|
* @return 如果存在对应的教师信息,返回该教师对象;否则返回 null
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public Teacher getTeacherById(Long userId) {
|
|
|
|
|
// 创建 QueryWrapper 对象,用于构建数据库查询条件
|
|
|
|
|
QueryWrapper<Teacher> teacherQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
teacherQueryWrapper.eq("id",userId);
|
|
|
|
|
// 拼接查询条件:教师 ID 等于传入的用户 ID
|
|
|
|
|
teacherQueryWrapper.eq("id", userId);
|
|
|
|
|
// 调用 BaseMapper 的 selectOne 方法,根据查询条件查询数据库,返回符合条件的唯一教师对象
|
|
|
|
|
return baseMapper.selectOne(teacherQueryWrapper);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 分页查询教师数据
|
|
|
|
|
* @param teacherPage 分页对象,包含页码、每页记录数等信息
|
|
|
|
|
* @param teacher 教师实体对象,用于构建查询条件,如班级名称、教师姓名等
|
|
|
|
|
* @return 包含分页查询结果的 Page 对象
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public Page<Teacher> getTeacherData(Page<Teacher> teacherPage, Teacher teacher) {
|
|
|
|
|
// 创建 QueryWrapper 对象,用于构建数据库查询条件
|
|
|
|
|
QueryWrapper<Teacher> teacherQueryWrapper = new QueryWrapper<>();
|
|
|
|
|
if (!StringUtils.isEmpty(teacher.getClazzName())){
|
|
|
|
|
teacherQueryWrapper.like("clazz_name",teacher.getClazzName());
|
|
|
|
|
|
|
|
|
|
// 判断教师对象中的班级名称是否为空,如果不为空,则添加模糊查询条件
|
|
|
|
|
if (!StringUtils.isEmpty(teacher.getClazzName())) {
|
|
|
|
|
// 添加班级名称的模糊查询条件,对应数据库表中的 clazz_name 字段
|
|
|
|
|
teacherQueryWrapper.like("clazz_name", teacher.getClazzName());
|
|
|
|
|
}
|
|
|
|
|
if (!StringUtils.isEmpty(teacher.getName())){
|
|
|
|
|
teacherQueryWrapper.like("name",teacher.getName());
|
|
|
|
|
|
|
|
|
|
// 判断教师对象中的教师姓名是否为空,如果不为空,则添加模糊查询条件
|
|
|
|
|
if (!StringUtils.isEmpty(teacher.getName())) {
|
|
|
|
|
// 添加教师姓名的模糊查询条件,对应数据库表中的 name 字段
|
|
|
|
|
teacherQueryWrapper.like("name", teacher.getName());
|
|
|
|
|
}
|
|
|
|
|
Page<Teacher> Page = baseMapper.selectPage(teacherPage, teacherQueryWrapper);
|
|
|
|
|
return Page;
|
|
|
|
|
|
|
|
|
|
// 调用 BaseMapper 的 selectPage 方法,根据分页信息和查询条件进行分页查询
|
|
|
|
|
// 原代码中 Page 变量名首字母大写,建议改为小写,遵循 Java 命名规范
|
|
|
|
|
Page<Teacher> teacherPageResult = baseMapper.selectPage(teacherPage, teacherQueryWrapper);
|
|
|
|
|
return teacherPageResult;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|