添加新部门是在弹窗页面里面填写部门的信息,因为内容比较简单,所以我们写起来非常容易。
一、编写持久层代码
在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);
}
}