Springboot+vue之实现后端员工的修改

一、实现逻辑

Controller接收请求,先根据id查询信息,再调用Service层的edit()方法修改员工数据,规定只能允许修改员工的性别,状态,头像。

二、具体实现之基础准备

1、编写员工修改请求 EmployeeEditReq.java

@Getter
@Setter
@ApiModel(value = "员工修改")
public class EmployeeEditReq {
    @ApiModelProperty(value = "主键")
    @NotNull(message = "主键不能为空")
    private Long id;

    /**
     * 性别(0 女 1 男)
     */
    @ApiModelProperty(value = "性别(0 女 1 男)")
    @NotBlank(message = "性别不能为空")
    private String gender;

    /**
     * 状态(1停用,0正常)
     */
    @ApiModelProperty(value = "状态(1停用,0正常)")
    @NotBlank(message = "状态不能为空")
    private String status;
    /**
     * 头像
     */
    @ApiModelProperty(value = "头像")
    @NotBlank(message = "头像不能为空")
    private String avatar;
}

三、具体实现

1、Controller层

逻辑:先根据id查询到数据,再修改数据的内容。

@ApiOperation(value = "修改")
    @PutMapping
    public R edit(@RequestBody @Valid EmployeeEditReq req){
        //调用service层的edit()方法修改数据
        boolean result=this.employeeService.edit(req);
        return result?R.ok():R.build(AckCode.DATABASE_ERROR);
    }

    /**
     * 根据id查询数据
     * @param id
     * @return
     */
    @ApiOperation(value = "根据主键查询")
    @GetMapping(value = "{id}")
    public R<EmployeeResp> findById(@PathVariable(value = "id") Long id){
        //判断id是否为空
        if (Objects.isNull(id)){
            return R.build(AckCode.USER_PARAM_IS_NOT_NULL);
        }
        //根据Id获取数据
        Employee db=this.employeeService.getById(id);
        //如果数据为空,则返回信息,提示找不到数据
        if (Objects.isNull(db)){
            return R.build(AckCode.NOT_FOUND_DATA);
        }
        //转换对象
        EmployeeResp resp = new EmployeeResp();
        //复制需要的数据返回
        BeanUtils.copyProperties(db,resp);
        return R.okHasData(resp);
     }

2、Service层

1)EmployeeService.java

    /**
     * 员工修改
     * @param req
     * @return
     */
    boolean edit(EmployeeEditReq req);

2)EmployeeServiceImpl.java

逻辑:先获取数据的id,判断数据是否为空,如果为空则返回提示信息,不为空则将数据更新到数据库。

    @Override
    public boolean edit(EmployeeEditReq req) {
        Employee db = this.getById(req.getId());
        if (Objects.isNull(db)){
            throw new ServiceException(AckCode.NOT_FOUND_DATA);
        }
        //将修改的数据更新到数据库
        BeanUtils.copyProperties(req,db);
        db.setUpdateTime(new Date());
        db.setCreateBy("admin");
        return this.updateById(db);
    }

四、Swagger调试界面

1、根据id查询

2、修改 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值