前言
1--苍穹外卖-SpringBoot项目介绍及环境搭建 详解-CSDN博客
2--苍穹外卖-SpringBoot项目中员工管理 详解(一)-CSDN博客
3--苍穹外卖-SpringBoot项目中员工管理 详解(二)-CSDN博客
4--苍穹外码-SpringBoot项目中分类管理 详解-CSDN博客
5--苍穹外卖-SpringBoot项目中菜品管理 详解(一)-CSDN博客
6--苍穹外卖-SpringBoot项目中菜品管理 详解(二)-CSDN博客
7--苍穹外卖-SpringBoot项目中套餐管理 详解(一)-CSDN博客
8--苍穹外卖-SpringBoot项目中套餐管理 详解(二)-CSDN博客
9--苍穹外卖-SpringBoot项目中Redis的介绍及其使用实例 详解-CSDN博客
10--苍穹外卖-SpringBoot项目中微信登录 详解-CSDN博客
目录
员工管理
启用禁用员工账号
需求分析和设计
业务规则:
可以对状态为“启用” 的员工账号进行“禁用”操作
可以对状态为“禁用”的员工账号进行“启用”操作
状态为“禁用”的员工账号不能登录系统
- 路径参数携带状态值。
- 同时,把id传递过去,明确对哪个用户进行操作。
- 返回数据code状态是必须,其它是非必须。
代码开发
Controller层
在sky-server模块中,根据接口设计中的请求参数形式对应的在 EmployeeController 中创建启用禁用员工账号的方法:
//启用禁用员工账号
@PostMapping("/status/{status}")
@ApiOperation("启用禁用员工账号")
public Result startOrStop(@PathVariable Integer status,Long id){
log.info("启用禁用员工账号:{},{}",status,id);
employeeService.startOrStop(status,id);
return Result.success();
}
Service层接口
在 EmployeeService 接口中声明启用禁用员工账号的业务方法:
//启用禁用员工账号
void startOrStop(Integer status, Long id);
Service层实现类
在 EmployeeServiceImpl 中实现启用禁用员工账号的业务方法:
//启用禁用员工账号
@Override
public void startOrStop(Integer status, Long id) {
/*Employee employee = new Employee();
employee.setStatus(status);
employee.setId(id);*/
Employee employee = Employee.builder()
.status(status)
.id(id)
.build();
employeeMapper.update(employee);
}
Mapper层
在 EmployeeMapper 接口中声明 update 方法:
//根据主键动态修改属性
void update(Employee employee);
在 EmployeeMapper.xml 中编写SQL:
<!-- 启用禁用员工账号-->
<update id="update" parameterType="Employee">
update employee
<set>
<if test="name!=null">name=#{name},</if>
<if test="username!=null">username=#{usename},</if>
<if test="password!=null">password=#{password},</if>
<if test="phone!=null">phone=#{phone},</if>
<if test="sex!=null">sex=#{sex},</if>
<if test="idNumber!=null">id_Number=#{idNumber},</if>
<if test="updateTime!=null">update_Time=#{updateTime},</if>
<if test="updateUser!=null">update_User=#{updateUser},</if>
<if test="status!=null">status=#{status},</if>
</set>
where id=#{id}
</update>
功能测试
编辑员工
需求分析和设计
编辑员工功能涉及到两个接口:
-
根据id查询员工信息
-
编辑员工信息
代码开发
回显员工信息功能
Controller层
在 EmployeeController 中创建 getById 方法:
//根据id查询员工信息
@GetMapping("/id")
@ApiOperation("根据id查询员工信息")
public Result<Employee> getById(@PathVariable Long id){
Employee employee=employeeService.getById(id);
return Result.success(employee);
}
Service层接口
在 EmployeeService 接口中声明 getById 方法:
//根据id查询员工
Employee getById(Long id);
Service层实现类
在 EmployeeServiceImpl 中实现 getById 方法:
//根据id查询员工
@Override
public Employee getById(Long id) {
Employee employee=employeeMapper.getById(id);
employee.setPassword("****");
return employee;
}
Mapper层
在 EmployeeMapper 接口中声明 getById 方法:
//根据id查询员工信息
@Select("select*from employee where id=#{id}")
Employee getById(Long id);
修改员工信息功能
Controller层
在 EmployeeController 中创建 update 方法:
//编辑员工信息
@PutMapping
@ApiOperation("编辑员工信息")
public Result update(@RequestBody EmployeeDTO employeeDTO){
log.info("编辑员工信息:{}",employeeDTO);
employeeService.update(employeeDTO);
return Result.success();
}
Service层接口
在 EmployeeService 接口中声明 update 方法:
//编辑员工信息
void update(EmployeeDTO employeeDTO);
Service层实现类
在 EmployeeServiceImpl 中实现 update 方法:
//编辑员工信息
@Override
public void update(EmployeeDTO employeeDTO) {
Employee employee=new Employee();
BeanUtils.copyProperties(employeeDTO,employee);
employee.setUpdateTime(LocalDateTime.now());
employee.setUpdateUser(BaseContext.getCurrentId());
employeeMapper.update(employee);
}