1.修改创建基础数据方法,添加校验

This commit is contained in:
chenweilong 2022-12-16 11:19:47 +08:00
parent 9f1994c9d6
commit 0a8964d69a
1 changed files with 24 additions and 9 deletions

View File

@ -1,13 +1,12 @@
package com.example.liteflow.mysql.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.liteflow.mysql.entity.BaseDataEntity;
import com.example.liteflow.mysql.enums.BaseDataContentTypeEnum;
import com.example.liteflow.mysql.mapper.BaseDataMapper;
import com.example.liteflow.mysql.model.BaseCenter;
import com.example.liteflow.mysql.model.CommonResult;
@ -17,6 +16,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@ -46,6 +46,14 @@ public class BaseDataServiceImpl extends ServiceImpl<BaseDataMapper, BaseDataEnt
if (!fieldNameList.contains(type)) {
return CommonResult.fail("添加数据无对应字段");
}
String templateId = createBaseDataFrom.getTemplateId();
LambdaQueryWrapper<BaseDataEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BaseDataEntity::getTemplateId, templateId)
.eq(BaseDataEntity::getType, type);
BaseDataEntity checkExists = this.getOne(queryWrapper);
if (ObjectUtil.isNotNull(checkExists)) {
return CommonResult.fail("已存在该字段基础数据", createBaseDataFrom);
}
BaseDataEntity baseDataEntity = BeanUtil.toBean(createBaseDataFrom, BaseDataEntity.class);
this.save(baseDataEntity);
return CommonResult.success("创建基础数据成功", baseDataEntity);
@ -54,17 +62,24 @@ public class BaseDataServiceImpl extends ServiceImpl<BaseDataMapper, BaseDataEnt
@Override
public CommonResult batchCreateBaseData(List<CreateBaseDataFrom> createBaseDataFromList) {
log.info("进入【批量创建基础数据】方法 = {}", JSONUtil.toJsonStr(createBaseDataFromList));
List<CreateBaseDataFrom> notExistsType = createBaseDataFromList.stream().filter(createBaseDataFrom -> {
List<BaseDataEntity> baseDataEntityList = new ArrayList<>();
for (CreateBaseDataFrom createBaseDataFrom : createBaseDataFromList) {
String type = createBaseDataFrom.getType();
Field[] fields = ReflectUtil.getFields(BaseCenter.class);
List<String> fieldNameList = Arrays.stream(fields).map(Field::getName).collect(Collectors.toList());
return !fieldNameList.contains(type);
}).collect(Collectors.toList());
if (CollUtil.isNotEmpty(notExistsType)) {
return CommonResult.fail("添加数据无对应字段", notExistsType);
if (!fieldNameList.contains(type)) {
return CommonResult.fail("添加数据无对应字段", createBaseDataFrom);
}
String templateId = createBaseDataFrom.getTemplateId();
LambdaQueryWrapper<BaseDataEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BaseDataEntity::getTemplateId, templateId)
.eq(BaseDataEntity::getType, type);
BaseDataEntity checkExists = this.getOne(queryWrapper);
if (ObjectUtil.isNotNull(checkExists)) {
return CommonResult.fail("已存在该字段基础数据", createBaseDataFrom);
}
baseDataEntityList.add(BeanUtil.toBean(createBaseDataFrom, BaseDataEntity.class));
}
List<BaseDataEntity> baseDataEntityList = createBaseDataFromList.stream()
.map(createBaseDataFrom -> BeanUtil.toBean(createBaseDataFrom, BaseDataEntity.class)).collect(Collectors.toList());
this.saveBatch(baseDataEntityList);
return CommonResult.success("批量创建基础数据成功", baseDataEntityList);
}