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);
		}
	}
}}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值