From 9f7ac38620749be8500d6080c0dd5d1cbb3a04ce Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Wed, 9 Oct 2024 11:06:02 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/service/ServiceController.java | 43 +++-- .../com/ruoyi/platform/mapper/ServiceDao.java | 3 + .../platform/service/ServiceService.java | 11 +- .../service/impl/ServiceServiceImpl.java | 167 ++++++++++++------ .../vo/serviceVos/ServiceCodeConfigVo.java | 13 ++ .../vo/serviceVos/ServiceModelVo.java | 22 +++ .../vo/serviceVos/ServiceVersionVo.java | 56 ++++++ .../managementPlatform/ServiceDaoMapper.xml | 25 ++- 8 files changed, 263 insertions(+), 77 deletions(-) create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceCodeConfigVo.java create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceModelVo.java create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/service/ServiceController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/service/ServiceController.java index e74de944..3b57695a 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/service/ServiceController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/service/ServiceController.java @@ -5,6 +5,7 @@ import com.ruoyi.common.core.web.domain.GenericsAjaxResult; import com.ruoyi.platform.domain.Service; import com.ruoyi.platform.domain.ServiceVersion; import com.ruoyi.platform.service.ServiceService; +import com.ruoyi.platform.vo.serviceVos.ServiceVersionVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.data.domain.Page; @@ -26,15 +27,29 @@ public class ServiceController extends BaseController { @GetMapping @ApiOperation("分页查询服务列表") - public GenericsAjaxResult> queryByPageService(Service service, int page, int size) throws IOException { + public GenericsAjaxResult> queryByPageService(@RequestParam(value = "service_name", required = false) String serviceName, + @RequestParam(value = "service_type", required = false) String serviceType, + @RequestParam("page") int page, + @RequestParam("size") int size) throws IOException { + Service service = new Service(); + service.setServiceName(serviceName); + service.setServiceType(serviceType); PageRequest pageRequest = PageRequest.of(page, size); return genericsSuccess(serviceService.queryByPageService(service, pageRequest)); } @GetMapping("/serviceVersion") @ApiOperation("分页查询服务版本列表") - public GenericsAjaxResult> queryByPageServiceVersion(ServiceVersion serviceVersion, int page, int size) throws IOException { - return genericsSuccess(serviceService.queryByPageServiceVersion(serviceVersion, page, size)); + public GenericsAjaxResult> queryByPageServiceVersion(@RequestParam(value = "run_state", required = false) String runState, + @RequestParam(value = "version", required = false) String version, + @RequestParam("service_id") Long serviceId, + @RequestParam("page") int page, + @RequestParam("size") int size) throws IOException { + ServiceVersion serviceVersion = new ServiceVersion(); + serviceVersion.setRunState(runState); + serviceVersion.setVersion(version); + serviceVersion.setServiceId(serviceId); + return genericsSuccess(serviceService.queryByPageServiceVersion(serviceVersion, page, size)); } @PostMapping @@ -45,8 +60,8 @@ public class ServiceController extends BaseController { @PostMapping("/serviceVersion") @ApiOperation("新增服务版本") - public GenericsAjaxResult addServiceVersion(@RequestBody ServiceVersion serviceVersion) { - return genericsSuccess(serviceService.addServiceVersion(serviceVersion)); + public GenericsAjaxResult addServiceVersion(@RequestBody ServiceVersionVo serviceVersionVo) { + return genericsSuccess(serviceService.addServiceVersion(serviceVersionVo)); } @PutMapping @@ -57,25 +72,25 @@ public class ServiceController extends BaseController { @PutMapping("/serviceVersion") @ApiOperation("编辑服务版本") - public GenericsAjaxResult editServiceVersion(@RequestBody ServiceVersion serviceVersion) { - return genericsSuccess(serviceService.editServiceVersion(serviceVersion)); + public GenericsAjaxResult editServiceVersion(@RequestBody ServiceVersionVo serviceVersionVo) { + return genericsSuccess(serviceService.editServiceVersion(serviceVersionVo)); } @GetMapping("/serviceDetail/{id}") @ApiOperation("查询服务详细信息") - public GenericsAjaxResult getService(@PathVariable("id") Long id){ + public GenericsAjaxResult getService(@PathVariable("id") Long id) { return genericsSuccess(serviceService.getService(id)); } @GetMapping("/serviceVersionDetail/{id}") @ApiOperation("查询服务版本详细信息") - public GenericsAjaxResult getServiceVersion(@PathVariable("id") Long id) { + public GenericsAjaxResult getServiceVersion(@PathVariable("id") Long id) { return genericsSuccess(serviceService.getServiceVersion(id)); } @GetMapping("/serviceVersionList/{id}") @ApiOperation("查询服务版本列表") - public GenericsAjaxResult> serviceVersionList(@PathVariable("id") Long id){ + public GenericsAjaxResult> serviceVersionList(@PathVariable("id") Long id) { return genericsSuccess(serviceService.serviceVersionList(id)); } @@ -105,20 +120,20 @@ public class ServiceController extends BaseController { @PutMapping("/updateServiceVersion") @ApiOperation("更新服务版本") - public GenericsAjaxResult updateServiceVersion(@RequestBody ServiceVersion serviceVersion) { + public GenericsAjaxResult updateServiceVersion(@RequestBody ServiceVersion serviceVersion) { return genericsSuccess(serviceService.updateServiceVersion(serviceVersion)); } @GetMapping("/getServiceVersionLog/{id}") @ApiOperation("获取服务版本日志") public GenericsAjaxResult getServiceVersionLog(@PathVariable("id") Long id, - @RequestParam String startTime, @RequestParam String endTime){ - return genericsSuccess(serviceService.getServiceVersionLog(id,startTime,endTime)); + @RequestParam("start_time") String startTime, @RequestParam("end_time") String endTime) { + return genericsSuccess(serviceService.getServiceVersionLog(id, startTime, endTime)); } @GetMapping("/getServiceVersionDocs/{id}") @ApiOperation("获取服务版本文档") - public GenericsAjaxResult> getServiceVersionDocs(@PathVariable("id") Long id){ + public GenericsAjaxResult> getServiceVersionDocs(@PathVariable("id") Long id) { return genericsSuccess(serviceService.getServiceVersionDocs(id)); } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ServiceDao.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ServiceDao.java index 55549a2f..b359812c 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ServiceDao.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/ServiceDao.java @@ -33,4 +33,7 @@ public interface ServiceDao { List getServiceVersionList(@Param("serviceId") Long serviceId); + Service getServiceByName(@Param("serviceName") String serviceName); + + ServiceVersion getSvByVersion(@Param("version") String version, @Param("serviceId") Long serviceId); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ServiceService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ServiceService.java index 0fa439a6..d4e62528 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ServiceService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ServiceService.java @@ -2,6 +2,7 @@ package com.ruoyi.platform.service; import com.ruoyi.platform.domain.Service; import com.ruoyi.platform.domain.ServiceVersion; +import com.ruoyi.platform.vo.serviceVos.ServiceVersionVo; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -12,19 +13,19 @@ import java.util.Map; public interface ServiceService { Page queryByPageService(Service service, PageRequest pageRequest) throws IOException; - Page queryByPageServiceVersion(ServiceVersion serviceVersion, int page, int size) throws IOException; + Page queryByPageServiceVersion(ServiceVersion serviceVersion, int page, int size) throws IOException; Service addService(Service service); - ServiceVersion addServiceVersion(ServiceVersion serviceVersion); + ServiceVersion addServiceVersion(ServiceVersionVo serviceVersionVo); Service editService(Service service); - ServiceVersion editServiceVersion(ServiceVersion serviceVersion); + String editServiceVersion(ServiceVersionVo serviceVersionVo); Service getService(Long id); - ServiceVersion getServiceVersion(Long id); + ServiceVersionVo getServiceVersion(Long id); String deleteService(Long id); @@ -34,7 +35,7 @@ public interface ServiceService { String stopServiceVersion(Long id); - ServiceVersion updateServiceVersion(ServiceVersion serviceVersion); + String updateServiceVersion(ServiceVersion serviceVersion); String getServiceVersionLog(Long id, String startTime, String endTime); diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java index efb91505..f2618ed9 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java @@ -9,8 +9,12 @@ import com.ruoyi.platform.mapper.ServiceDao; import com.ruoyi.platform.service.ServiceService; import com.ruoyi.platform.utils.HttpUtils; import com.ruoyi.platform.utils.JacksonUtil; +import com.ruoyi.platform.vo.serviceVos.ServiceCodeConfigVo; +import com.ruoyi.platform.vo.serviceVos.ServiceModelVo; +import com.ruoyi.platform.vo.serviceVos.ServiceVersionVo; import com.ruoyi.system.api.model.LoginUser; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; @@ -18,6 +22,7 @@ import org.springframework.data.domain.PageRequest; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -43,7 +48,7 @@ public class ServiceServiceImpl implements ServiceService { } @Override - public Page queryByPageServiceVersion(ServiceVersion serviceVersion, int page, int size) { + public Page queryByPageServiceVersion(ServiceVersion serviceVersion, int page, int size) { PageRequest pageRequest; if (StringUtils.isNotEmpty(serviceVersion.getRunState())) { pageRequest = PageRequest.of(page, Integer.MAX_VALUE); @@ -51,13 +56,22 @@ public class ServiceServiceImpl implements ServiceService { List deploymentNames = serviceVersions.stream().map(ServiceVersion::getDeploymentName).collect(Collectors.toList()); Map runStates = getRunState(deploymentNames); - updateRunState(runStates); + if (runStates != null) { + updateRunState(runStates, serviceVersions); + } - List result = serviceVersions.stream().filter(serviceVersion1 -> { - String runState = runStates.get(serviceVersion1.getDeploymentName()); - return serviceVersion1.getRunState().equals(runState); + List serviceVersionList = serviceVersions.stream().filter(serviceVersion1 -> { + String runState; + if (runStates != null) { + runState = runStates.get(serviceVersion1.getDeploymentName()); + } else { + runState = serviceVersion1.getRunState(); + } + return serviceVersion.getRunState().equals(runState); }).collect(Collectors.toList()); + List result = getServiceVersionVoList(serviceVersionList); + PageRequest.of(page, size); return new PageImpl<>(result, pageRequest, result.size()); } else { @@ -67,33 +81,22 @@ public class ServiceServiceImpl implements ServiceService { List deploymentNames = serviceVersions.stream().map(ServiceVersion::getDeploymentName).collect(Collectors.toList()); Map runStates = getRunState(deploymentNames); - updateRunState(runStates); - - return new PageImpl<>(serviceVersions, pageRequest, total); - } - } - - Map getRunState(List deploymentNames) { - HashMap paramMap = new HashMap<>(); - paramMap.put("deployment_names", deploymentNames); - String req = HttpUtils.sendPost(argoUrl + modelService + "/getStatus", JSON.toJSONString(paramMap)); - if (StringUtils.isNotEmpty(req)) { - Map reqMap = JacksonUtil.parseJSONStr2Map(req); - Map> data = (Map>) reqMap.get("data"); - return data.get("status"); - } else { - return null; - } - } + if (runStates != null) { + updateRunState(runStates, serviceVersions); + } + List result = getServiceVersionVoList(serviceVersions); - void updateRunState(Map runStates) { - for (Map.Entry entry : runStates.entrySet()) { - serviceDao.updateRunState(entry.getKey(), entry.getValue()); + return new PageImpl<>(result, pageRequest, total); } } @Override public com.ruoyi.platform.domain.Service addService(com.ruoyi.platform.domain.Service service) { + com.ruoyi.platform.domain.Service serviceByName = serviceDao.getServiceByName(service.getServiceName()); + if (serviceByName != null) { + throw new RuntimeException("服务名称已存在,无法新增"); + } + LoginUser loginUser = SecurityUtils.getLoginUser(); service.setCreateBy(loginUser.getUsername()); service.setUpdateBy(loginUser.getUsername()); @@ -102,11 +105,18 @@ public class ServiceServiceImpl implements ServiceService { } @Override - public ServiceVersion addServiceVersion(ServiceVersion serviceVersion) { - LoginUser loginUser = SecurityUtils.getLoginUser(); - serviceVersion.setCreateBy(loginUser.getUsername()); - serviceVersion.setUpdateBy(loginUser.getUsername()); + public ServiceVersion addServiceVersion(ServiceVersionVo serviceVersionVo) { + ServiceVersion svByVersion = serviceDao.getSvByVersion(serviceVersionVo.getVersion(), serviceVersionVo.getServiceId()); + if (svByVersion != null) { + throw new RuntimeException("服务版本已存在,无法新增"); + } + + ServiceVersion serviceVersion = getServiceVersion(serviceVersionVo); +// LoginUser loginUser = SecurityUtils.getLoginUser(); +// serviceVersion.setCreateBy(loginUser.getUsername()); +// serviceVersion.setUpdateBy(loginUser.getUsername()); serviceDao.insertServiceVersion(serviceVersion); + runServiceVersion(serviceVersion.getId()); return serviceVersion; } @@ -119,47 +129,45 @@ public class ServiceServiceImpl implements ServiceService { } @Override - public ServiceVersion editServiceVersion(ServiceVersion serviceVersion) { + public String editServiceVersion(ServiceVersionVo serviceVersionVo) { + ServiceVersion serviceVersion = getServiceVersion(serviceVersionVo); + LoginUser loginUser = SecurityUtils.getLoginUser(); serviceVersion.setUpdateBy(loginUser.getUsername()); serviceDao.updateServiceVersion(serviceVersion); - return serviceDao.getServiceVersionById(serviceVersion.getId()); + return "修改成功"; } @Override public com.ruoyi.platform.domain.Service getService(Long id) { - com.ruoyi.platform.domain.Service service = serviceDao.getServiceById(id); - - ServiceVersion serviceVersion = new ServiceVersion(); - serviceVersion.setServiceId(id); - service.setVersionCount(serviceDao.countServiceVersion(serviceVersion)); return serviceDao.getServiceById(id); } @Override - public ServiceVersion getServiceVersion(Long id) { - return serviceDao.getServiceVersionById(id); + public ServiceVersionVo getServiceVersion(Long id) { + ServiceVersion serviceVersion = serviceDao.getServiceVersionById(id); + return getServiceVersionVo(serviceVersion); } @Override public String deleteService(Long id) { com.ruoyi.platform.domain.Service service = serviceDao.getServiceById(id); if (service == null) { - return "服务不存在"; + throw new RuntimeException("服务不存在"); } LoginUser loginUser = SecurityUtils.getLoginUser(); String username = loginUser.getUsername(); String createBy = service.getCreateBy(); if (!(StringUtils.equals(username, "admin") || StringUtils.equals(username, createBy))) { - return "无权限删除该服务"; + throw new RuntimeException("无权限删除该服务"); } ServiceVersion serviceVersion = new ServiceVersion(); serviceVersion.setServiceId(id); long versionCount = serviceDao.countServiceVersion(serviceVersion); if (versionCount != 0) { - return "该服务下还有版本,不能删除"; + throw new RuntimeException("该服务下还有版本,不能删除"); } service.setState(Constant.State_invalid); @@ -176,6 +184,7 @@ public class ServiceServiceImpl implements ServiceService { @Override public String runServiceVersion(Long id) { ServiceVersion serviceVersion = serviceDao.getServiceVersionById(id); + ServiceVersionVo serviceVersionVo = getServiceVersionVo(serviceVersion); com.ruoyi.platform.domain.Service service = serviceDao.getServiceById(serviceVersion.getServiceId()); HashMap paramMap = new HashMap<>(); paramMap.put("service_name", service.getServiceName()); @@ -193,11 +202,11 @@ public class ServiceServiceImpl implements ServiceService { Map reqMap = JacksonUtil.parseJSONStr2Map(req); if ((Integer) reqMap.get("code") == 200) { Map data = (Map) reqMap.get("data"); - serviceVersion.setUrl(data.get("url")); - serviceVersion.setDeploymentName(data.get("deployment_name")); - serviceVersion.setSvcName(data.get("svc_name")); - serviceVersion.setRunState(Constant.Init); - editServiceVersion(serviceVersion); + serviceVersionVo.setUrl(data.get("url")); + serviceVersionVo.setDeploymentName(data.get("deployment_name")); + serviceVersionVo.setSvcName(data.get("svc_name")); + serviceVersionVo.setRunState(Constant.Init); + editServiceVersion(serviceVersionVo); return "启动成功"; } else { throw new RuntimeException("启动失败"); @@ -210,12 +219,13 @@ public class ServiceServiceImpl implements ServiceService { @Override public String stopServiceVersion(Long id) { ServiceVersion serviceVersion = serviceDao.getServiceVersionById(id); + ServiceVersionVo serviceVersionVo = getServiceVersionVo(serviceVersion); HashMap paramMap = new HashMap<>(); paramMap.put("deployment_name", serviceVersion.getDeploymentName()); String req = HttpUtils.sendPost(argoUrl + modelService + "/stop", JSON.toJSONString(paramMap)); if (StringUtils.isNotEmpty(req)) { - serviceVersion.setRunState(Constant.Stopped); - editServiceVersion(serviceVersion); + serviceVersionVo.setRunState(Constant.Stopped); + editServiceVersion(serviceVersionVo); return "停止成功"; } else { throw new RuntimeException("停止失败"); @@ -223,7 +233,7 @@ public class ServiceServiceImpl implements ServiceService { } @Override - public ServiceVersion updateServiceVersion(ServiceVersion serviceVersion) { + public String updateServiceVersion(ServiceVersion serviceVersion) { HashMap paramMap = new HashMap<>(); paramMap.put("deployment_name", serviceVersion.getDeploymentName()); HashMap updateMap = new HashMap<>(); @@ -232,7 +242,8 @@ public class ServiceServiceImpl implements ServiceService { paramMap.put("update_model", JSON.toJSONString(updateMap)); String req = HttpUtils.sendPost(argoUrl + modelService + "/update", JSON.toJSONString(paramMap)); if (StringUtils.isNotEmpty(req)) { - return editServiceVersion(serviceVersion); + ServiceVersionVo serviceVersionVo = getServiceVersionVo(serviceVersion); + return editServiceVersion(serviceVersionVo); } else { throw new RuntimeException("更新失败"); } @@ -275,4 +286,58 @@ public class ServiceServiceImpl implements ServiceService { return serviceDao.getServiceVersionList(id); } + + ServiceVersion getServiceVersion(ServiceVersionVo serviceVersionVo) { + ServiceVersion serviceVersion = new ServiceVersion(); + BeanUtils.copyProperties(serviceVersionVo, serviceVersion); + serviceVersion.setModel(JSON.toJSONString(serviceVersionVo.getModel())); + serviceVersion.setCodeConfig(JSON.toJSONString(serviceVersionVo.getCodeConfig())); + + return serviceVersion; + } + + List getServiceVersionVoList(List serviceVersionList) { + List result = new ArrayList<>(); + + for (ServiceVersion sv : serviceVersionList) { + ServiceVersionVo serviceVersionVo = getServiceVersionVo(sv); + result.add(serviceVersionVo); + } + return result; + } + + ServiceVersionVo getServiceVersionVo(ServiceVersion sv) { + ServiceVersionVo serviceVersionVo = new ServiceVersionVo(); + BeanUtils.copyProperties(sv, serviceVersionVo); + ServiceModelVo serviceModelVo = JSON.parseObject(sv.getModel(), ServiceModelVo.class); + serviceVersionVo.setModel(serviceModelVo); + + ServiceCodeConfigVo serviceCodeConfigVo = JSON.parseObject(sv.getCodeConfig(), ServiceCodeConfigVo.class); + serviceVersionVo.setCodeConfig(serviceCodeConfigVo); + return serviceVersionVo; + } + + Map getRunState(List deploymentNames) { + HashMap paramMap = new HashMap<>(); + paramMap.put("deployment_names", deploymentNames); + String req = HttpUtils.sendPost(argoUrl + modelService + "/getStatus", JSON.toJSONString(paramMap)); + if (StringUtils.isNotEmpty(req)) { + Map reqMap = JacksonUtil.parseJSONStr2Map(req); + Map> data = (Map>) reqMap.get("data"); + if (data != null) { + return data.get("status"); + } + return null; + } else { + return null; + } + } + + void updateRunState(Map runStates, List serviceVersionList) { + for (ServiceVersion sv : serviceVersionList) { + String runState = runStates.get(sv.getDeploymentName()); + sv.setRunState(runState); + serviceDao.updateRunState(sv.getDeploymentName(), runState); + } + } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceCodeConfigVo.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceCodeConfigVo.java new file mode 100644 index 00000000..0e971fc6 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceCodeConfigVo.java @@ -0,0 +1,13 @@ +package com.ruoyi.platform.vo.serviceVos; + +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.annotation.JsonNaming; +import lombok.Data; + +@Data +@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) +public class ServiceCodeConfigVo { + private String codePath; + + private String branch; +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceModelVo.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceModelVo.java new file mode 100644 index 00000000..08c5daf3 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceModelVo.java @@ -0,0 +1,22 @@ +package com.ruoyi.platform.vo.serviceVos; + +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.annotation.JsonNaming; +import lombok.Data; + +@Data +@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) +public class ServiceModelVo { + + private String id; + + private String name; + + private String version; + + private String path; + + private String identifier; + + private String owner; +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java new file mode 100644 index 00000000..a2b80926 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java @@ -0,0 +1,56 @@ +package com.ruoyi.platform.vo.serviceVos; + +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.annotation.JsonNaming; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.util.Date; +import java.util.Map; + +@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) +@ApiModel("服务版本") +@Data +public class ServiceVersionVo { + private Long id; + + private Long serviceId; + + private String version; + + private String description; + + private ServiceModelVo model; + + private String image; + + private String resource; + + private Integer replicas; + + private String mountPath; + + private Map envVariables; + + private ServiceCodeConfigVo codeConfig; + + private String command; + + private String url; + + private String createBy; + + private String updateBy; + + private Date createTime; + + private Date updateTime; + + private Integer state; + + private String runState; + + private String deploymentName; + + private String svcName; +} diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ServiceDaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ServiceDaoMapper.xml index 9ea043ae..fc21d3cb 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ServiceDaoMapper.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ServiceDaoMapper.xml @@ -8,7 +8,7 @@ and service_name like concat('%', #{service.serviceName}, '%') - + and service_type = #{service.serviceType} @@ -22,7 +22,7 @@ and a.service_name like concat('%', #{service.serviceName}, '%') - + and a.service_type = #{service.serviceType} @@ -56,9 +56,10 @@ - + + + + + insert into service(service_name, service_type, description, create_by, update_by) values (#{service.serviceName}, #{service.serviceType}, #{service.description}, #{service.createBy}, #{service.updateBy}) - + insert into service_version(service_id, version, model, description, image, resource, replicas, mount_path, env_variables, code_config, command, create_by, update_by) values (#{serviceVersion.serviceId}, #{serviceVersion.version}, #{serviceVersion.model}, #{serviceVersion.description}, #{serviceVersion.image}, From 47990f49b7e892c1c82e88394280636ca5411fed Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Wed, 9 Oct 2024 11:19:10 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/platform/service/impl/ServiceServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java index f2618ed9..aca6a7ab 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java @@ -112,9 +112,9 @@ public class ServiceServiceImpl implements ServiceService { } ServiceVersion serviceVersion = getServiceVersion(serviceVersionVo); -// LoginUser loginUser = SecurityUtils.getLoginUser(); -// serviceVersion.setCreateBy(loginUser.getUsername()); -// serviceVersion.setUpdateBy(loginUser.getUsername()); + LoginUser loginUser = SecurityUtils.getLoginUser(); + serviceVersion.setCreateBy(loginUser.getUsername()); + serviceVersion.setUpdateBy(loginUser.getUsername()); serviceDao.insertServiceVersion(serviceVersion); runServiceVersion(serviceVersion.getId()); return serviceVersion; From 9ca32439a6a8cd9ec632730887245fff516be576 Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Wed, 9 Oct 2024 14:39:26 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/platform/vo/serviceVos/ServiceCodeConfigVo.java | 2 ++ .../java/com/ruoyi/platform/vo/serviceVos/ServiceModelVo.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceCodeConfigVo.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceCodeConfigVo.java index 0e971fc6..512ae784 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceCodeConfigVo.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceCodeConfigVo.java @@ -10,4 +10,6 @@ public class ServiceCodeConfigVo { private String codePath; private String branch; + + private String showValue; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceModelVo.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceModelVo.java index 08c5daf3..0d726145 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceModelVo.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceModelVo.java @@ -19,4 +19,6 @@ public class ServiceModelVo { private String identifier; private String owner; + + private String showValue; } From 21d6a510ee39deec595a171167e1179337db1826 Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Wed, 9 Oct 2024 14:55:34 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/platform/service/impl/ServiceServiceImpl.java | 2 ++ .../java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java index aca6a7ab..a892e8f0 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java @@ -314,6 +314,8 @@ public class ServiceServiceImpl implements ServiceService { ServiceCodeConfigVo serviceCodeConfigVo = JSON.parseObject(sv.getCodeConfig(), ServiceCodeConfigVo.class); serviceVersionVo.setCodeConfig(serviceCodeConfigVo); + + serviceVersionVo.setEnvVariables(JacksonUtil.parseJSONStr2Map(sv.getEnvVariables())); return serviceVersionVo; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java index a2b80926..8556da3c 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java @@ -30,7 +30,7 @@ public class ServiceVersionVo { private String mountPath; - private Map envVariables; + private Map envVariables; private ServiceCodeConfigVo codeConfig; From 9b8fbfff5c38d89ec8c36b7e891c0783515b6715 Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Wed, 9 Oct 2024 15:03:00 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java index a892e8f0..10fa381c 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java @@ -292,6 +292,7 @@ public class ServiceServiceImpl implements ServiceService { BeanUtils.copyProperties(serviceVersionVo, serviceVersion); serviceVersion.setModel(JSON.toJSONString(serviceVersionVo.getModel())); serviceVersion.setCodeConfig(JSON.toJSONString(serviceVersionVo.getCodeConfig())); + serviceVersion.setEnvVariables(JSON.toJSONString(serviceVersionVo.getEnvVariables())); return serviceVersion; } From 523b92d844e22093dbcbe38945a09d0f06af1844 Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Wed, 9 Oct 2024 16:47:48 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/service/ServiceController.java | 20 +++++++++---------- .../service/impl/ServiceServiceImpl.java | 8 ++++++-- .../vo/serviceVos/ServiceVersionVo.java | 2 ++ 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/service/ServiceController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/service/ServiceController.java index 3b57695a..7e75f477 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/service/ServiceController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/service/ServiceController.java @@ -106,11 +106,11 @@ public class ServiceController extends BaseController { return genericsSuccess(serviceService.deleteServiceVersion(id)); } - @PostMapping("/runServiceVersion/{id}") - @ApiOperation("启动服务版本") - public GenericsAjaxResult runServiceVersion(@PathVariable("id") Long id) { - return genericsSuccess(serviceService.runServiceVersion(id)); - } +// @PostMapping("/runServiceVersion/{id}") +// @ApiOperation("启动服务版本") +// public GenericsAjaxResult runServiceVersion(@PathVariable("id") Long id) { +// return genericsSuccess(serviceService.runServiceVersion(id)); +// } @DeleteMapping("/stopServiceVersion/{id}") @ApiOperation("停止服务版本") @@ -118,11 +118,11 @@ public class ServiceController extends BaseController { return genericsSuccess(serviceService.stopServiceVersion(id)); } - @PutMapping("/updateServiceVersion") - @ApiOperation("更新服务版本") - public GenericsAjaxResult updateServiceVersion(@RequestBody ServiceVersion serviceVersion) { - return genericsSuccess(serviceService.updateServiceVersion(serviceVersion)); - } +// @PutMapping("/updateServiceVersion") +// @ApiOperation("更新服务版本") +// public GenericsAjaxResult updateServiceVersion(@RequestBody ServiceVersion serviceVersion) { +// return genericsSuccess(serviceService.updateServiceVersion(serviceVersion)); +// } @GetMapping("/getServiceVersionLog/{id}") @ApiOperation("获取服务版本日志") diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java index 10fa381c..20a3bd6a 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java @@ -132,6 +132,11 @@ public class ServiceServiceImpl implements ServiceService { public String editServiceVersion(ServiceVersionVo serviceVersionVo) { ServiceVersion serviceVersion = getServiceVersion(serviceVersionVo); + ServiceVersion oldServiceVersion = serviceDao.getServiceVersionById(serviceVersionVo.getId()); + if (!oldServiceVersion.getReplicas().equals(serviceVersionVo.getReplicas()) || !oldServiceVersion.getResource().equals(serviceVersionVo.getResource()) + || serviceVersionVo.getRerun()) { + updateServiceVersion(serviceVersion); + } LoginUser loginUser = SecurityUtils.getLoginUser(); serviceVersion.setUpdateBy(loginUser.getUsername()); serviceDao.updateServiceVersion(serviceVersion); @@ -242,8 +247,7 @@ public class ServiceServiceImpl implements ServiceService { paramMap.put("update_model", JSON.toJSONString(updateMap)); String req = HttpUtils.sendPost(argoUrl + modelService + "/update", JSON.toJSONString(paramMap)); if (StringUtils.isNotEmpty(req)) { - ServiceVersionVo serviceVersionVo = getServiceVersionVo(serviceVersion); - return editServiceVersion(serviceVersionVo); + return "修改成功"; } else { throw new RuntimeException("更新失败"); } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java index 8556da3c..2f8e90e0 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java @@ -53,4 +53,6 @@ public class ServiceVersionVo { private String deploymentName; private String svcName; + + private Boolean rerun; } From 14325471d48f40de07a84bb97c99dede0ba82f2d Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Wed, 9 Oct 2024 16:53:03 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/platform/controller/service/ServiceController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/service/ServiceController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/service/ServiceController.java index 7e75f477..c677555c 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/service/ServiceController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/service/ServiceController.java @@ -124,9 +124,9 @@ public class ServiceController extends BaseController { // return genericsSuccess(serviceService.updateServiceVersion(serviceVersion)); // } - @GetMapping("/getServiceVersionLog/{id}") + @GetMapping("/getServiceVersionLog") @ApiOperation("获取服务版本日志") - public GenericsAjaxResult getServiceVersionLog(@PathVariable("id") Long id, + public GenericsAjaxResult getServiceVersionLog(@RequestParam("id") Long id, @RequestParam("start_time") String startTime, @RequestParam("end_time") String endTime) { return genericsSuccess(serviceService.getServiceVersionLog(id, startTime, endTime)); } From b7bdbbee789444dbfd7c0b33ef7593e1702004fc Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Wed, 9 Oct 2024 16:55:34 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/platform/service/impl/ServiceServiceImpl.java | 5 ++++- .../com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java index 20a3bd6a..812397a0 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java @@ -151,7 +151,10 @@ public class ServiceServiceImpl implements ServiceService { @Override public ServiceVersionVo getServiceVersion(Long id) { ServiceVersion serviceVersion = serviceDao.getServiceVersionById(id); - return getServiceVersionVo(serviceVersion); + ServiceVersionVo serviceVersionVo = getServiceVersionVo(serviceVersion); + com.ruoyi.platform.domain.Service service = serviceDao.getServiceById(serviceVersion.getServiceId()); + serviceVersionVo.setServiceName(service.getServiceName()); + return serviceVersionVo; } @Override diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java index 2f8e90e0..3baae9b1 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/vo/serviceVos/ServiceVersionVo.java @@ -16,6 +16,8 @@ public class ServiceVersionVo { private Long serviceId; + private String serviceName; + private String version; private String description; From a5edd4cda1fe21822f1989bd7a829a6151e04a2b Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Wed, 9 Oct 2024 17:35:33 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ServiceServiceImpl.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java index 812397a0..6ee97249 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ServiceServiceImpl.java @@ -192,7 +192,6 @@ public class ServiceServiceImpl implements ServiceService { @Override public String runServiceVersion(Long id) { ServiceVersion serviceVersion = serviceDao.getServiceVersionById(id); - ServiceVersionVo serviceVersionVo = getServiceVersionVo(serviceVersion); com.ruoyi.platform.domain.Service service = serviceDao.getServiceById(serviceVersion.getServiceId()); HashMap paramMap = new HashMap<>(); paramMap.put("service_name", service.getServiceName()); @@ -210,11 +209,11 @@ public class ServiceServiceImpl implements ServiceService { Map reqMap = JacksonUtil.parseJSONStr2Map(req); if ((Integer) reqMap.get("code") == 200) { Map data = (Map) reqMap.get("data"); - serviceVersionVo.setUrl(data.get("url")); - serviceVersionVo.setDeploymentName(data.get("deployment_name")); - serviceVersionVo.setSvcName(data.get("svc_name")); - serviceVersionVo.setRunState(Constant.Init); - editServiceVersion(serviceVersionVo); + serviceVersion.setUrl(data.get("url")); + serviceVersion.setDeploymentName(data.get("deployment_name")); + serviceVersion.setSvcName(data.get("svc_name")); + serviceVersion.setRunState(Constant.Init); + serviceDao.updateServiceVersion(serviceVersion); return "启动成功"; } else { throw new RuntimeException("启动失败"); @@ -227,13 +226,12 @@ public class ServiceServiceImpl implements ServiceService { @Override public String stopServiceVersion(Long id) { ServiceVersion serviceVersion = serviceDao.getServiceVersionById(id); - ServiceVersionVo serviceVersionVo = getServiceVersionVo(serviceVersion); HashMap paramMap = new HashMap<>(); paramMap.put("deployment_name", serviceVersion.getDeploymentName()); String req = HttpUtils.sendPost(argoUrl + modelService + "/stop", JSON.toJSONString(paramMap)); if (StringUtils.isNotEmpty(req)) { - serviceVersionVo.setRunState(Constant.Stopped); - editServiceVersion(serviceVersionVo); + serviceVersion.setRunState(Constant.Stopped); + serviceDao.updateServiceVersion(serviceVersion); return "停止成功"; } else { throw new RuntimeException("停止失败");