From 9f1994c9d61e035d7d11d67209026fa183e7a831 Mon Sep 17 00:00:00 2001 From: 75349 <753495441@qq.com> Date: Fri, 16 Dec 2022 11:07:19 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=96=B0=E5=A2=9E=E5=88=9B=E5=BB=BA=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E6=95=B0=E6=8D=AE=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mysql/controller/BaseDataController.java | 36 ++++++++++++++ .../liteflow/mysql/model/CommonResult.java | 8 +++ .../model/baseData/CreateBaseDataFrom.java | 16 ++++++ .../mysql/service/BaseDataService.java | 7 ++- .../service/impl/BaseDataServiceImpl.java | 49 ++++++++++++++++--- 5 files changed, 108 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/example/liteflow/mysql/controller/BaseDataController.java create mode 100644 src/main/java/com/example/liteflow/mysql/model/baseData/CreateBaseDataFrom.java diff --git a/src/main/java/com/example/liteflow/mysql/controller/BaseDataController.java b/src/main/java/com/example/liteflow/mysql/controller/BaseDataController.java new file mode 100644 index 0000000..31894a5 --- /dev/null +++ b/src/main/java/com/example/liteflow/mysql/controller/BaseDataController.java @@ -0,0 +1,36 @@ +package com.example.liteflow.mysql.controller; + +import com.example.liteflow.mysql.model.CommonResult; +import com.example.liteflow.mysql.model.baseData.CreateBaseDataFrom; +import com.example.liteflow.mysql.service.BaseDataService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author: 陈韦龙 + * @date: 2022年12月16日 10:18 + */ +@Slf4j +@RestController +@RequestMapping("/baseData") +public class BaseDataController { + + @Resource + private BaseDataService baseDataService; + + @PostMapping("/createBaseData") + public CommonResult createBaseData(@RequestBody CreateBaseDataFrom createBaseDataFrom) { + return baseDataService.createBaseData(createBaseDataFrom); + } + + @PostMapping("/batchCreateBaseData") + public CommonResult batchCreateBaseData(@RequestBody List createBaseDataFromList) { + return baseDataService.batchCreateBaseData(createBaseDataFromList); + } +} diff --git a/src/main/java/com/example/liteflow/mysql/model/CommonResult.java b/src/main/java/com/example/liteflow/mysql/model/CommonResult.java index 40307c5..9230ff8 100644 --- a/src/main/java/com/example/liteflow/mysql/model/CommonResult.java +++ b/src/main/java/com/example/liteflow/mysql/model/CommonResult.java @@ -26,6 +26,14 @@ public class CommonResult { return commonResult; } + public static CommonResult fail(String message, Object obj) { + CommonResult commonResult = new CommonResult(); + commonResult.setCode(999); + commonResult.setMessage(message); + commonResult.setData(obj); + return commonResult; + } + public static CommonResult success(String message) { CommonResult commonResult = new CommonResult(); commonResult.setCode(200); diff --git a/src/main/java/com/example/liteflow/mysql/model/baseData/CreateBaseDataFrom.java b/src/main/java/com/example/liteflow/mysql/model/baseData/CreateBaseDataFrom.java new file mode 100644 index 0000000..a973919 --- /dev/null +++ b/src/main/java/com/example/liteflow/mysql/model/baseData/CreateBaseDataFrom.java @@ -0,0 +1,16 @@ +package com.example.liteflow.mysql.model.baseData; + +import lombok.Data; + +/** + * @author: 陈韦龙 + * @date: 2022年12月16日 10:20 + */ +@Data +public class CreateBaseDataFrom { + private String type; + private String templateId; + private String content; + private String contentType; + private String contentName; +} diff --git a/src/main/java/com/example/liteflow/mysql/service/BaseDataService.java b/src/main/java/com/example/liteflow/mysql/service/BaseDataService.java index 3138d90..95ad7d0 100644 --- a/src/main/java/com/example/liteflow/mysql/service/BaseDataService.java +++ b/src/main/java/com/example/liteflow/mysql/service/BaseDataService.java @@ -2,6 +2,10 @@ package com.example.liteflow.mysql.service; import com.baomidou.mybatisplus.extension.service.IService; import com.example.liteflow.mysql.entity.BaseDataEntity; +import com.example.liteflow.mysql.model.CommonResult; +import com.example.liteflow.mysql.model.baseData.CreateBaseDataFrom; + +import java.util.List; /** * @author: 陈韦龙 @@ -9,6 +13,7 @@ import com.example.liteflow.mysql.entity.BaseDataEntity; */ public interface BaseDataService extends IService { BaseDataEntity getByTypeAndTemplateId(String type, String attribution); - BaseDataEntity getByTypeAndName(String type, String attribution, String contentName); + CommonResult createBaseData(CreateBaseDataFrom createBaseDataFrom); + CommonResult batchCreateBaseData(List createBaseDataFromList); } diff --git a/src/main/java/com/example/liteflow/mysql/service/impl/BaseDataServiceImpl.java b/src/main/java/com/example/liteflow/mysql/service/impl/BaseDataServiceImpl.java index c2adf32..69ab62c 100644 --- a/src/main/java/com/example/liteflow/mysql/service/impl/BaseDataServiceImpl.java +++ b/src/main/java/com/example/liteflow/mysql/service/impl/BaseDataServiceImpl.java @@ -1,13 +1,26 @@ package com.example.liteflow.mysql.service.impl; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +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; +import com.example.liteflow.mysql.model.baseData.CreateBaseDataFrom; import com.example.liteflow.mysql.service.BaseDataService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.lang.reflect.Field; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + /** * @author: 陈韦龙 * @date: 2022年12月06日 09:59 @@ -25,12 +38,34 @@ public class BaseDataServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(BaseDataEntity::getType, type) - .eq(BaseDataEntity::getTemplateId, attribution) - .eq(BaseDataEntity::getContentName, contentName); - return this.getOne(queryWrapper); + public CommonResult createBaseData(CreateBaseDataFrom createBaseDataFrom) { + log.info("进入【创建基础数据】方法 = {}", JSONUtil.toJsonStr(createBaseDataFrom)); + String type = createBaseDataFrom.getType(); + Field[] fields = ReflectUtil.getFields(BaseCenter.class); + List fieldNameList = Arrays.stream(fields).map(Field::getName).collect(Collectors.toList()); + if (!fieldNameList.contains(type)) { + return CommonResult.fail("添加数据无对应字段"); + } + BaseDataEntity baseDataEntity = BeanUtil.toBean(createBaseDataFrom, BaseDataEntity.class); + this.save(baseDataEntity); + return CommonResult.success("创建基础数据成功", baseDataEntity); + } + + @Override + public CommonResult batchCreateBaseData(List createBaseDataFromList) { + log.info("进入【批量创建基础数据】方法 = {}", JSONUtil.toJsonStr(createBaseDataFromList)); + List notExistsType = createBaseDataFromList.stream().filter(createBaseDataFrom -> { + String type = createBaseDataFrom.getType(); + Field[] fields = ReflectUtil.getFields(BaseCenter.class); + List 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); + } + List baseDataEntityList = createBaseDataFromList.stream() + .map(createBaseDataFrom -> BeanUtil.toBean(createBaseDataFrom, BaseDataEntity.class)).collect(Collectors.toList()); + this.saveBatch(baseDataEntityList); + return CommonResult.success("批量创建基础数据成功", baseDataEntityList); } }