From e958249738e6fe9d775a2dfbbe3b60daf55a2854 Mon Sep 17 00:00:00 2001 From: "chen.ma" Date: Thu, 1 Jul 2021 23:52:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8A=9F=E8=83=BD=E6=8C=81=E7=BB=AD?= =?UTF-8?q?=E6=9B=B4=E6=96=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/controller/ItemController.java | 11 ++++---- .../server/service/biz/ItemService.java | 9 ++++++- .../server/service/biz/ItemServiceImpl.java | 25 +++++++++++++++++++ .../server/service/biz/ThreadPoolService.java | 10 ++++++++ .../service/biz/ThreadPoolServiceImpl.java | 8 ++++++ 5 files changed, 57 insertions(+), 6 deletions(-) diff --git a/server/src/main/java/io/dynamic/threadpool/server/controller/ItemController.java b/server/src/main/java/io/dynamic/threadpool/server/controller/ItemController.java index 3cb332d1..70840cbe 100644 --- a/server/src/main/java/io/dynamic/threadpool/server/controller/ItemController.java +++ b/server/src/main/java/io/dynamic/threadpool/server/controller/ItemController.java @@ -7,6 +7,7 @@ import io.dynamic.threadpool.common.web.base.Results; import io.dynamic.threadpool.server.model.biz.item.ItemQueryReqDTO; import io.dynamic.threadpool.server.model.biz.item.ItemRespDTO; import io.dynamic.threadpool.server.model.biz.item.ItemSaveReqDTO; +import io.dynamic.threadpool.server.model.biz.item.ItemUpdateReqDTO; import io.dynamic.threadpool.server.service.biz.ItemService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -41,14 +42,14 @@ public class ItemController { } @PostMapping("/item/update") - public Result updateItem() { - + public Result updateItem(ItemUpdateReqDTO reqDTO) { + itemService.updateItem(reqDTO); return Results.success(); } - @DeleteMapping("/item/delete/{itemId}") - public Result deleteItem(@PathVariable("itemId") String itemId) { - + @DeleteMapping("/item/delete/{namespace}/{itemId}") + public Result deleteItem(@PathVariable("namespace") String namespace, @PathVariable("itemId") String itemId) { + itemService.deleteItem(namespace, itemId); return Results.success(); } } diff --git a/server/src/main/java/io/dynamic/threadpool/server/service/biz/ItemService.java b/server/src/main/java/io/dynamic/threadpool/server/service/biz/ItemService.java index 7a0c82b3..07b551b9 100644 --- a/server/src/main/java/io/dynamic/threadpool/server/service/biz/ItemService.java +++ b/server/src/main/java/io/dynamic/threadpool/server/service/biz/ItemService.java @@ -49,10 +49,17 @@ public interface ItemService { void saveItem(ItemSaveReqDTO reqDTO); /** - * 新增项目 + * 修改项目 * * @param reqDTO */ void updateItem(ItemUpdateReqDTO reqDTO); + /** + * 删除项目 + * + * @param namespace + * @param itemId + */ + void deleteItem(String namespace, String itemId); } diff --git a/server/src/main/java/io/dynamic/threadpool/server/service/biz/ItemServiceImpl.java b/server/src/main/java/io/dynamic/threadpool/server/service/biz/ItemServiceImpl.java index bd723380..351826c0 100644 --- a/server/src/main/java/io/dynamic/threadpool/server/service/biz/ItemServiceImpl.java +++ b/server/src/main/java/io/dynamic/threadpool/server/service/biz/ItemServiceImpl.java @@ -2,17 +2,21 @@ package io.dynamic.threadpool.server.service.biz; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; +import io.dynamic.threadpool.server.enums.DelEnum; import io.dynamic.threadpool.server.mapper.ItemInfoMapper; import io.dynamic.threadpool.server.model.ItemInfo; import io.dynamic.threadpool.server.model.biz.item.ItemQueryReqDTO; import io.dynamic.threadpool.server.model.biz.item.ItemRespDTO; import io.dynamic.threadpool.server.model.biz.item.ItemSaveReqDTO; import io.dynamic.threadpool.server.model.biz.item.ItemUpdateReqDTO; +import io.dynamic.threadpool.server.model.biz.threadpool.ThreadPoolRespDTO; import io.dynamic.threadpool.server.toolkit.BeanUtil; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -30,6 +34,9 @@ public class ItemServiceImpl implements ItemService { @Resource private ItemInfoMapper itemInfoMapper; + @Autowired + private ThreadPoolService threadPoolService; + @Override public IPage queryItemPage(ItemQueryReqDTO reqDTO) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(ItemInfo.class) @@ -86,4 +93,22 @@ public class ItemServiceImpl implements ItemService { } } + @Override + public void deleteItem(String namespace, String itemId) { + List itemList = threadPoolService.getThreadPoolByItemId(itemId); + if (CollectionUtils.isNotEmpty(itemList)) { + throw new RuntimeException("项目包含线程池引用, 删除失败."); + } + + int updateResult = itemInfoMapper.update(new ItemInfo(), + Wrappers.lambdaUpdate(ItemInfo.class) + .eq(ItemInfo::getTenantId, namespace) + .eq(ItemInfo::getItemId, itemId) + .set(ItemInfo::getDelFlag, DelEnum.DELETE.getIntCode())); + boolean retBool = SqlHelper.retBool(updateResult); + if (!retBool) { + throw new RuntimeException("删除失败."); + } + } + } diff --git a/server/src/main/java/io/dynamic/threadpool/server/service/biz/ThreadPoolService.java b/server/src/main/java/io/dynamic/threadpool/server/service/biz/ThreadPoolService.java index 489896f9..18bad66e 100644 --- a/server/src/main/java/io/dynamic/threadpool/server/service/biz/ThreadPoolService.java +++ b/server/src/main/java/io/dynamic/threadpool/server/service/biz/ThreadPoolService.java @@ -5,6 +5,8 @@ import io.dynamic.threadpool.server.model.biz.threadpool.ThreadPoolQueryReqDTO; import io.dynamic.threadpool.server.model.biz.threadpool.ThreadPoolRespDTO; import io.dynamic.threadpool.server.model.biz.threadpool.ThreadPoolSaveOrUpdateReqDTO; +import java.util.List; + /** * Thread Pool Service. * @@ -29,6 +31,14 @@ public interface ThreadPoolService { */ ThreadPoolRespDTO getThreadPool(ThreadPoolQueryReqDTO reqDTO); + /** + * 根据 ItemId 获取线程池配置 + * + * @param itemId + * @return + */ + List getThreadPoolByItemId(String itemId); + /** * 新增或修改线程池配置 * diff --git a/server/src/main/java/io/dynamic/threadpool/server/service/biz/ThreadPoolServiceImpl.java b/server/src/main/java/io/dynamic/threadpool/server/service/biz/ThreadPoolServiceImpl.java index 696697fb..0259c4ac 100644 --- a/server/src/main/java/io/dynamic/threadpool/server/service/biz/ThreadPoolServiceImpl.java +++ b/server/src/main/java/io/dynamic/threadpool/server/service/biz/ThreadPoolServiceImpl.java @@ -14,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.List; /** * Thread Pool Service Impl. @@ -45,6 +46,13 @@ public class ThreadPoolServiceImpl implements ThreadPoolService { return BeanUtil.convert(configAllInfo, ThreadPoolRespDTO.class); } + @Override + public List getThreadPoolByItemId(String itemId) { + List selectList = configInfoMapper + .selectList(Wrappers.lambdaUpdate(ConfigAllInfo.class).eq(ConfigAllInfo::getItemId, itemId)); + return BeanUtil.convert(selectList, ThreadPoolRespDTO.class); + } + @Override public void saveOrUpdateThreadPoolConfig(ThreadPoolSaveOrUpdateReqDTO reqDTO) { configService.insertOrUpdate(BeanUtil.convert(reqDTO, ConfigAllInfo.class));