diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteInfoPublishService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteInfoPublishService.java index f1682ad5..06dbfce5 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteInfoPublishService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/RemoteInfoPublishService.java @@ -1,9 +1,9 @@ package com.ruoyi.system.api; -import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.NewSysNotificationParamsVo; +import com.ruoyi.system.api.domain.NewSysNotificationSendVo; import com.ruoyi.system.api.factory.RemoteInfoPublishFallbackFactory; import com.ruoyi.system.api.model.LoginUser; import org.springframework.cloud.openfeign.FeignClient; @@ -23,6 +23,24 @@ public interface RemoteInfoPublishService * @param newSysNotificationParamsVo 系统通知 * @return 结果 */ - @PostMapping("/notification/gitlink") + @PostMapping("gns/notification/gitlink") public R pushSysInfo(NewSysNotificationParamsVo newSysNotificationParamsVo); + + /** + * 改变系统消息状态 + * + * @param newSysNotificationParamsVo 系统通知 + * @return 结果 + */ +// @PutMapping("/gns/notification/{platform}") +// public R updateSysInfo(@PathVariable String platform,@RequestBody NewSysNotificationSendVo newSysNotificationParamsVo); +// +// /** +// * 改变系统消息状态 +// * +// * @param newSysNotificationParamsVo 系统通知 +// * @return 结果 +// */ +// @DeleteMapping("/gns/notification/{platform}") +// public R deleteSysInfo(@PathVariable String platform,@RequestBody NewSysNotificationSendVo newSysNotificationParamsVo); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/NewSysNotificationSendVo.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/NewSysNotificationSendVo.java new file mode 100644 index 00000000..e10036a5 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/NewSysNotificationSendVo.java @@ -0,0 +1,37 @@ +package com.ruoyi.system.api.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Range; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import javax.validation.constraints.Size; + +/** + * @description: + * @author: wanjia + * @time: 2021/9/10 + */ +@Data +public class NewSysNotificationSendVo { + + @ApiModelProperty(value = "消息接收者", required = true) + @Pattern(regexp = "^(\\-|\\+?)\\d+(,\\d+)*$", message = "接收者id串非法") + @NotBlank(message = "消息接收者不能为空") + private Integer receiver; + + @ApiModelProperty(value = "消息ids,'-1' 全部消息", required = true) + @NotBlank(message = "消息内容不能为空") + private String notificationIds; + + @ApiModelProperty(value = "消息类型 1-系统消息 2-@我", required = true) + @NotNull(message = "消息类型不能为空") + private Integer type; + + @ApiModelProperty(value = "已读状态: 1未读,2已读", required = true) + @Range(min = 1, max = 2) + @NotNull(message = "已读状态不能为空") + private Integer status; +} diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteInfoPublishFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteInfoPublishFallbackFactory.java index 7146903d..0edb18c2 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteInfoPublishFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteInfoPublishFallbackFactory.java @@ -4,6 +4,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.RemoteInfoPublishService; import com.ruoyi.system.api.RemoteUserService; import com.ruoyi.system.api.domain.NewSysNotificationParamsVo; +import com.ruoyi.system.api.domain.NewSysNotificationSendVo; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.model.LoginUser; import org.slf4j.Logger; @@ -32,6 +33,16 @@ public class RemoteInfoPublishFallbackFactory implements FallbackFactory updateSysInfo(String platform,NewSysNotificationSendVo newSysNotificationParamsVo) { +// return R.fail("更新系统消息:" + throwable.getMessage()); +// } +// +// @Override +// public R deleteSysInfo(String platform,NewSysNotificationSendVo newSysNotificationParamsVo) { +// return R.fail("删除系统消息:" + throwable.getMessage()); +// } }; } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/approval/SysNotificationController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/approval/SysNotificationController.java new file mode 100644 index 00000000..363121d3 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/approval/SysNotificationController.java @@ -0,0 +1,48 @@ +package com.ruoyi.platform.controller.approval; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.platform.domain.ApprovalRequest; +import com.ruoyi.platform.service.ApprovalService; +import com.ruoyi.platform.service.SysNotificationService; +import com.ruoyi.system.api.model.LoginUser; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("sysNotification") +@Api("系统通知") +public class SysNotificationController { + + @Resource + private SysNotificationService sysNotificationService; + + /** + * 一键已读 + * @param + * @return + */ + @PostMapping("/read-all") + public AjaxResult readAll() { + LoginUser loginUser = SecurityUtils.getLoginUser(); + sysNotificationService.readAll(loginUser); + return AjaxResult.success("审批完成"); + } + + /** + * 一键删除 + * @return + */ + @PostMapping("/delete-all") + public R> deleteAll(@RequestParam List notificationIds) { + LoginUser loginUser = SecurityUtils.getLoginUser(); + return R.ok(sysNotificationService.deleteAll(notificationIds,loginUser)); + } + +} diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/NewDatasetService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/NewDatasetService.java index aca46aa7..0af3dbbd 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/NewDatasetService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/NewDatasetService.java @@ -8,6 +8,7 @@ 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; +import org.springframework.http.HttpRequest; import org.springframework.http.ResponseEntity; import org.springframework.web.multipart.MultipartFile; @@ -50,5 +51,5 @@ public interface NewDatasetService { String getNextVersion(NewDatasetVo datasetVo) throws Exception; - String publish(NewDatasetVo datasetVo, LoginUser loginUser); + String publish(NewDatasetVo datasetVo, LoginUser loginUser) throws Exception; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/SysNotificationService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/SysNotificationService.java new file mode 100644 index 00000000..7df0c17f --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/SysNotificationService.java @@ -0,0 +1,13 @@ +package com.ruoyi.platform.service; + +import com.ruoyi.platform.domain.ApprovalRequest; +import com.ruoyi.system.api.model.LoginUser; + +import java.util.List; + +public interface SysNotificationService { + + void readAll(LoginUser loginUser); + + List deleteAll(List notificationIds,LoginUser loginUser); +} 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 a5171451..f64fdc76 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 @@ -1,8 +1,11 @@ package com.ruoyi.platform.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpResponse; +import cn.hutool.http.HttpUtil; import com.alibaba.fastjson2.JSON; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.security.utils.SecurityUtils; @@ -28,6 +31,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpRequest; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; @@ -722,7 +726,8 @@ public class NewDatasetServiceImpl implements NewDatasetService { } @Override - public String publish(NewDatasetVo datasetVo,LoginUser loginUser) { + public String publish(NewDatasetVo datasetVo, LoginUser loginUser) throws Exception { + NewDatasetVo newDatasetDesc = getNewDatasetDesc(datasetVo.getId(), datasetVo.getName(), datasetVo.getIdentifier(), datasetVo.getOwner(), null, false); String username = loginUser.getUsername(); Long userid = loginUser.getUserid(); ApprovalRequest approvalRequest = new ApprovalRequest(); @@ -731,16 +736,15 @@ public class NewDatasetServiceImpl implements NewDatasetService { approvalRequest.setApplicantId(userid); approvalRequest.setStatus(ApprovalStatus.PENDING.getCode()); - String titleTemplate="{}发布的数据集\"{}\"需要审核,请查看"; + String titleTemplate = "{}发布的数据集\"{}\"需要审核,请查看"; String urlTemplate = "/dataset/dataset/info/{}?name={}&owner={}&identifier={}&is_public={}"; - String titleFormat = StrUtil.format(titleTemplate, username,datasetVo.getIdentifier()); - String urlFormat = StrUtil.format(urlTemplate, datasetVo.getId(), datasetVo.getName(), datasetVo.getOwner(), datasetVo.getIdentifier(), datasetVo.getIsPublic()); + String titleFormat = StrUtil.format(titleTemplate, username, newDatasetDesc.getIdentifier()); + String urlFormat = StrUtil.format(urlTemplate, newDatasetDesc.getId(), newDatasetDesc.getName(), newDatasetDesc.getOwner(), newDatasetDesc.getIdentifier(), newDatasetDesc.getIsPublic()); approvalRequest.setTitle(titleFormat); approvalRequest.setUrl(urlFormat); -// approvalRequest.setApplicantTime(new Date()); - approvalRequest.setContent(JSON.toJSONString(datasetVo)); + approvalRequest.setContent(JSON.toJSONString(newDatasetDesc)); approvalService.submit(approvalRequest); NewSysNotificationParamsVo paramsVo = new NewSysNotificationParamsVo(); @@ -749,7 +753,7 @@ public class NewDatasetServiceImpl implements NewDatasetService { paramsVo.setSender(userid); paramsVo.setType(2); paramsVo.setNotification_url("/system/approval"); -// remoteInfoPublishService.pushSysInfo(paramsVo); + remoteInfoPublishService.pushSysInfo(paramsVo); return "发布成功"; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/SysNotificationServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/SysNotificationServiceImpl.java new file mode 100644 index 00000000..2eaf2cb4 --- /dev/null +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/SysNotificationServiceImpl.java @@ -0,0 +1,22 @@ +package com.ruoyi.platform.service.impl; + +import com.ruoyi.platform.domain.ApprovalRequest; +import com.ruoyi.platform.service.SysNotificationService; +import com.ruoyi.system.api.model.LoginUser; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +@Service +public class SysNotificationServiceImpl implements SysNotificationService { + @Override + public void readAll(LoginUser loginUser) { + + } + + @Override + public List deleteAll(List notificationIds,LoginUser loginUser) { + return Collections.emptyList(); + } +} diff --git a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ApprovalInfoMapper.xml b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ApprovalInfoMapper.xml index 86397e4c..9ce995ec 100644 --- a/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ApprovalInfoMapper.xml +++ b/ruoyi-modules/management-platform/src/main/resources/mapper/managementPlatform/ApprovalInfoMapper.xml @@ -50,35 +50,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - update approval_info @@ -125,14 +96,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - delete from sys_config where config_id = #{configId} + + delete from approval_info where id = #{id} - - delete from sys_config where config_id in - - #{configId} + + delete from approval_info where id in + + #{id}