From 9d8106fcdf59910eac0d5d6431571e02ab63adf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BC=9A=E7=BC=96=E7=A8=8B=E7=9A=84=E7=8E=8B=E5=AD=A6?= =?UTF-8?q?=E9=95=BF?= <71161318+wang1027-wqh@users.noreply.github.com> Date: Wed, 13 Apr 2022 14:56:58 +0800 Subject: [PATCH] [manager]feature: zh and en annotations for code, delete notification when edit query is empty (#86) * feat: MonitorsController Chinese and English support #huacheng * feat: [manager]feature:Delete notification operation compatibility query is empty #huacheng --- .../controller/NoticeConfigController.java | 11 ++++++++--- .../manager/service/NoticeConfigService.java | 18 ++++++++++++++++++ .../service/impl/NoticeConfigServiceImpl.java | 16 ++++++++++++++-- 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/manager/src/main/java/com/usthe/manager/controller/NoticeConfigController.java b/manager/src/main/java/com/usthe/manager/controller/NoticeConfigController.java index 6e7d34f..fdca14c 100644 --- a/manager/src/main/java/com/usthe/manager/controller/NoticeConfigController.java +++ b/manager/src/main/java/com/usthe/manager/controller/NoticeConfigController.java @@ -60,8 +60,10 @@ public class NoticeConfigController { @ApiOperation(value = "Delete existing recipient information", notes = "删除已存在的接收人信息") public ResponseEntity> deleteNoticeReceiver( @ApiParam(value = "en: Recipient ID,zh: 接收人ID", example = "6565463543") @PathVariable("id") final Long receiverId) { - // Returns success if it does not exist or if the deletion is successful - // todo 不存在或删除成功都返回成功 + NoticeReceiver noticeReceiver = noticeConfigService.getReceiverById(receiverId); + if (noticeReceiver == null) { + return ResponseEntity.ok(new Message<>("The relevant information of the recipient could not be found, please check whether the parameters are correct")); + } noticeConfigService.deleteReceiver(receiverId); return ResponseEntity.ok(new Message<>("Delete success")); } @@ -72,7 +74,6 @@ public class NoticeConfigController { public ResponseEntity>> getReceivers( @ApiParam(value = "en: Recipient name,zh: 接收人名称,模糊查询", example = "tom") @RequestParam(required = false) final String name) { - //todo Writing can be optimized 写法可优化 Specification specification = (root, query, criteriaBuilder) -> { Predicate predicate = criteriaBuilder.conjunction(); if (name != null && !"".equals(name)) { @@ -107,6 +108,10 @@ public class NoticeConfigController { @ApiParam(value = "en: Notification Policy ID,zh: 通知策略ID", example = "6565463543") @PathVariable("id") final Long ruleId) { // Returns success if it does not exist or if the deletion is successful // todo 不存在或删除成功都返回成功 + NoticeRule noticeRule = noticeConfigService.getNoticeRulesById(ruleId); + if (noticeRule == null) { + return ResponseEntity.ok(new Message<>("The specified notification rule could not be queried, please check whether the parameters are correct")); + } noticeConfigService.deleteNoticeRule(ruleId); return ResponseEntity.ok(new Message<>("Delete success")); } diff --git a/manager/src/main/java/com/usthe/manager/service/NoticeConfigService.java b/manager/src/main/java/com/usthe/manager/service/NoticeConfigService.java index 208cf22..99db2c6 100644 --- a/manager/src/main/java/com/usthe/manager/service/NoticeConfigService.java +++ b/manager/src/main/java/com/usthe/manager/service/NoticeConfigService.java @@ -90,4 +90,22 @@ public interface NoticeConfigService { * @return Receiver 接收人 */ List getReceiverFilterRule(Alert alert); + + /** + * Query recipient information based on recipient ID (primary key Id) + * 根据接收人ID(主键Id)查询接收人信息 + * + * @param receiverId Receiver ID (primary key ID) 接收人ID(主键ID) + * @return Recipient Entity 接收人实体 + */ + NoticeReceiver getReceiverById(Long receiverId); + + /** + * Query specific notification rules according to the rule ID (primary key ID) + * 根据规则ID(主键ID)查询具体通知规则 + * + * @param ruleId Rule ID 规则ID(主键ID) + * @return Notification Rule Entity 通知规则实体 + */ + NoticeRule getNoticeRulesById(Long ruleId); } diff --git a/manager/src/main/java/com/usthe/manager/service/impl/NoticeConfigServiceImpl.java b/manager/src/main/java/com/usthe/manager/service/impl/NoticeConfigServiceImpl.java index 384f686..968ca2a 100644 --- a/manager/src/main/java/com/usthe/manager/service/impl/NoticeConfigServiceImpl.java +++ b/manager/src/main/java/com/usthe/manager/service/impl/NoticeConfigServiceImpl.java @@ -18,6 +18,7 @@ import java.util.stream.Collectors; /** * 消息通知配置实现 + * * @author tom * @date 2021/12/16 16:16 */ @@ -74,13 +75,24 @@ public class NoticeConfigServiceImpl implements NoticeConfigService { @Override public List getReceiverFilterRule(Alert alert) { - // todo 使用缓存 + // todo use cache 使用缓存 List rules = noticeRuleDao.findNoticeRulesByEnableTrue(); - // todo 暂时规则是全部转发 后面实现更多匹配规则:告警状态选择 监控类型选择等 + // todo The temporary rule is to forward all, and then implement more matching rules: alarm status selection, monitoring type selection, etc. + // 暂时规则是全部转发 后面实现更多匹配规则:告警状态选择 监控类型选择等 Set receiverIds = rules.stream() .filter(NoticeRule::isFilterAll) .map(NoticeRule::getReceiverId) .collect(Collectors.toSet()); return noticeReceiverDao.findAllById(receiverIds); } + + @Override + public NoticeReceiver getReceiverById(Long receiverId) { + return noticeReceiverDao.getOne(receiverId); + } + + @Override + public NoticeRule getNoticeRulesById(Long ruleId) { + return noticeRuleDao.getOne(ruleId); + } }