员工管理系统中的新增与分页查询功能实现
本文将介绍一个简单的员工管理系统的实现,重点关注新增员工和分页查询功能的代码实现及需求分析,基于spring-boot和mybatis-plus实现。
需求分析
在一个企业内部管理系统中,员工管理是一个非常重要的功能。为了保证系统的高效运行和数据的安全,我们需要实现以下两个功能:
- 新增员工:管理员可以通过系统新增员工,系统会自动为新员工设置初始密码,并记录创建时间、更新时间以及操作管理员的信息。
- 分页查询员工:系统需要支持分页查询员工信息,并且可以根据员工姓名进行模糊查询,以便管理员能够方便地查找和管理员工。
功能实现
以下是实现新增员工和分页查询功能的代码
// 新增员工
@PostMapping
public R<String> save(HttpServletRequest request, @RequestBody Employee employee) {
// 设置初始密码123456,进行MD5加密
employee.setPassword(DigestUtils.md5DigestAsHex("123456".getBytes()));
Date date = new Date();
employee.setCreateTime(date);
employee.setUpdateTime(date);
// 获取当前用户id
Long employeeId = (Long) request.getSession().getAttribute("employee");
employee.setCreateUser(employeeId);
employee.setUpdateUser(employeeId);
employeeService.save(employee);
return R.success("新增员工成功");
}
// 分页查询员工
@GetMapping("/page")
public R<Page> page(int page, int pageSize, String name) {
// 构造分页构造器
Page pageInfo = new Page(page, pageSize);
// 构造条件构造器
LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.like(StringUtil.notNullNorEmpty(name), Employee::getName, name);
queryWrapper.orderByDesc(Employee::getCreateTime);
employeeService.page(pageInfo, queryWrapper);
return R.success(pageInfo);
}
新增员工功能
在新增员工功能中,主要步骤包括:
- 设置初始密码:每个新增的员工初始密码为
123456(此处可自行设置)
,并使用MD5算法进行加密,以保证密码的安全性。 - 设置创建和更新时间:通过
Date
对象获取当前时间,设置员工的创建时间和更新时间(此处要保证和数据库中的类型一致)。 - 获取当前用户ID:通过
HttpServletRequest
对象获取当前登录用户的ID,并设置为新员工的创建人和更新人。 - 保存员工信息:调用
employeeService.save(employee)
方法,将员工信息保存到数据库中。
分页查询员工功能
在使用分页构造器时还需进行相应的配置。
以下是分页配置的代码
package org.example.config;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MybatisPlusConfig {
//配置mybatisplus分页插件
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
}
在分页查询员工功能中,主要步骤包括:
- 构造分页构造器:通过传入的
page
和pageSize
参数,创建一个Page
对象,用于分页查询。 - 构造条件构造器:创建一个
LambdaQueryWrapper
对象,用于构造查询条件。- 使用
like
方法实现姓名的模糊查询,前提是name
参数不为空。 - 使用
orderByDesc
方法按照创建时间降序排序。
- 使用
- 执行分页查询:调用
employeeService.page(pageInfo, queryWrapper)
方法,执行分页查询并返回结果。
通过上述代码实现,我们可以完成员工管理系统中新增员工和分页查询的功能。这个实现不仅满足了基本的功能需求,还考虑了密码安全性、操作人记录等细节,使系统更加完善。