From b7b92ce7013e92330b0ed2eb99108a431371e919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A5=BF=E5=A4=A7=E9=94=90?= <1070211640@qq.com> Date: Mon, 3 Jun 2024 16:57:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=BC=80=E5=8F=91=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E6=A1=86=E6=9E=B6=E6=90=AD=E5=BB=BA=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=88=A0=E6=94=B9=E6=9F=A5=E6=8E=A5=E5=8F=A3=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevEnvironmentController.java | 90 +++++++ .../ruoyi/platform/domain/DevEnvironment.java | 213 ++++++++++++++++ .../platform/mapper/DevEnvironmentDao.java | 83 +++++++ .../service/DevEnvironmentService.java | 57 +++++ .../impl/DevEnvironmentServiceImpl.java | 114 +++++++++ .../impl/ModelDependencyServiceImpl.java | 3 +- .../DevEnvironmentDaoMapper.xml | 231 ++++++++++++++++++ 7 files changed, 790 insertions(+), 1 deletion(-) create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/devEnvironment/DevEnvironmentController.java create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/DevEnvironment.java create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DevEnvironmentDao.java create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DevEnvironmentService.java create mode 100644 ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DevEnvironmentServiceImpl.java create mode 100644 ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DevEnvironmentDaoMapper.xml diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/devEnvironment/DevEnvironmentController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/devEnvironment/DevEnvironmentController.java new file mode 100644 index 00000000..a845eae2 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/devEnvironment/DevEnvironmentController.java @@ -0,0 +1,90 @@ +package com.ruoyi.platform.controller.devEnvironment; + +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.GenericsAjaxResult; +import com.ruoyi.platform.domain.DevEnvironment; +import com.ruoyi.platform.service.DevEnvironmentService; +import io.swagger.annotations.Api; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * (DevEnvironment)表控制层 + * + * @author Xidaray + * @since 2024-06-03 15:17:37 + */ +@RestController +@RequestMapping("devEnvironment") +@Api("开发环境管理") +public class DevEnvironmentController extends BaseController { + /** + * 服务对象 + */ + @Resource + private DevEnvironmentService devEnvironmentService; + + /** + * 分页查询 + * + * @param devEnvironment 筛选条件 + * @param page 页数 + * @param size 每页大小 + * @return 查询结果 + */ + @GetMapping + public GenericsAjaxResult> queryByPage(DevEnvironment devEnvironment, int page, int size) { + PageRequest pageRequest = PageRequest.of(page,size); + return genericsSuccess(this.devEnvironmentService.queryByPage(devEnvironment, pageRequest)); + } + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("{id}") + public ResponseEntity queryById(@PathVariable("id") Integer id) { + return ResponseEntity.ok(this.devEnvironmentService.queryById(id)); + } + + /** + * 新增数据 + * + * @param devEnvironment 实体 + * @return 新增结果 + */ + @PostMapping + public ResponseEntity add(DevEnvironment devEnvironment) { + return ResponseEntity.ok(this.devEnvironmentService.insert(devEnvironment)); + } + + /** + * 编辑数据 + * + * @param devEnvironment 实体 + * @return 编辑结果 + */ + @PutMapping + public ResponseEntity edit(DevEnvironment devEnvironment) { + return ResponseEntity.ok(this.devEnvironmentService.update(devEnvironment)); + } + + /** + * 删除数据 + * + * @param id 主键 + * @return 删除是否成功 + */ + @DeleteMapping("{id}") + public ResponseEntity deleteById(@PathVariable("id") Integer id) { + return ResponseEntity.ok(this.devEnvironmentService.deleteById(id)); + } + +} + diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/DevEnvironment.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/DevEnvironment.java new file mode 100644 index 00000000..75d5ad8b --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/domain/DevEnvironment.java @@ -0,0 +1,213 @@ +package com.ruoyi.platform.domain; + +import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.fasterxml.jackson.databind.annotation.JsonNaming; + +import java.util.Date; +import java.io.Serializable; + +/** + * (DevEnvironment)实体类 + * + * @author Xidaray + * @since 2024-06-03 15:17:37 + */ +@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) +public class DevEnvironment implements Serializable { + private static final long serialVersionUID = 936999018935545992L; +/** + * 主键 + */ + private Integer id; +/** + * 编辑器名称 + */ + private String name; +/** + * 状态 + */ + private String status; +/** + * 计算资源 + */ + private String computingResource; +/** + * 资源规格 + */ + private String standard; +/** + * 环境变量 + */ + private String envVariable; +/** + * 所用镜像 + */ + private String image; +/** + * 对应数据集 + */ + private String dataset; +/** + * 对应模型 + */ + private String model; +/** + * 备用字段1 + */ + private String altField1; +/** + * 备用字段2 + */ + private String altField2; +/** + * 创建者 + */ + private String createBy; +/** + * 创建时间 + */ + private Date createTime; +/** + * 更新者 + */ + private String updateBy; +/** + * 更新时间 + */ + private Date updateTime; +/** + * 状态,0失效1生效 + */ + private Integer state; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getComputingResource() { + return computingResource; + } + + public void setComputingResource(String computingResource) { + this.computingResource = computingResource; + } + + public String getStandard() { + return standard; + } + + public void setStandard(String standard) { + this.standard = standard; + } + + public String getEnvVariable() { + return envVariable; + } + + public void setEnvVariable(String envVariable) { + this.envVariable = envVariable; + } + + public String getImage() { + return image; + } + + public void setImage(String image) { + this.image = image; + } + + public String getDataset() { + return dataset; + } + + public void setDataset(String dataset) { + this.dataset = dataset; + } + + public String getModel() { + return model; + } + + public void setModel(String model) { + this.model = model; + } + + public String getAltField1() { + return altField1; + } + + public void setAltField1(String altField1) { + this.altField1 = altField1; + } + + public String getAltField2() { + return altField2; + } + + public void setAltField2(String altField2) { + this.altField2 = altField2; + } + + public String getCreateBy() { + return createBy; + } + + public void setCreateBy(String createBy) { + this.createBy = createBy; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getUpdateBy() { + return updateBy; + } + + public void setUpdateBy(String updateBy) { + this.updateBy = updateBy; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public Integer getState() { + return state; + } + + public void setState(Integer state) { + this.state = state; + } + +} + diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DevEnvironmentDao.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DevEnvironmentDao.java new file mode 100644 index 00000000..0cb652ff --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/mapper/DevEnvironmentDao.java @@ -0,0 +1,83 @@ +package com.ruoyi.platform.mapper; + +import com.ruoyi.platform.domain.DevEnvironment; +import org.apache.ibatis.annotations.Param; +import org.springframework.data.domain.Pageable; +import java.util.List; + +/** + * (DevEnvironment)表数据库访问层 + * + * @author Xidaray + * @since 2024-06-03 15:17:37 + */ +public interface DevEnvironmentDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + DevEnvironment queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param devEnvironment 查询条件 + * @param pageable 分页对象 + * @return 对象列表 + */ + List queryAllByLimit(@Param("devEnvironment") DevEnvironment devEnvironment, @Param("pageable") Pageable pageable); + + /** + * 统计总行数 + * + * @param devEnvironment 查询条件 + * @return 总行数 + */ + long count(@Param("devEnvironment") DevEnvironment devEnvironment); + + /** + * 新增数据 + * + * @param devEnvironment 实例对象 + * @return 影响行数 + */ + int insert(@Param("devEnvironment") DevEnvironment devEnvironment); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param devEnvironment 实例对象 + * @return 影响行数 + */ + int update(@Param("devEnvironment") DevEnvironment devEnvironment); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + +} + diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DevEnvironmentService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DevEnvironmentService.java new file mode 100644 index 00000000..36efd621 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/DevEnvironmentService.java @@ -0,0 +1,57 @@ +package com.ruoyi.platform.service; + +import com.ruoyi.platform.domain.DevEnvironment; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; + +/** + * (DevEnvironment)表服务接口 + * + * @author Xidaray + * @since 2024-06-03 15:17:37 + */ +public interface DevEnvironmentService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + DevEnvironment queryById(Integer id); + + /** + * 分页查询 + * + * @param devEnvironment 筛选条件 + * @param pageRequest 分页对象 + * @return 查询结果 + */ + Page queryByPage(DevEnvironment devEnvironment, PageRequest pageRequest); + + /** + * 新增数据 + * + * @param devEnvironment 实例对象 + * @return 实例对象 + */ + DevEnvironment insert(DevEnvironment devEnvironment); + + /** + * 修改数据 + * + * @param devEnvironment 实例对象 + * @return 实例对象 + */ + DevEnvironment update(DevEnvironment devEnvironment); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + + String removeById(Integer id); +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DevEnvironmentServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DevEnvironmentServiceImpl.java new file mode 100644 index 00000000..a23a44bd --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/DevEnvironmentServiceImpl.java @@ -0,0 +1,114 @@ +package com.ruoyi.platform.service.impl; + +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.platform.domain.DevEnvironment; +import com.ruoyi.platform.mapper.DevEnvironmentDao; +import com.ruoyi.platform.service.DevEnvironmentService; +import com.ruoyi.system.api.model.LoginUser; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.PageRequest; + +import javax.annotation.Resource; +import java.util.Date; + +/** + * (DevEnvironment)表服务实现类 + * + * @author Xidaray + * @since 2024-06-03 15:17:37 + */ +@Service("devEnvironmentService") +public class DevEnvironmentServiceImpl implements DevEnvironmentService { + @Resource + private DevEnvironmentDao devEnvironmentDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public DevEnvironment queryById(Integer id) { + return this.devEnvironmentDao.queryById(id); + } + + /** + * 分页查询 + * + * @param devEnvironment 筛选条件 + * @param pageRequest 分页对象 + * @return 查询结果 + */ + @Override + public Page queryByPage(DevEnvironment devEnvironment, PageRequest pageRequest) { + long total = this.devEnvironmentDao.count(devEnvironment); + return new PageImpl<>(this.devEnvironmentDao.queryAllByLimit(devEnvironment, pageRequest), pageRequest, total); + } + + /** + * 新增数据 + * + * @param devEnvironment 实例对象 + * @return 实例对象 + */ + @Override + public DevEnvironment insert(DevEnvironment devEnvironment) { + //插入预备,此时不需要判断版本重复 + LoginUser loginUser = SecurityUtils.getLoginUser(); + devEnvironment.setCreateBy(loginUser.getUsername()); + devEnvironment.setUpdateBy(loginUser.getUsername()); + devEnvironment.setUpdateTime(new Date()); + devEnvironment.setCreateTime(new Date()); + this.devEnvironmentDao.insert(devEnvironment); + return devEnvironment; + } + + /** + * 修改数据 + * + * @param devEnvironment 实例对象 + * @return 实例对象 + */ + @Override + public DevEnvironment update(DevEnvironment devEnvironment) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + devEnvironment.setUpdateBy(loginUser.getUsername()); + devEnvironment.setUpdateTime(new Date()); + this.devEnvironmentDao.update(devEnvironment); + return this.queryById(devEnvironment.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.devEnvironmentDao.deleteById(id) > 0; + } + + @Override + public String removeById(Integer id) { + DevEnvironment devEnvironment = this.devEnvironmentDao.queryById(id); + if (devEnvironment == null){ + return "开发环境信息不存在"; + } + + //判断权限,只有admin和创建者本身可以删除该数据集 + LoginUser loginUser = SecurityUtils.getLoginUser(); + String username = loginUser.getUsername(); + String createdBy = devEnvironment.getCreateBy(); + if (!(StringUtils.equals(username,"admin") || StringUtils.equals(username,createdBy))){ + return "无权限删除该开发环境"; + } + + devEnvironment.setState(0); + return this.devEnvironmentDao.update(devEnvironment)>0?"删除成功":"删除失败"; + } +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelDependencyServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelDependencyServiceImpl.java index d3f62d35..e4f72928 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelDependencyServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelDependencyServiceImpl.java @@ -71,7 +71,7 @@ public class ModelDependencyServiceImpl implements ModelDependencyService { public ModelDependcyTreeVo getModelDependencyTree(ModelDependency modelDependencyQuery) throws Exception { //查询当前模型 List modelDependencyList = modelDependencyDao.queryByModelDependency(modelDependencyQuery); - if (modelDependencyList==null||modelDependencyList.size()==0){ + if (modelDependencyList==null || modelDependencyList.size()==0){ throw new Exception("当前模型依赖关系不存在"); } ModelDependency modelDependency = modelDependencyList.get(0); @@ -128,6 +128,7 @@ public class ModelDependencyServiceImpl implements ModelDependencyService { } modelDependcyTreeVo.setChildrenModels(cs); } + private ModelDependcyTreeVo ModelDependencyConvertToTree(ModelDependency modelDependency){ ModelDependcyTreeVo modelDependcyTreeVo = new ModelDependcyTreeVo(); modelDependcyTreeVo.setCurrentModelId(modelDependency.getCurrentModelId()); diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DevEnvironmentDaoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DevEnvironmentDaoMapper.xml new file mode 100644 index 00000000..60d43637 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/DevEnvironmentDaoMapper.xml @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into dev_environment(name,status,computing_resource,standard,env_variable,image,dataset,model,alt_field1,alt_field2,create_by,create_time,update_by,update_time,state) + values (#{name},#{status},#{computingResource},#{standard},#{envVariable},#{image},#{dataset},#{model},#{altField1},#{altField2},#{createBy},#{createTime},#{updateBy},#{updateTime},#{state}) + + + + insert into dev_environment(name,status,computing_resource,standard,env_variable,image,dataset,model,alt_field1,alt_field2,create_by,create_time,update_by,update_time,state ) + values + + (#{entity.name},#{entity.status},#{entity.computingResource},#{entity.standard},#{entity.envVariable},#{entity.image},#{entity.dataset},#{entity.model},#{entity.altField1},#{entity.altField2},#{entity.createBy},#{entity.createTime},#{entity.updateBy},#{entity.updateTime},#{entity.state}) + + + + + insert into dev_environment(name,status,computing_resource,standard,env_variable,image,dataset,model,alt_field1,alt_field2,create_by,create_time,update_by,update_time,state) + values + + (#{entity.name}#{entity.status}#{entity.computingResource}#{entity.standard}#{entity.envVariable}#{entity.image}#{entity.dataset}#{entity.model}#{entity.altField1}#{entity.altField2}#{entity.createBy}#{entity.createTime}#{entity.updateBy}#{entity.updateTime}#{entity.state}) + + on duplicate key update +name = values(name)status = values(status)computing_resource = values(computing_resource)standard = values(standard)env_variable = values(env_variable)image = values(image)dataset = values(dataset)model = values(model)alt_field1 = values(alt_field1)alt_field2 = values(alt_field2)create_by = values(create_by)create_time = values(create_time)update_by = values(update_by)update_time = values(update_time)state = values(state) + + + + + update dev_environment + + + name = #{devEnvironment.name}, + + + status = #{devEnvironment.status}, + + + computing_resource = #{devEnvironment.computingResource}, + + + standard = #{devEnvironment.standard}, + + + env_variable = #{devEnvironment.envVariable}, + + + image = #{devEnvironment.image}, + + + dataset = #{devEnvironment.dataset}, + + + model = #{devEnvironment.model}, + + + alt_field1 = #{devEnvironment.altField1}, + + + alt_field2 = #{devEnvironment.altField2}, + + + create_by = #{devEnvironment.createBy}, + + + create_time = #{devEnvironment.createTime}, + + + update_by = #{devEnvironment.updateBy}, + + + update_time = #{devEnvironment.updateTime}, + + + state = #{devEnvironment.state}, + + + where id = #{devEnvironment.id} + + + + + + delete from dev_environment where id = #{id} + + + +