org.jeecg.common.util.YouBianCodeUtil Java Examples

The following examples show how to use org.jeecg.common.util.YouBianCodeUtil. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: SysCategoryServiceImpl.java    From jeecg-boot-with-activiti with MIT License 4 votes vote down vote up
@Override
public void addSysCategory(SysCategory sysCategory) {
	String categoryCode = "";
	String categoryPid = ISysCategoryService.ROOT_PID_VALUE;
	String parentCode = null;
	if(oConvertUtils.isNotEmpty(sysCategory.getPid())){
		categoryPid = sysCategory.getPid();

		//PID 不是根节点 说明需要设置父节点 hasChild 为1
		if(!ISysCategoryService.ROOT_PID_VALUE.equals(categoryPid)){
			SysCategory parent = baseMapper.selectById(categoryPid);
			parentCode = parent.getCode();
			if(parent!=null && !"1".equals(parent.getHasChild())){
				parent.setHasChild("1");
				baseMapper.updateById(parent);
			}
		}
	}
	/*
	* 分成三种情况
	* 1.数据库无数据 调用YouBianCodeUtil.getNextYouBianCode(null);
	* 2.添加子节点,无兄弟元素 YouBianCodeUtil.getSubYouBianCode(parentCode,null);
	* 3.添加子节点有兄弟元素 YouBianCodeUtil.getNextYouBianCode(lastCode);
	* */
	//找同类 确定上一个最大的code值
	LambdaQueryWrapper<SysCategory> query = new LambdaQueryWrapper<SysCategory>()
			.eq(SysCategory::getPid,categoryPid)
			.orderByDesc(SysCategory::getCode);
	List<SysCategory> list = baseMapper.selectList(query);
	if(list==null || list.size()==0){
		if(ISysCategoryService.ROOT_PID_VALUE.equals(categoryPid)){
			//情况1
			categoryCode = YouBianCodeUtil.getNextYouBianCode(null);
		}else{
			//情况2
			categoryCode = YouBianCodeUtil.getSubYouBianCode(parentCode,null);
		}
	}else{
		//情况3
		categoryCode = YouBianCodeUtil.getNextYouBianCode(list.get(0).getCode());
	}
	sysCategory.setCode(categoryCode);
	sysCategory.setPid(categoryPid);
	baseMapper.insert(sysCategory);
}