From ad17d8fbff9e43b94caadfbf8ca3b5d247f78cb4 Mon Sep 17 00:00:00 2001 From: wangxiang <1827945911@qq.com> Date: Tue, 20 Feb 2024 17:39:11 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=AD=97=E6=AE=B5=E6=A8=A1=E5=9D=97co?= =?UTF-8?q?mpose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/devtools/entity/GenDatabaseType.java | 10 +++++- .../devtools/entity/GenTableFieldType.java | 6 ++++ .../controller/GenDatabaseTypeController.java | 17 +++++++++- .../service/IGenDatabaseTypeService.java | 2 ++ .../impl/GenDatabaseTypeServiceImpl.java | 31 ++++++++++++++++++- 5 files changed, 63 insertions(+), 3 deletions(-) diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GenDatabaseType.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GenDatabaseType.java index f7bd1474..c414540a 100644 --- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GenDatabaseType.java +++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GenDatabaseType.java @@ -1,9 +1,13 @@ package com.cloud.kicc.system.api.devtools.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.cloud.kicc.common.data.entity.BaseEntity; import com.cloud.kicc.common.data.entity.CommonEntity; import java.io.Serializable; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -34,6 +38,10 @@ public class GenDatabaseType extends BaseEntity { @ApiModelProperty("数据库类型") private String type; - + + @ApiModelProperty("子集表字段物理类型") + @TableField(exist = false) + @JsonInclude(JsonInclude.Include.NON_NULL) + private List genTableFieldTypeList; } diff --git a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GenTableFieldType.java b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GenTableFieldType.java index b695d9f5..486471e7 100644 --- a/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GenTableFieldType.java +++ b/kicc-platform/kicc-platform-api/kicc-system-api/src/main/java/com/cloud/kicc/system/api/devtools/entity/GenTableFieldType.java @@ -1,5 +1,6 @@ package com.cloud.kicc.system.api.devtools.entity; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.cloud.kicc.common.data.entity.BaseEntity; import com.cloud.kicc.common.data.entity.CommonEntity; @@ -44,4 +45,9 @@ public class GenTableFieldType extends BaseEntity { @ApiModelProperty("排序") private Integer sort; + @ApiModelProperty("子集表字段物理类型") + @TableField(exist = false) + private String _action; + + } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/controller/GenDatabaseTypeController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/controller/GenDatabaseTypeController.java index 08135629..eb38daa7 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/controller/GenDatabaseTypeController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/controller/GenDatabaseTypeController.java @@ -2,17 +2,22 @@ package com.cloud.kicc.system.devtools.controller; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.constant.AppConstants; import com.cloud.kicc.system.api.devtools.entity.GenDatabaseType; +import com.cloud.kicc.system.api.devtools.entity.GenTableFieldType; import com.cloud.kicc.system.devtools.service.IGenDatabaseTypeService; +import com.cloud.kicc.system.devtools.service.IGenTableFieldTypeService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; import java.util.Arrays; +import java.util.stream.Collectors; /** *

@@ -28,6 +33,7 @@ import java.util.Arrays; public class GenDatabaseTypeController { private final IGenDatabaseTypeService iGenDatabaseTypeService; + private final IGenTableFieldTypeService iGenTableFieldTypeService; private LambdaQueryWrapper getQueryWrapper(GenDatabaseType genDatabaseType) { return new LambdaQueryWrapper() @@ -43,7 +49,10 @@ public class GenDatabaseTypeController { @GetMapping("/{id:\\w+}") public R getById(@PathVariable("id") String id) { - return R.ok(iGenDatabaseTypeService.getById(id)); + GenDatabaseType genDatabaseType = iGenDatabaseTypeService.getById(id); + genDatabaseType.setGenTableFieldTypeList(iGenTableFieldTypeService + .list(Wrappers.lambdaQuery().eq(GenTableFieldType::getTypeId, genDatabaseType.getId()))); + return R.ok(genDatabaseType); } @PostMapping("/save") @@ -58,6 +67,12 @@ public class GenDatabaseTypeController { return R.ok(); } + @PutMapping("/saveAndGenTableFieldType") + public R saveAndGenTableFieldType(@RequestBody GenDatabaseType genDatabaseType) { + iGenDatabaseTypeService.saveAndGenTableFieldType(genDatabaseType); + return R.ok(); + } + @DeleteMapping("/remove/{id:[\\w,]+}") public R remove(@PathVariable String[] id) { iGenDatabaseTypeService.removeByIds(Arrays.asList(id)); diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/IGenDatabaseTypeService.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/IGenDatabaseTypeService.java index b4bb530d..48bba317 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/IGenDatabaseTypeService.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/IGenDatabaseTypeService.java @@ -13,4 +13,6 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IGenDatabaseTypeService extends IService { + void saveAndGenTableFieldType(GenDatabaseType genDatabaseType); + } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/impl/GenDatabaseTypeServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/impl/GenDatabaseTypeServiceImpl.java index 4fa92a92..8289a846 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/impl/GenDatabaseTypeServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/devtools/service/impl/GenDatabaseTypeServiceImpl.java @@ -1,10 +1,18 @@ package com.cloud.kicc.system.devtools.service.impl; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.cloud.kicc.system.api.devtools.entity.GenDatabaseType; +import com.cloud.kicc.system.api.devtools.entity.GenTableFieldType; import com.cloud.kicc.system.devtools.mapper.GenDatabaseTypeMapper; import com.cloud.kicc.system.devtools.service.IGenDatabaseTypeService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.cloud.kicc.system.devtools.service.IGenTableFieldTypeService; +import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; /** *

@@ -15,6 +23,27 @@ import org.springframework.stereotype.Service; * @since 2023-12-09 */ @Service +@RequiredArgsConstructor public class GenDatabaseTypeServiceImpl extends ServiceImpl implements IGenDatabaseTypeService { + private final IGenTableFieldTypeService iGenTableFieldTypeService; + + @Override + @Transactional(rollbackFor = Exception.class) + public void saveAndGenTableFieldType(GenDatabaseType genDatabaseType) { + super.saveOrUpdate(genDatabaseType); + List addOrEditGenTableFieldTypeList = new ArrayList<>(); + List delGenTableFieldTypeList = new ArrayList<>(); + genDatabaseType.getGenTableFieldTypeList().forEach(item -> { + item.setTypeId(genDatabaseType.getId()); + if (StrUtil.equalsAny(item.get_action(), "add", "edit")) { + addOrEditGenTableFieldTypeList.add(item); + } else if (StrUtil.equals(item.get_action(), "del")) { + delGenTableFieldTypeList.add(item); + } + }); + iGenTableFieldTypeService.saveOrUpdateBatch(addOrEditGenTableFieldTypeList); + iGenTableFieldTypeService.removeBatchByIds(delGenTableFieldTypeList); + } + }