3-1 新增部门接口

1、创建表单视图对象 param

@Data
public class DeptParam {
	private Integer id;
	
	@NotBlank(message = "部门名称不可以为空")
	@Length(max = 15, min = 2, message = "部门名称长度需要在2-15个字之间")
	private String name;
	
	private Integer parentId;
	
	@NotNull(message = "展示顺序不可以为空")
	private Integer seq;
	
	@Length(max = 150, message = "备注的长度不能超过150个字")
	private String remark;
	
}

2、SysDeptController

@Controller
@RequestMapping("/sys/dept")
@Slf4j
public class SysDeptController {
	@Autowired
	private SysDeptService sysDeptService;
	
	@RequestMapping("/save")
	@ResponseBody
	public JsonData saveDept(DeptParam param) {
		sysDeptService.save(param);
		return JsonData.success();
	}
}

3、SysDeptService

在 SysDept 实体类添加 @Builder 等注解

@Builder
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class SysDept {}
@Service
public class SysDeptService {
	
	@Autowired
	private SysDeptMapper sysDeptMapper;
	
	public void save(@Valid DeptParam param) {
		if(checkExist(param.getParentId(), param.getName(), param.getId())) {
			throw new ParamException("同一层级下存在相同名称的部门");
		}
		SysDept dept = SysDept.builder().name(param.getName())
						.parentId(param.getParentId())
						.seq(param.getSeq())
						.remark(param.getRemark())
						.build();
		dept.setLevel(LevelUtil.calculateLevel(getLevel(param.getParentId()), param.getParentId()));
		dept.setOperator("system");	// TODO
		dept.setOperateId("127.0.0.1"); // TODO
		dept.setOperateTime(new Date());
		sysDeptMapper.insertSelective(dept);
	}
	
	// 检查同一层级下是否存在相同名称的部门
	private boolean checkExist(Integer parentId, String deptName, Integer deptId) {
		// TODO
		return false;
	}
	
	// 获取部门的 Level
	private String getLevel(Integer deptId) {
		SysDept dept = sysDeptMapper.selectByPrimaryKey(deptId);
		if(dept == null) {
			return null;
		}
		return dept.getLevel();
	}
}

计算部门 level 的工具类

public class LevelUtil {
	public final static String SEPARATOR = ".";
	public final static String ROOT = "0";

	// 1  1.1  1.2  2 
	public static String calculateLevel(String parentLevel, int parentId) {
		// pom文件添加依赖 commons-lang3
		if(StringUtils.isBlank(parentLevel)) {
			return ROOT;
		} else {
			return StringUtils.join(parentLevel, SEPARATOR, parentId);
		}
	}
}}

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页