这个模块中主要实现的功能
- 部门管理 新增和修改
- 用户管理
创建一个DeptParam
这个类用来作为前台与后端的交互的类,从前台取到数据然后封装以后再处理到数据库当中去。
主要包括的属性可以根据数据库中的内容来创建。
包括id,parentId,name,remark,seq在加上各种对于类的限制。
创建SysDeptController
这个类主要是用来处理来自dispatchServlet处理来的映射,体现了SpringMVC的思想。
主要是定义接口具体的实现交给SysDeptService去处理。
主要的接口有 save() update() tree() (这个接口是把数据处理成为树形结构) page()(这个方法是返回一个页面)
创建SysDeptService
这个类负责的是对于contoller方法中的具体的实现。
首先是对于save的实现。因为这个类比较复杂所以贴一下每个方法的实现。
public void save(DeptParam param){
BeanValidator.check(param);
if(checkExist(param.getParentId(),param.getName(),param.getId())){
throw new ParamterException("同一层级下面存在相同名称的部门");
}
SysDept dept = SysDept.builder().name(param.getName()).parentId(param.getParentId()).remark(param.getRemark())
.seq(param.getSeq()).build();
dept.setLevel(LevelUnit.calculate(getLevel(param.getParentId()),param.getParentId());
dept.setOperator("System Save");
dept.setOperatorIp("127.0.0.1");
dept.setOperatorTime(new Date());
sysDeptMappet.insertSelective(dept);
}
这个方法中值得注意的点:
1 是使用了lombok的 @Builder的注解了SysDept这个类 这样便可以使用类似动态语言的构建的方法,方便开发
2 使用到了工具包LevelUnit中的calculate()的方法用来计算当前的层级
3 使用sysMapper这个方法是mybatis-generator自动生成的类的方法,insertSelective() 和insert的区别在于可以从xml文件中看到,selective多了对于参数的非null判断