From 5dd1cfcf9e44bbe657d60e51b3681aebe49bd649 Mon Sep 17 00:00:00 2001 From: xiaohucoding <2307520758@qq.com> Date: Mon, 26 May 2025 21:49:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8F=91=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PublishController.java | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java diff --git a/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java new file mode 100644 index 0000000..5cdf455 --- /dev/null +++ b/src/main/java/com/bipt/intelligentapplicationorchestrationservice/controller/PublishController.java @@ -0,0 +1,75 @@ +package com.bipt.intelligentapplicationorchestrationservice.controller; + +import com.bipt.intelligentapplicationorchestrationservice.pojo.*; +import com.bipt.intelligentapplicationorchestrationservice.service.PublishService; +import com.bipt.intelligentapplicationorchestrationservice.util.NacosServiceUtil; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Tag(name ="服务发布相关接口") +@RestController +@RequestMapping("/publish") +@Slf4j +public class PublishController { + @Autowired + private PublishService publishService; + + @Autowired + private RedisTemplate redisTemplate; + @Autowired + private NacosServiceUtil nacosServiceUtil; + + @PostMapping + @Operation(summary ="新增发布请求") + @Transactional + public OptResult> save(@RequestBody ServicePublishDTO servicePublishDTO) { + log.info("模型发布请求:{}", servicePublishDTO); + publishService.save(servicePublishDTO); + //todo 调用模型部署 + + // 获取前端传来的IP字符串 + String ipListStr = servicePublishDTO.getIp(); + if (ipListStr == null || ipListStr.trim().isEmpty()) { + log.warn("IP列表为空,不进行Nacos注册"); + return OptResult.success(); + } + + try { + // 使用逗号分割IP字符串 + String[] ipArray = ipListStr.split(","); + // 循环注册每个IP到Nacos + for (String ip : ipArray) { + String trimmedIp = ip.trim(); + if (!trimmedIp.isEmpty()) { + nacosServiceUtil.registerService( + servicePublishDTO.getModelId().toString(), + trimmedIp, + 8080, + servicePublishDTO.getApiUrl() + ); + log.info("Nacos服务注册成功: {}", trimmedIp); + } + } + } catch (Exception e) { + log.error("Nacos服务注册失败", e); + return OptResult.error("Nacos服务注册失败"); // 根据业务需求返回错误 + } + + + return OptResult.success(); + } + + + + + + + +}