全部开发者教程

企业级在线办公系统

上个小节我们实现了新增角色这个功能,那么按照CRUD的顺序,本小节我们要做修改角色信息的功能。

一、编写持久层代码

TbDeptDao.xml文件中,定义SQL语句。

<update id="update" parameterType="com.example.emos.api.db.pojo.TbDept">
    UPDATE tb_dept
    SET dept_name=#{deptName},
        tel=#{tel},
        email=#{email},
        `desc`=#{desc}
    WHERE id=#{id}
</update>

TbDeptDao.java接口中,定义抽象DAO方法。

public interface TbDeptDao {
    ……
    public int update(TbDept dept);
}

三、编写业务层代码

DeptService.java接口中,定义抽象方法。

public interface DeptService {
    ……
    public int update(TbDept dept);
}

DeptServiceImpl.java类中,实现抽象方法。

public class DeptServiceImpl implements DeptService {
    ……
    @Override
    public int update(TbDept dept) {
        int rows=deptDao.update(dept);
        return rows;
    }
}

四、编写Web层代码

创建UpdateDeptForm.java类,封装Ajax提交的数据。

@Schema(description = "更新部门表单")
@Data
public class UpdateDeptForm {
    @NotNull(message = "id不能为空")
    @Schema(description = "部门ID")
    private Integer id;

    @NotBlank(message = "deptName不能为空")
    @Schema(description = "部门名称")
    private String deptName;

    @Pattern(regexp = "^1\\d{10}$|^(0\\d{2,3}\\-){0,1}[1-9]\\d{6,7}$",message = "tel内容不正确")
    @Schema(description = "电话")
    private String tel;

    @Email(message = "email内容不正确")
    @Schema(description = "邮箱")
    private String email;

    @Schema(description = "备注")
    @Length(max = 20,message = "desc不能超过20个字符")
    private String desc;

}

DeptController.java类中,定义Web方法,然后就可以用Swagger测试这个Web方法了。

public class DeptController {
    ……
    @PostMapping("/update")
    @Operation(summary = "更新部门")
    @SaCheckPermission(value = {"ROOT", "DEPT:UPDATE"}, mode = SaMode.OR)
    public R update(@Valid @RequestBody UpdateDeptForm form) {
        TbDept dept = new TbDept();
        dept.setId(form.getId());
        dept.setDeptName(form.getDeptName());
        dept.setTel(form.getTel());
        dept.setEmail(form.getEmail());
        dept.setDesc(form.getDesc());
        int rows = deptService.update(dept);
        return R.ok().put("rows", rows);
    }
}