| @@ -5,6 +5,7 @@ import com.ruoyi.common.core.web.domain.GenericsAjaxResult; | |||||
| import com.ruoyi.platform.domain.Service; | import com.ruoyi.platform.domain.Service; | ||||
| import com.ruoyi.platform.domain.ServiceVersion; | import com.ruoyi.platform.domain.ServiceVersion; | ||||
| import com.ruoyi.platform.service.ServiceService; | import com.ruoyi.platform.service.ServiceService; | ||||
| import com.ruoyi.platform.vo.serviceVos.ServiceVersionVo; | |||||
| import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
| import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
| import org.springframework.data.domain.Page; | import org.springframework.data.domain.Page; | ||||
| @@ -26,15 +27,29 @@ public class ServiceController extends BaseController { | |||||
| @GetMapping | @GetMapping | ||||
| @ApiOperation("分页查询服务列表") | @ApiOperation("分页查询服务列表") | ||||
| public GenericsAjaxResult<Page<Service>> queryByPageService(Service service, int page, int size) throws IOException { | |||||
| public GenericsAjaxResult<Page<Service>> 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); | PageRequest pageRequest = PageRequest.of(page, size); | ||||
| return genericsSuccess(serviceService.queryByPageService(service, pageRequest)); | return genericsSuccess(serviceService.queryByPageService(service, pageRequest)); | ||||
| } | } | ||||
| @GetMapping("/serviceVersion") | @GetMapping("/serviceVersion") | ||||
| @ApiOperation("分页查询服务版本列表") | @ApiOperation("分页查询服务版本列表") | ||||
| public GenericsAjaxResult<Page<ServiceVersion>> queryByPageServiceVersion(ServiceVersion serviceVersion, int page, int size) throws IOException { | |||||
| return genericsSuccess(serviceService.queryByPageServiceVersion(serviceVersion, page, size)); | |||||
| public GenericsAjaxResult<Page<ServiceVersionVo>> 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 | @PostMapping | ||||
| @@ -45,8 +60,8 @@ public class ServiceController extends BaseController { | |||||
| @PostMapping("/serviceVersion") | @PostMapping("/serviceVersion") | ||||
| @ApiOperation("新增服务版本") | @ApiOperation("新增服务版本") | ||||
| public GenericsAjaxResult<ServiceVersion> addServiceVersion(@RequestBody ServiceVersion serviceVersion) { | |||||
| return genericsSuccess(serviceService.addServiceVersion(serviceVersion)); | |||||
| public GenericsAjaxResult<ServiceVersion> addServiceVersion(@RequestBody ServiceVersionVo serviceVersionVo) { | |||||
| return genericsSuccess(serviceService.addServiceVersion(serviceVersionVo)); | |||||
| } | } | ||||
| @PutMapping | @PutMapping | ||||
| @@ -57,25 +72,25 @@ public class ServiceController extends BaseController { | |||||
| @PutMapping("/serviceVersion") | @PutMapping("/serviceVersion") | ||||
| @ApiOperation("编辑服务版本") | @ApiOperation("编辑服务版本") | ||||
| public GenericsAjaxResult<ServiceVersion> editServiceVersion(@RequestBody ServiceVersion serviceVersion) { | |||||
| return genericsSuccess(serviceService.editServiceVersion(serviceVersion)); | |||||
| public GenericsAjaxResult<String> editServiceVersion(@RequestBody ServiceVersionVo serviceVersionVo) { | |||||
| return genericsSuccess(serviceService.editServiceVersion(serviceVersionVo)); | |||||
| } | } | ||||
| @GetMapping("/serviceDetail/{id}") | @GetMapping("/serviceDetail/{id}") | ||||
| @ApiOperation("查询服务详细信息") | @ApiOperation("查询服务详细信息") | ||||
| public GenericsAjaxResult<Service> getService(@PathVariable("id") Long id){ | |||||
| public GenericsAjaxResult<Service> getService(@PathVariable("id") Long id) { | |||||
| return genericsSuccess(serviceService.getService(id)); | return genericsSuccess(serviceService.getService(id)); | ||||
| } | } | ||||
| @GetMapping("/serviceVersionDetail/{id}") | @GetMapping("/serviceVersionDetail/{id}") | ||||
| @ApiOperation("查询服务版本详细信息") | @ApiOperation("查询服务版本详细信息") | ||||
| public GenericsAjaxResult<ServiceVersion> getServiceVersion(@PathVariable("id") Long id) { | |||||
| public GenericsAjaxResult<ServiceVersionVo> getServiceVersion(@PathVariable("id") Long id) { | |||||
| return genericsSuccess(serviceService.getServiceVersion(id)); | return genericsSuccess(serviceService.getServiceVersion(id)); | ||||
| } | } | ||||
| @GetMapping("/serviceVersionList/{id}") | @GetMapping("/serviceVersionList/{id}") | ||||
| @ApiOperation("查询服务版本列表") | @ApiOperation("查询服务版本列表") | ||||
| public GenericsAjaxResult<List<ServiceVersion>> serviceVersionList(@PathVariable("id") Long id){ | |||||
| public GenericsAjaxResult<List<ServiceVersion>> serviceVersionList(@PathVariable("id") Long id) { | |||||
| return genericsSuccess(serviceService.serviceVersionList(id)); | return genericsSuccess(serviceService.serviceVersionList(id)); | ||||
| } | } | ||||
| @@ -91,11 +106,11 @@ public class ServiceController extends BaseController { | |||||
| return genericsSuccess(serviceService.deleteServiceVersion(id)); | return genericsSuccess(serviceService.deleteServiceVersion(id)); | ||||
| } | } | ||||
| @PostMapping("/runServiceVersion/{id}") | |||||
| @ApiOperation("启动服务版本") | |||||
| public GenericsAjaxResult<String> runServiceVersion(@PathVariable("id") Long id) { | |||||
| return genericsSuccess(serviceService.runServiceVersion(id)); | |||||
| } | |||||
| // @PostMapping("/runServiceVersion/{id}") | |||||
| // @ApiOperation("启动服务版本") | |||||
| // public GenericsAjaxResult<String> runServiceVersion(@PathVariable("id") Long id) { | |||||
| // return genericsSuccess(serviceService.runServiceVersion(id)); | |||||
| // } | |||||
| @DeleteMapping("/stopServiceVersion/{id}") | @DeleteMapping("/stopServiceVersion/{id}") | ||||
| @ApiOperation("停止服务版本") | @ApiOperation("停止服务版本") | ||||
| @@ -103,22 +118,22 @@ public class ServiceController extends BaseController { | |||||
| return genericsSuccess(serviceService.stopServiceVersion(id)); | return genericsSuccess(serviceService.stopServiceVersion(id)); | ||||
| } | } | ||||
| @PutMapping("/updateServiceVersion") | |||||
| @ApiOperation("更新服务版本") | |||||
| public GenericsAjaxResult<ServiceVersion> updateServiceVersion(@RequestBody ServiceVersion serviceVersion) { | |||||
| return genericsSuccess(serviceService.updateServiceVersion(serviceVersion)); | |||||
| } | |||||
| // @PutMapping("/updateServiceVersion") | |||||
| // @ApiOperation("更新服务版本") | |||||
| // public GenericsAjaxResult<String> updateServiceVersion(@RequestBody ServiceVersion serviceVersion) { | |||||
| // return genericsSuccess(serviceService.updateServiceVersion(serviceVersion)); | |||||
| // } | |||||
| @GetMapping("/getServiceVersionLog/{id}") | |||||
| @GetMapping("/getServiceVersionLog") | |||||
| @ApiOperation("获取服务版本日志") | @ApiOperation("获取服务版本日志") | ||||
| public GenericsAjaxResult<String> getServiceVersionLog(@PathVariable("id") Long id, | |||||
| @RequestParam String startTime, @RequestParam String endTime){ | |||||
| return genericsSuccess(serviceService.getServiceVersionLog(id,startTime,endTime)); | |||||
| public GenericsAjaxResult<String> getServiceVersionLog(@RequestParam("id") Long id, | |||||
| @RequestParam("start_time") String startTime, @RequestParam("end_time") String endTime) { | |||||
| return genericsSuccess(serviceService.getServiceVersionLog(id, startTime, endTime)); | |||||
| } | } | ||||
| @GetMapping("/getServiceVersionDocs/{id}") | @GetMapping("/getServiceVersionDocs/{id}") | ||||
| @ApiOperation("获取服务版本文档") | @ApiOperation("获取服务版本文档") | ||||
| public GenericsAjaxResult<Map<String, Object>> getServiceVersionDocs(@PathVariable("id") Long id){ | |||||
| public GenericsAjaxResult<Map<String, Object>> getServiceVersionDocs(@PathVariable("id") Long id) { | |||||
| return genericsSuccess(serviceService.getServiceVersionDocs(id)); | return genericsSuccess(serviceService.getServiceVersionDocs(id)); | ||||
| } | } | ||||
| } | } | ||||
| @@ -33,4 +33,7 @@ public interface ServiceDao { | |||||
| List<ServiceVersion> getServiceVersionList(@Param("serviceId") Long serviceId); | List<ServiceVersion> getServiceVersionList(@Param("serviceId") Long serviceId); | ||||
| Service getServiceByName(@Param("serviceName") String serviceName); | |||||
| ServiceVersion getSvByVersion(@Param("version") String version, @Param("serviceId") Long serviceId); | |||||
| } | } | ||||
| @@ -2,6 +2,7 @@ package com.ruoyi.platform.service; | |||||
| import com.ruoyi.platform.domain.Service; | import com.ruoyi.platform.domain.Service; | ||||
| import com.ruoyi.platform.domain.ServiceVersion; | import com.ruoyi.platform.domain.ServiceVersion; | ||||
| import com.ruoyi.platform.vo.serviceVos.ServiceVersionVo; | |||||
| import org.springframework.data.domain.Page; | import org.springframework.data.domain.Page; | ||||
| import org.springframework.data.domain.PageRequest; | import org.springframework.data.domain.PageRequest; | ||||
| @@ -12,19 +13,19 @@ import java.util.Map; | |||||
| public interface ServiceService { | public interface ServiceService { | ||||
| Page<Service> queryByPageService(Service service, PageRequest pageRequest) throws IOException; | Page<Service> queryByPageService(Service service, PageRequest pageRequest) throws IOException; | ||||
| Page<ServiceVersion> queryByPageServiceVersion(ServiceVersion serviceVersion, int page, int size) throws IOException; | |||||
| Page<ServiceVersionVo> queryByPageServiceVersion(ServiceVersion serviceVersion, int page, int size) throws IOException; | |||||
| Service addService(Service service); | Service addService(Service service); | ||||
| ServiceVersion addServiceVersion(ServiceVersion serviceVersion); | |||||
| ServiceVersion addServiceVersion(ServiceVersionVo serviceVersionVo); | |||||
| Service editService(Service service); | Service editService(Service service); | ||||
| ServiceVersion editServiceVersion(ServiceVersion serviceVersion); | |||||
| String editServiceVersion(ServiceVersionVo serviceVersionVo); | |||||
| Service getService(Long id); | Service getService(Long id); | ||||
| ServiceVersion getServiceVersion(Long id); | |||||
| ServiceVersionVo getServiceVersion(Long id); | |||||
| String deleteService(Long id); | String deleteService(Long id); | ||||
| @@ -34,7 +35,7 @@ public interface ServiceService { | |||||
| String stopServiceVersion(Long id); | String stopServiceVersion(Long id); | ||||
| ServiceVersion updateServiceVersion(ServiceVersion serviceVersion); | |||||
| String updateServiceVersion(ServiceVersion serviceVersion); | |||||
| String getServiceVersionLog(Long id, String startTime, String endTime); | String getServiceVersionLog(Long id, String startTime, String endTime); | ||||
| @@ -9,8 +9,12 @@ import com.ruoyi.platform.mapper.ServiceDao; | |||||
| import com.ruoyi.platform.service.ServiceService; | import com.ruoyi.platform.service.ServiceService; | ||||
| import com.ruoyi.platform.utils.HttpUtils; | import com.ruoyi.platform.utils.HttpUtils; | ||||
| import com.ruoyi.platform.utils.JacksonUtil; | 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 com.ruoyi.system.api.model.LoginUser; | ||||
| import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
| import org.springframework.beans.BeanUtils; | |||||
| import org.springframework.beans.factory.annotation.Value; | import org.springframework.beans.factory.annotation.Value; | ||||
| import org.springframework.data.domain.Page; | import org.springframework.data.domain.Page; | ||||
| import org.springframework.data.domain.PageImpl; | import org.springframework.data.domain.PageImpl; | ||||
| @@ -18,6 +22,7 @@ import org.springframework.data.domain.PageRequest; | |||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import javax.annotation.Resource; | import javax.annotation.Resource; | ||||
| import java.util.ArrayList; | |||||
| import java.util.HashMap; | import java.util.HashMap; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| @@ -43,7 +48,7 @@ public class ServiceServiceImpl implements ServiceService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public Page<ServiceVersion> queryByPageServiceVersion(ServiceVersion serviceVersion, int page, int size) { | |||||
| public Page<ServiceVersionVo> queryByPageServiceVersion(ServiceVersion serviceVersion, int page, int size) { | |||||
| PageRequest pageRequest; | PageRequest pageRequest; | ||||
| if (StringUtils.isNotEmpty(serviceVersion.getRunState())) { | if (StringUtils.isNotEmpty(serviceVersion.getRunState())) { | ||||
| pageRequest = PageRequest.of(page, Integer.MAX_VALUE); | pageRequest = PageRequest.of(page, Integer.MAX_VALUE); | ||||
| @@ -51,13 +56,22 @@ public class ServiceServiceImpl implements ServiceService { | |||||
| List<String> deploymentNames = serviceVersions.stream().map(ServiceVersion::getDeploymentName).collect(Collectors.toList()); | List<String> deploymentNames = serviceVersions.stream().map(ServiceVersion::getDeploymentName).collect(Collectors.toList()); | ||||
| Map<String, String> runStates = getRunState(deploymentNames); | Map<String, String> runStates = getRunState(deploymentNames); | ||||
| updateRunState(runStates); | |||||
| if (runStates != null) { | |||||
| updateRunState(runStates, serviceVersions); | |||||
| } | |||||
| List<ServiceVersion> result = serviceVersions.stream().filter(serviceVersion1 -> { | |||||
| String runState = runStates.get(serviceVersion1.getDeploymentName()); | |||||
| return serviceVersion1.getRunState().equals(runState); | |||||
| List<ServiceVersion> 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()); | }).collect(Collectors.toList()); | ||||
| List<ServiceVersionVo> result = getServiceVersionVoList(serviceVersionList); | |||||
| PageRequest.of(page, size); | PageRequest.of(page, size); | ||||
| return new PageImpl<>(result, pageRequest, result.size()); | return new PageImpl<>(result, pageRequest, result.size()); | ||||
| } else { | } else { | ||||
| @@ -67,33 +81,22 @@ public class ServiceServiceImpl implements ServiceService { | |||||
| List<String> deploymentNames = serviceVersions.stream().map(ServiceVersion::getDeploymentName).collect(Collectors.toList()); | List<String> deploymentNames = serviceVersions.stream().map(ServiceVersion::getDeploymentName).collect(Collectors.toList()); | ||||
| Map<String, String> runStates = getRunState(deploymentNames); | Map<String, String> runStates = getRunState(deploymentNames); | ||||
| updateRunState(runStates); | |||||
| return new PageImpl<>(serviceVersions, pageRequest, total); | |||||
| } | |||||
| } | |||||
| Map<String, String> getRunState(List<String> deploymentNames) { | |||||
| HashMap<String, Object> paramMap = new HashMap<>(); | |||||
| paramMap.put("deployment_names", deploymentNames); | |||||
| String req = HttpUtils.sendPost(argoUrl + modelService + "/getStatus", JSON.toJSONString(paramMap)); | |||||
| if (StringUtils.isNotEmpty(req)) { | |||||
| Map<String, Object> reqMap = JacksonUtil.parseJSONStr2Map(req); | |||||
| Map<String, Map<String, String>> data = (Map<String, Map<String, String>>) reqMap.get("data"); | |||||
| return data.get("status"); | |||||
| } else { | |||||
| return null; | |||||
| } | |||||
| } | |||||
| if (runStates != null) { | |||||
| updateRunState(runStates, serviceVersions); | |||||
| } | |||||
| List<ServiceVersionVo> result = getServiceVersionVoList(serviceVersions); | |||||
| void updateRunState(Map<String, String> runStates) { | |||||
| for (Map.Entry<String, String> entry : runStates.entrySet()) { | |||||
| serviceDao.updateRunState(entry.getKey(), entry.getValue()); | |||||
| return new PageImpl<>(result, pageRequest, total); | |||||
| } | } | ||||
| } | } | ||||
| @Override | @Override | ||||
| public com.ruoyi.platform.domain.Service addService(com.ruoyi.platform.domain.Service service) { | 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(); | LoginUser loginUser = SecurityUtils.getLoginUser(); | ||||
| service.setCreateBy(loginUser.getUsername()); | service.setCreateBy(loginUser.getUsername()); | ||||
| service.setUpdateBy(loginUser.getUsername()); | service.setUpdateBy(loginUser.getUsername()); | ||||
| @@ -102,11 +105,18 @@ public class ServiceServiceImpl implements ServiceService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public ServiceVersion addServiceVersion(ServiceVersion serviceVersion) { | |||||
| 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(); | LoginUser loginUser = SecurityUtils.getLoginUser(); | ||||
| serviceVersion.setCreateBy(loginUser.getUsername()); | serviceVersion.setCreateBy(loginUser.getUsername()); | ||||
| serviceVersion.setUpdateBy(loginUser.getUsername()); | serviceVersion.setUpdateBy(loginUser.getUsername()); | ||||
| serviceDao.insertServiceVersion(serviceVersion); | serviceDao.insertServiceVersion(serviceVersion); | ||||
| runServiceVersion(serviceVersion.getId()); | |||||
| return serviceVersion; | return serviceVersion; | ||||
| } | } | ||||
| @@ -119,47 +129,53 @@ public class ServiceServiceImpl implements ServiceService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public ServiceVersion editServiceVersion(ServiceVersion serviceVersion) { | |||||
| 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(); | LoginUser loginUser = SecurityUtils.getLoginUser(); | ||||
| serviceVersion.setUpdateBy(loginUser.getUsername()); | serviceVersion.setUpdateBy(loginUser.getUsername()); | ||||
| serviceDao.updateServiceVersion(serviceVersion); | serviceDao.updateServiceVersion(serviceVersion); | ||||
| return serviceDao.getServiceVersionById(serviceVersion.getId()); | |||||
| return "修改成功"; | |||||
| } | } | ||||
| @Override | @Override | ||||
| public com.ruoyi.platform.domain.Service getService(Long id) { | 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); | return serviceDao.getServiceById(id); | ||||
| } | } | ||||
| @Override | @Override | ||||
| public ServiceVersion getServiceVersion(Long id) { | |||||
| return serviceDao.getServiceVersionById(id); | |||||
| public ServiceVersionVo getServiceVersion(Long id) { | |||||
| ServiceVersion serviceVersion = serviceDao.getServiceVersionById(id); | |||||
| ServiceVersionVo serviceVersionVo = getServiceVersionVo(serviceVersion); | |||||
| com.ruoyi.platform.domain.Service service = serviceDao.getServiceById(serviceVersion.getServiceId()); | |||||
| serviceVersionVo.setServiceName(service.getServiceName()); | |||||
| return serviceVersionVo; | |||||
| } | } | ||||
| @Override | @Override | ||||
| public String deleteService(Long id) { | public String deleteService(Long id) { | ||||
| com.ruoyi.platform.domain.Service service = serviceDao.getServiceById(id); | com.ruoyi.platform.domain.Service service = serviceDao.getServiceById(id); | ||||
| if (service == null) { | if (service == null) { | ||||
| return "服务不存在"; | |||||
| throw new RuntimeException("服务不存在"); | |||||
| } | } | ||||
| LoginUser loginUser = SecurityUtils.getLoginUser(); | LoginUser loginUser = SecurityUtils.getLoginUser(); | ||||
| String username = loginUser.getUsername(); | String username = loginUser.getUsername(); | ||||
| String createBy = service.getCreateBy(); | String createBy = service.getCreateBy(); | ||||
| if (!(StringUtils.equals(username, "admin") || StringUtils.equals(username, createBy))) { | if (!(StringUtils.equals(username, "admin") || StringUtils.equals(username, createBy))) { | ||||
| return "无权限删除该服务"; | |||||
| throw new RuntimeException("无权限删除该服务"); | |||||
| } | } | ||||
| ServiceVersion serviceVersion = new ServiceVersion(); | ServiceVersion serviceVersion = new ServiceVersion(); | ||||
| serviceVersion.setServiceId(id); | serviceVersion.setServiceId(id); | ||||
| long versionCount = serviceDao.countServiceVersion(serviceVersion); | long versionCount = serviceDao.countServiceVersion(serviceVersion); | ||||
| if (versionCount != 0) { | if (versionCount != 0) { | ||||
| return "该服务下还有版本,不能删除"; | |||||
| throw new RuntimeException("该服务下还有版本,不能删除"); | |||||
| } | } | ||||
| service.setState(Constant.State_invalid); | service.setState(Constant.State_invalid); | ||||
| @@ -197,7 +213,7 @@ public class ServiceServiceImpl implements ServiceService { | |||||
| serviceVersion.setDeploymentName(data.get("deployment_name")); | serviceVersion.setDeploymentName(data.get("deployment_name")); | ||||
| serviceVersion.setSvcName(data.get("svc_name")); | serviceVersion.setSvcName(data.get("svc_name")); | ||||
| serviceVersion.setRunState(Constant.Init); | serviceVersion.setRunState(Constant.Init); | ||||
| editServiceVersion(serviceVersion); | |||||
| serviceDao.updateServiceVersion(serviceVersion); | |||||
| return "启动成功"; | return "启动成功"; | ||||
| } else { | } else { | ||||
| throw new RuntimeException("启动失败"); | throw new RuntimeException("启动失败"); | ||||
| @@ -215,7 +231,7 @@ public class ServiceServiceImpl implements ServiceService { | |||||
| String req = HttpUtils.sendPost(argoUrl + modelService + "/stop", JSON.toJSONString(paramMap)); | String req = HttpUtils.sendPost(argoUrl + modelService + "/stop", JSON.toJSONString(paramMap)); | ||||
| if (StringUtils.isNotEmpty(req)) { | if (StringUtils.isNotEmpty(req)) { | ||||
| serviceVersion.setRunState(Constant.Stopped); | serviceVersion.setRunState(Constant.Stopped); | ||||
| editServiceVersion(serviceVersion); | |||||
| serviceDao.updateServiceVersion(serviceVersion); | |||||
| return "停止成功"; | return "停止成功"; | ||||
| } else { | } else { | ||||
| throw new RuntimeException("停止失败"); | throw new RuntimeException("停止失败"); | ||||
| @@ -223,7 +239,7 @@ public class ServiceServiceImpl implements ServiceService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public ServiceVersion updateServiceVersion(ServiceVersion serviceVersion) { | |||||
| public String updateServiceVersion(ServiceVersion serviceVersion) { | |||||
| HashMap<String, Object> paramMap = new HashMap<>(); | HashMap<String, Object> paramMap = new HashMap<>(); | ||||
| paramMap.put("deployment_name", serviceVersion.getDeploymentName()); | paramMap.put("deployment_name", serviceVersion.getDeploymentName()); | ||||
| HashMap<String, Object> updateMap = new HashMap<>(); | HashMap<String, Object> updateMap = new HashMap<>(); | ||||
| @@ -232,7 +248,7 @@ public class ServiceServiceImpl implements ServiceService { | |||||
| paramMap.put("update_model", JSON.toJSONString(updateMap)); | paramMap.put("update_model", JSON.toJSONString(updateMap)); | ||||
| String req = HttpUtils.sendPost(argoUrl + modelService + "/update", JSON.toJSONString(paramMap)); | String req = HttpUtils.sendPost(argoUrl + modelService + "/update", JSON.toJSONString(paramMap)); | ||||
| if (StringUtils.isNotEmpty(req)) { | if (StringUtils.isNotEmpty(req)) { | ||||
| return editServiceVersion(serviceVersion); | |||||
| return "修改成功"; | |||||
| } else { | } else { | ||||
| throw new RuntimeException("更新失败"); | throw new RuntimeException("更新失败"); | ||||
| } | } | ||||
| @@ -275,4 +291,61 @@ public class ServiceServiceImpl implements ServiceService { | |||||
| return serviceDao.getServiceVersionList(id); | 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())); | |||||
| serviceVersion.setEnvVariables(JSON.toJSONString(serviceVersionVo.getEnvVariables())); | |||||
| return serviceVersion; | |||||
| } | |||||
| List<ServiceVersionVo> getServiceVersionVoList(List<ServiceVersion> serviceVersionList) { | |||||
| List<ServiceVersionVo> 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); | |||||
| serviceVersionVo.setEnvVariables(JacksonUtil.parseJSONStr2Map(sv.getEnvVariables())); | |||||
| return serviceVersionVo; | |||||
| } | |||||
| Map<String, String> getRunState(List<String> deploymentNames) { | |||||
| HashMap<String, Object> paramMap = new HashMap<>(); | |||||
| paramMap.put("deployment_names", deploymentNames); | |||||
| String req = HttpUtils.sendPost(argoUrl + modelService + "/getStatus", JSON.toJSONString(paramMap)); | |||||
| if (StringUtils.isNotEmpty(req)) { | |||||
| Map<String, Object> reqMap = JacksonUtil.parseJSONStr2Map(req); | |||||
| Map<String, Map<String, String>> data = (Map<String, Map<String, String>>) reqMap.get("data"); | |||||
| if (data != null) { | |||||
| return data.get("status"); | |||||
| } | |||||
| return null; | |||||
| } else { | |||||
| return null; | |||||
| } | |||||
| } | |||||
| void updateRunState(Map<String, String> runStates, List<ServiceVersion> serviceVersionList) { | |||||
| for (ServiceVersion sv : serviceVersionList) { | |||||
| String runState = runStates.get(sv.getDeploymentName()); | |||||
| sv.setRunState(runState); | |||||
| serviceDao.updateRunState(sv.getDeploymentName(), runState); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| @@ -0,0 +1,15 @@ | |||||
| 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; | |||||
| private String showValue; | |||||
| } | |||||
| @@ -0,0 +1,24 @@ | |||||
| 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; | |||||
| private String showValue; | |||||
| } | |||||
| @@ -0,0 +1,60 @@ | |||||
| 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 serviceName; | |||||
| private String version; | |||||
| private String description; | |||||
| private ServiceModelVo model; | |||||
| private String image; | |||||
| private String resource; | |||||
| private Integer replicas; | |||||
| private String mountPath; | |||||
| private Map<String, Object> 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; | |||||
| private Boolean rerun; | |||||
| } | |||||
| @@ -8,7 +8,7 @@ | |||||
| <if test="service.serviceName != null and service.serviceName != ''"> | <if test="service.serviceName != null and service.serviceName != ''"> | ||||
| and service_name like concat('%', #{service.serviceName}, '%') | and service_name like concat('%', #{service.serviceName}, '%') | ||||
| </if> | </if> | ||||
| <if test="service.serviceType != null"> | |||||
| <if test="service.serviceType != null and service.serviceType != ''"> | |||||
| and service_type = #{service.serviceType} | and service_type = #{service.serviceType} | ||||
| </if> | </if> | ||||
| </where> | </where> | ||||
| @@ -22,7 +22,7 @@ | |||||
| <if test="service.serviceName != null and service.serviceName != ''"> | <if test="service.serviceName != null and service.serviceName != ''"> | ||||
| and a.service_name like concat('%', #{service.serviceName}, '%') | and a.service_name like concat('%', #{service.serviceName}, '%') | ||||
| </if> | </if> | ||||
| <if test="service.serviceType != null"> | |||||
| <if test="service.serviceType != null and service.serviceType != ''"> | |||||
| and a.service_type = #{service.serviceType} | and a.service_type = #{service.serviceType} | ||||
| </if> | </if> | ||||
| </where> | </where> | ||||
| @@ -56,9 +56,10 @@ | |||||
| </sql> | </sql> | ||||
| <select id="getServiceById" resultType="com.ruoyi.platform.domain.Service"> | <select id="getServiceById" resultType="com.ruoyi.platform.domain.Service"> | ||||
| select * | |||||
| from service | |||||
| where id = #{id} | |||||
| select a.*,count(b.id) as version_count | |||||
| from service a | |||||
| left join (select * from service_version where state = 1) b on a.id = b.service_id | |||||
| where a.id = #{id} | |||||
| </select> | </select> | ||||
| <select id="getServiceVersionById" resultType="com.ruoyi.platform.domain.ServiceVersion"> | <select id="getServiceVersionById" resultType="com.ruoyi.platform.domain.ServiceVersion"> | ||||
| @@ -73,12 +74,22 @@ | |||||
| where service_id = #{serviceId} | where service_id = #{serviceId} | ||||
| </select> | </select> | ||||
| <insert id="insertService"> | |||||
| <select id="getServiceByName" resultType="com.ruoyi.platform.domain.Service"> | |||||
| select * from service where service_name = #{serviceName} and state = 1 | |||||
| </select> | |||||
| <select id="getSvByVersion" resultType="com.ruoyi.platform.domain.ServiceVersion"> | |||||
| select * | |||||
| from service_version | |||||
| where service_id = #{serviceId} and version = #{version} and state = 1 | |||||
| </select> | |||||
| <insert id="insertService" keyProperty="id" useGeneratedKeys="true"> | |||||
| insert into service(service_name, service_type, description, create_by, update_by) | insert into service(service_name, service_type, description, create_by, update_by) | ||||
| values (#{service.serviceName}, #{service.serviceType}, #{service.description}, #{service.createBy}, #{service.updateBy}) | values (#{service.serviceName}, #{service.serviceType}, #{service.description}, #{service.createBy}, #{service.updateBy}) | ||||
| </insert> | </insert> | ||||
| <insert id="insertServiceVersion"> | |||||
| <insert id="insertServiceVersion" keyProperty="id" useGeneratedKeys="true"> | |||||
| insert into service_version(service_id, version, model, description, image, resource, replicas, mount_path, env_variables, | insert into service_version(service_id, version, model, description, image, resource, replicas, mount_path, env_variables, | ||||
| code_config, command, create_by, update_by) | code_config, command, create_by, update_by) | ||||
| values (#{serviceVersion.serviceId}, #{serviceVersion.version}, #{serviceVersion.model}, #{serviceVersion.description}, #{serviceVersion.image}, | values (#{serviceVersion.serviceId}, #{serviceVersion.version}, #{serviceVersion.model}, #{serviceVersion.description}, #{serviceVersion.image}, | ||||