全部开发者教程

企业级在线办公系统

添加新部门是在弹窗页面里面填写部门的信息,因为内容比较简单,所以我们写起来非常容易。

图片描述

一、编写持久层代码

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

<insert id="insert" parameterType="com.example.emos.api.db.pojo.TbDept">
    INSERT INTO tb_dept
    SET dept_name=#{deptName}
    <if test="tel!=null">
        ,tel=#{tel}
    </if>
    <if test="email!=null">
        ,email=#{email}
    </if>
    <if test="desc!=null">
        ,`desc`=#{desc}
    </if>
</insert>

TbDeptDao.java接口中,声明抽象DAO方法。

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

二、编写业务层代码

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

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

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

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

三、编写Web层代码

创建InsertDeptForm.java类,用于封装Ajax提交的数据。

@Data
@Schema(description = "添加部门表单")
public class InsertDeptForm {
    @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;

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

DeptController.java类中,定义Web方法。利用Swagger先登录系统,然后测试Web方法。

public class DeptController {
    ……
    @PostMapping("/insert")
    @Operation(summary = "添加部门")
    @SaCheckPermission(value = {"ROOT", "DEPT:INSERT"}, mode = SaMode.OR)
    public R insert(@Valid @RequestBody InsertDeptForm form) {
        TbDept dept = JSONUtil.parse(form).toBean(TbDept.class);
        int rows = deptService.insert(dept);
        return R.ok().put("rows", rows);
    }
}