当前基石系统的数据表主键都是以ID为唯一主键,code是用户确定或系统根据用户编码规则自动生成,业务上需要保证code的唯一性,所以在保存时,需要检查相关业务代码的唯一性。
例如:计算类型编号是要保证唯一的,保存时需要检查是否已经存在
增加校验
在Service方法实例CalculateTypeServiceImpl.java中增加校验Code唯一性的逻辑
public Long createCalculateType(CalculateTypeCreateReqVO createReqVO) {
// 校验Code唯一性
validateCalculateTypeExists(createReqVO.getCalculateTypeCode());
// 插入
CalculateTypeDO calculateType = CalculateTypeConvert.INSTANCE.convert(createReqVO);
calculateTypeMapper.insert(calculateType);
// 返回
return calculateType.getId();
}
增加校验方法
增加方法,根据code校验唯一性
private void validateCalculateTypeExists(String code)
private void validateDimensionExists(String fieldName) {
if (CollectionUtils.isNotEmpty(dimensionMapper.selectByCode(fieldName))){
throw exception(DIMENSION_EXISTS);
}
}
参考方法,根据id校验唯一性
private void validateCalculateTypeExists(Long id)
增加取数方法
增加根据code从数据库获取数据的方法,用来判断code唯一性
package cn.iocoder.yudao.module.condition.dal.mysql.calculatetype
default List<CalculateTypeDO> selectByCode(String code){
return selectList(new LambdaQueryWrapperX<CalculateTypeDO>()
.eqIfPresent(CalculateTypeDO::getCalculateTypeCode, code));
}