新增员工
1. 需求分析和设计
根据产品经理给出的原型进行分析
2. 设计接口
Path请求路径:约定前缀/admin为管理端发出请求,/user为用户端发出的请求
Method请求方式:增加员工POST,推送json表单
Headers:提交数据格式为json
Body:提交数据说明
3. 数据库设计
4. 代码开发
根据新增员工接口设计对应的DTO:
由于前端提交的数据宇实体类中对应的属性差别较大,故使用DTO来进行封装
首先完成controller中EmployeeController层,调用service中的EmployeeService层
@Autowired
EmployeeSerivice employeeSerice;
@PostMapping
@ApiOperation("新增员工")
public Result save(@RequestBody EmployeeDTO employeeDTO){
employeeSerivce.save(employeeDTO);
return Result.success();
}
在接口EmployeeService中实现声明的save方法
public interface EmployeeService{
void save(EmployeeDTO employeeDTO);
}
在EmployeeServiceImpl中实现save方法
public void save(EmployeeDTO employeeDTO){
Employee employee = new Employee();
//对象属性拷贝
BeanUtils.copyPropertities(employeeDTO,employee);
//设置账号默认状态,默认正常状态为1,0表示锁定
employee.setStatus(StatusConstant.ENABLE)
//设置密码,默认密码123456
employee.setPassword(DigestUtils.md5DigestAsHes(PasswordConstant.DEFAULT_PASSWORD.getBytes()))
//设置当前记录的创建时间和修改时间
employee.setCreateTime(LocalDateTime.now());
employee.setUpdateTime(LocalDateTime.now());
//设置当前记录的创建人id和修改人id
employee.setCreateUser(10L);
employee.setUpdateUser(10L);
}
save方法的实现中使用常量来优化代码,constant包中添加状态类StatusConstant,在常量类属性中声明定义常量的值
public class StatusConstant{
//启用
public static final Integer ENABLE = 1;
//禁用
public static final Integer DISABLE = 0;
}
在设置员工默认密码时,使用了md5进行加密,使用了DigestUtils工具类中的md5DigestAsHex方法
再在EmployeeServiceImpl中调用EmployeeMapper层,进行员工数据的插入操作
public class EmployeeServiceImpl implements EmployeeService{
private EmployeeMapper employeeMapper;
public void save(EmployeeDTO employeeDTO){
//中间段落省去生成员工实体的生成业务逻辑处理过程
employeeMapper.insert(employee);
}
}
最后实现mapper包中的EmployeeMapper中实现insert方法
@Mapper
public interface EmployeeMapper{
@Insert("insert into employee(name, username......)")
void insert(Employee employee);
}