根据代码“@Data public class DesignDictDataOnlineVO { @ApiModelProperty(value = "元素分类编码") private String code; @ApiModelProperty(value = "元素分类名称") private String name; @ApiModelProperty(value = "元素分类定义") private String definition; @ApiModelProperty(value = "父级分类ID") private String parentId; @ApiModelProperty(value = "同级/下级元素分类") private String level; @ApiModelProperty(value = "是否抽象(Y:是;N:不是)") private String virtually; }”,补全下面代码,根据已有的元素分类列表新增同级或子级的一条元素分类编码:“@Autowired public List<StandardElementClassTreeVO> addOnlineElement(DesignDictDataOnlineVO vo) { }” 要求:1.填写元素分类编码(code) 元素分类名称(name) 父级分类ID(parentId,新增同级取选择分类的parentId,新增子级取选择分类的ID作为parentId) 是否抽象(virtually)2.对填写的code和name进行重名校验。3.校验code长度≤50、name长度≤50、definition≤200。4.填写的code校验不能有中文,填写virtually只能用Y或者N。
时间: 2024-03-27 13:40:26 浏览: 56
mybatis-plus使用@EnumValue处理枚举类型的示例代码
代码实现如下:
```
@Autowired
public List<StandardElementClassTreeVO> addOnlineElement(DesignDictDataOnlineVO vo) {
String code = vo.getCode();
String name = vo.getName();
String parentId = vo.getParentId();
String virtually = vo.getVirtually();
// 重名校验
boolean isCodeExists = checkCodeExists(code);
boolean isNameExists = checkNameExists(name);
if (isCodeExists || isNameExists) {
throw new RuntimeException("编码或名称已存在");
}
// 校验长度
if (code.length() > 50 || name.length() > 50 || vo.getDefinition().length() > 200) {
throw new RuntimeException("编码长度、名称长度或定义长度超过限制");
}
// 校验code不能有中文,virtually只能为Y或N
if (!checkCodeFormat(code) || (!"Y".equals(virtually) && !"N".equals(virtually))) {
throw new RuntimeException("编码格式不正确或是否抽象填写错误");
}
// 新增元素分类
// TODO: 根据parentId新增同级或子级的元素分类,并返回新增后的元素分类列表
}
// 检查编码是否重名
private boolean checkCodeExists(String code) {
// TODO: 根据编码查询元素分类列表,判断是否已存在相同编码的元素分类
return false;
}
// 检查名称是否重名
private boolean checkNameExists(String name) {
// TODO: 根据名称查询元素分类列表,判断是否已存在相同名称的元素分类
return false;
}
// 检查编码是否符合格式要求
private boolean checkCodeFormat(String code) {
// TODO: 校验编码是否符合要求,不能有中文
return true;
}
```
阅读全文