| @@ -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 { | |||
| @@ -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; | |||
| } | |||
| @@ -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<String> 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 = "{}发布的模型<b>\"{}\"</b>需要审核,请查看"; | |||
| 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+数字"格式的版本号并升级 | |||
| * | |||
| @@ -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); | |||