From 89bdde55dfad480a22670c40751537bc8ced15c1 Mon Sep 17 00:00:00 2001 From: ddmte32 Date: Fri, 5 Sep 2025 16:04:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A1=E6=89=B9=E5=8A=9F=E8=83=BD=E8=81=94?= =?UTF-8?q?=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/NewModelFromGitController.java | 9 ++++ .../ruoyi/platform/service/ModelsService.java | 3 ++ .../service/impl/ModelsServiceImpl.java | 48 +++++++++++++++++++ .../service/impl/NewDatasetServiceImpl.java | 4 +- 4 files changed, 62 insertions(+), 2 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java index 32850949..8fbcc2c6 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/model/NewModelFromGitController.java @@ -4,12 +4,14 @@ import cn.hutool.core.collection.CollectionUtil; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.domain.GenericsAjaxResult; +import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.platform.annotations.NeedApproval; import com.ruoyi.platform.domain.ModelsVersion; import com.ruoyi.platform.service.ModelsService; import com.ruoyi.platform.vo.ModelsVo; import com.ruoyi.platform.vo.NewDatasetVo; import com.ruoyi.platform.vo.QueryModelMetricsVo; +import com.ruoyi.system.api.model.LoginUser; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.core.io.InputStreamResource; @@ -176,6 +178,13 @@ public class NewModelFromGitController extends BaseController { return AjaxResult.success(this.modelsService.unpraise(id)); } + @PostMapping("/publish") + @ApiOperation(value = "发布") + public AjaxResult publish(@RequestBody ModelsVo modelsVo) throws Exception { + LoginUser loginUser = SecurityUtils.getLoginUser(); + return AjaxResult.success(modelsService.publish(modelsVo,loginUser)); + } + @PostMapping("/privateToPublic") @ApiOperation(value = "私有库变共有库") public AjaxResult privateToPublic(@RequestBody ModelsVo modelsVo) throws Exception { diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java index c370f797..da2d2edf 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/ModelsService.java @@ -7,6 +7,7 @@ import com.ruoyi.platform.domain.ModelsVersion; import com.ruoyi.platform.vo.ModelDependency1TreeVo; import com.ruoyi.platform.vo.ModelsVo; import com.ruoyi.platform.vo.QueryModelMetricsVo; +import com.ruoyi.system.api.model.LoginUser; import org.springframework.core.io.InputStreamResource; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -128,4 +129,6 @@ public interface ModelsService { String getNextVersion(ModelsVersion modelsVersion) throws Exception; void privateToPublic(ModelsVo modelsVo) throws Exception; + + String publish(ModelsVo modelsVo, LoginUser loginUser) throws Exception; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java index c1a95241..3d6003a8 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/ModelsServiceImpl.java @@ -13,7 +13,9 @@ import com.ruoyi.platform.mapper.*; import com.ruoyi.platform.service.*; import com.ruoyi.platform.utils.*; import com.ruoyi.platform.vo.*; +import com.ruoyi.system.api.RemoteInfoPublishService; import com.ruoyi.system.api.constant.Constant; +import com.ruoyi.system.api.domain.NewSysNotificationParamsVo; import com.ruoyi.system.api.model.LoginUser; import io.minio.messages.Item; import org.apache.commons.io.FileUtils; @@ -101,6 +103,12 @@ public class ModelsServiceImpl implements ModelsService { @Resource private AssetWorkflowDao assetWorkflowDao; + @Resource + private ApprovalInfoMapper approvalInfoMapper; + + @Resource + private RemoteInfoPublishService remoteInfoPublishService; + // 固定存储桶名 @Value("${minio.dataReleaseBucketName}") private String bucketName; @@ -1385,6 +1393,46 @@ public class ModelsServiceImpl implements ModelsService { gitService.updateProjectDetail(param,modelsVo.getOwner(),modelsVo.getIdentifier(),token); } + + @Override + public String publish(ModelsVo modelsVo, LoginUser loginUser) throws Exception { + Set roles = loginUser.getRoles(); + if (roles.contains("admin")) { + //无需审批,直接通过 + return "发布成功"; + } + ModelsVo modelsVotDesc = getModelDetail(modelsVo.getId(), modelsVo.getIdentifier(),modelsVo.getOwner(),modelsVo.getVersion(), false); + String username = loginUser.getUsername(); + Long userid = loginUser.getUserid(); + ApprovalRequest approvalRequest = new ApprovalRequest(); + approvalRequest.setApplicantName(username); + approvalRequest.setType(ApprovalType.MODEL.getCode()); + approvalRequest.setApplicantId(userid); + approvalRequest.setApproverId(1L); + approvalRequest.setStatus(ApprovalStatus.PENDING.getCode()); + + String titleTemplate = "{}发布的模型\"{}\"需要审核,请查看"; + String urlTemplate = "/dataset/model/info/{}?name={}&owner={}&identifier={}&is_public={}"; + + String titleFormat = StrUtil.format(titleTemplate, username, modelsVotDesc.getName()); + String urlFormat = StrUtil.format(urlTemplate, modelsVotDesc.getId(), modelsVotDesc.getName(), modelsVotDesc.getOwner(), modelsVotDesc.getIdentifier(), modelsVotDesc.getIsPublic()); + + approvalRequest.setTitle(titleFormat); + approvalRequest.setUrl(urlFormat); + approvalRequest.setContent(JSON.toJSONString(modelsVotDesc)); + approvalInfoMapper.insertApproval(approvalRequest); + + com.ruoyi.system.api.domain.NewSysNotificationParamsVo paramsVo = new NewSysNotificationParamsVo(); + paramsVo.setContent(titleFormat); + paramsVo.setReceivers("1"); + paramsVo.setSender(userid); + paramsVo.setType(2); + paramsVo.setNotification_url("/system/approval"); + remoteInfoPublishService.pushSysInfo(paramsVo); + + return "发布成功,待管理员审核"; + } + /** * 从Map列表中提取"v+数字"格式的版本号并升级 * diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java index 9b41acc4..2c214d81 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/NewDatasetServiceImpl.java @@ -66,7 +66,7 @@ public class NewDatasetServiceImpl implements NewDatasetService { private DevEnvironmentDao devEnvironmentDao; @Resource - private ApprovalService approvalService; + private ApprovalInfoMapper approvalInfoMapper; @Resource private RemoteInfoPublishService remoteInfoPublishService; @@ -742,7 +742,7 @@ public class NewDatasetServiceImpl implements NewDatasetService { approvalRequest.setTitle(titleFormat); approvalRequest.setUrl(urlFormat); approvalRequest.setContent(JSON.toJSONString(newDatasetDesc)); - approvalService.submit(approvalRequest); + approvalInfoMapper.insertApproval(approvalRequest); NewSysNotificationParamsVo paramsVo = new NewSysNotificationParamsVo(); paramsVo.setContent(titleFormat);