diff --git a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/TopicService.java b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/TopicService.java index 39516fad..f15332ff 100644 --- a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/TopicService.java +++ b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/TopicService.java @@ -111,4 +111,9 @@ public interface TopicService { * 创建topic */ Result addTopic(TopicAddDTO dto); + + /** + * 删除topic + */ + Result deleteTopic(Long clusterId, String topicName); } diff --git a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/TopicServiceImpl.java b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/TopicServiceImpl.java index 6bbd2e7b..0fffc4d8 100644 --- a/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/TopicServiceImpl.java +++ b/kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/TopicServiceImpl.java @@ -874,7 +874,21 @@ public class TopicServiceImpl implements TopicService { return Result.buildFrom(rs); } - private Result checkTopicOffsetChanged(ClusterDO clusterDO, + @Override + public Result deleteTopic(Long clusterId, String topicName) { + Long physicalClusterId = logicalClusterMetadataManager.getPhysicalClusterId(clusterId); + if (ValidateUtils.isNull(physicalClusterId)) { + return Result.buildFrom(ResultStatus.CLUSTER_NOT_EXIST); + } + ClusterDO clusterDO = clusterService.getById(physicalClusterId); + if (ValidateUtils.isNull(clusterDO)) { + return Result.buildFrom(ResultStatus.CLUSTER_NOT_EXIST); + } + ResultStatus rs = adminService.deleteTopic(clusterDO, topicName, SpringTool.getUserName()); + return Result.buildFrom(rs); + } + + private Result checkTopicOffsetChanged(ClusterDO clusterDO, String topicName, Map endOffsetMap) { if (ValidateUtils.isNull(clusterDO) diff --git a/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/normal/NormalTopicController.java b/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/normal/NormalTopicController.java index f1b0b091..3ce2b163 100644 --- a/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/normal/NormalTopicController.java +++ b/kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/normal/NormalTopicController.java @@ -350,4 +350,14 @@ public class NormalTopicController { return topicService.addTopic(dto); } + @ApiOperation(value = "删除topic",notes = "删除topic") + @RequestMapping(value = {"{clusterId}/topics/{topicName}/delete"},method = RequestMethod.DELETE) + @ResponseBody + public Result deleteTopic(@PathVariable Long clusterId, + @PathVariable String topicName) { + if (ValidateUtils.isNull(clusterId) || ValidateUtils.isNull(topicName)) { + return Result.buildFrom(ResultStatus.PARAM_ILLEGAL); + } + return topicService.deleteTopic(clusterId,topicName); + } } \ No newline at end of file