编辑员工
Controller:
/**
* 根据id查询员工信息
* @param id
* @return
*/
@GetMapping("/{id}")
@ApiOperation("根据id查询员工信息")
public Result<Employee> getById(@PathVariable Long id) {
log.info("根据id查询员工信息:{}", id);
Employee employee = employeeService.getById(id);
return Result.success(employee);
}
/**
* 编辑员工信息
* @param employeeDTO
* @return
*/
@PutMapping
@ApiOperation("编辑员工信息")
//不确定后期前端可能可以修改更多个字段,所以用DTO接
public Result update(@RequestBody EmployeeDTO employeeDTO) {
log.info("编辑员工信息:{}", employeeDTO);
employeeService.update(employeeDTO);
return Result.success();
}
Impl:
/**
* 根据id查询员工信息
* @param id
* @return
*/
@Override
public Employee getById(Long id) {
Employee employee = employeeMapper.getById(id);
//mapper的getById()查完全部信息再回到此处
//即将return回去的employee里面也包括密码,这是不希望传到前端的
//那么需要提前一步return且晚一步mapper查询(覆盖)在此设置一下密码******
employee.setPassword("******");
return employee;
}
/**
* 编辑员工信息
* @param employeeDTO
*/
@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);
}
Xml:
全能update之前提到过,这次复用了吧
<update id="update">
update employee
<set>
<if test="name != null">name = #{name},</if>
<if test="username != null">username = #{username},</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>
<select id="getById" resultType="com.sky.entity.Employee">
select * from employee where id = #{id}
</select>