From b738133d580545c0d85d8e357901350af19767e2 Mon Sep 17 00:00:00 2001
From: opensnail <598092184@qq.com>
Date: Wed, 17 Apr 2024 23:25:32 +0800
Subject: [PATCH] =?UTF-8?q?feat(sj=5F1.0.0):=20=E6=96=B0=E5=A2=9E=E9=80=9A?=
=?UTF-8?q?=E7=9F=A5=E4=BA=BA=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../mapper/NotifyRecipientMapper.java | 18 +++++
.../persistence/po/NotifyRecipient.java | 74 +++++++++++++++++++
.../template/mapper/NotifyRecipientMapper.xml | 18 +++++
.../controller/NotifyConfigController.java | 6 +-
.../controller/NotifyRecipientController.java | 42 +++++++++++
.../model/request/NotifyRecipientQueryVO.java | 11 +++
.../request/NotifyRecipientRequestVO.java | 9 +++
.../response/NotifyRecipientResponseVO.java | 52 +++++++++++++
.../web/service/NotifyRecipientService.java | 23 ++++++
.../NotifyRecipientResponseVOConverter.java | 22 ++++++
.../impl/NotifyRecipientServiceImpl.java | 46 ++++++++++++
11 files changed, 318 insertions(+), 3 deletions(-)
create mode 100644 snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/mapper/NotifyRecipientMapper.java
create mode 100644 snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/po/NotifyRecipient.java
create mode 100644 snail-job-datasource/snail-job-datasource-template/src/main/resources/template/mapper/NotifyRecipientMapper.xml
create mode 100644 snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/NotifyRecipientController.java
create mode 100644 snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/NotifyRecipientQueryVO.java
create mode 100644 snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/NotifyRecipientRequestVO.java
create mode 100644 snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/NotifyRecipientResponseVO.java
create mode 100644 snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/NotifyRecipientService.java
create mode 100644 snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/convert/NotifyRecipientResponseVOConverter.java
create mode 100644 snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/NotifyRecipientServiceImpl.java
diff --git a/snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/mapper/NotifyRecipientMapper.java b/snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/mapper/NotifyRecipientMapper.java
new file mode 100644
index 00000000..f41bd9be
--- /dev/null
+++ b/snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/mapper/NotifyRecipientMapper.java
@@ -0,0 +1,18 @@
+package com.aizuda.snailjob.template.datasource.persistence.mapper;
+
+import com.aizuda.snailjob.template.datasource.persistence.po.NotifyRecipient;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ *
+ * 告警通知接收人 Mapper 接口
+ *
+ *
+ * @author opensnail
+ * @since 2024-04-17
+ */
+@Mapper
+public interface NotifyRecipientMapper extends BaseMapper {
+
+}
diff --git a/snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/po/NotifyRecipient.java b/snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/po/NotifyRecipient.java
new file mode 100644
index 00000000..7d041635
--- /dev/null
+++ b/snail-job-datasource/snail-job-datasource-template/src/main/java/com/aizuda/snailjob/template/datasource/persistence/po/NotifyRecipient.java
@@ -0,0 +1,74 @@
+package com.aizuda.snailjob.template.datasource.persistence.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ *
+ * 告警通知接收人
+ *
+ *
+ * @author opensnail
+ * @since 2024-04-17
+ */
+@Getter
+@Setter
+@TableName("sj_notify_recipient")
+public class NotifyRecipient implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 命名空间id
+ */
+ private String namespaceId;
+
+ /**
+ * 组名称
+ */
+ private String groupName;
+
+ /**
+ * 接收人名称
+ */
+ private String recipientName;
+
+ /**
+ * 通知类型 1、钉钉 2、邮件 3、企业微信 4 飞书
+ */
+ private Integer notifyType;
+
+ /**
+ * 配置属性
+ */
+ private String notifyAttribute;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 创建时间
+ */
+ private LocalDateTime createDt;
+
+ /**
+ * 修改时间
+ */
+ private LocalDateTime updateDt;
+}
diff --git a/snail-job-datasource/snail-job-datasource-template/src/main/resources/template/mapper/NotifyRecipientMapper.xml b/snail-job-datasource/snail-job-datasource-template/src/main/resources/template/mapper/NotifyRecipientMapper.xml
new file mode 100644
index 00000000..585ff9d2
--- /dev/null
+++ b/snail-job-datasource/snail-job-datasource-template/src/main/resources/template/mapper/NotifyRecipientMapper.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/NotifyConfigController.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/NotifyConfigController.java
index 76c495ee..f1b05bff 100644
--- a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/NotifyConfigController.java
+++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/NotifyConfigController.java
@@ -11,6 +11,7 @@ import com.aizuda.snailjob.server.web.model.base.PageResult;
import com.aizuda.snailjob.server.web.model.request.NotifyConfigQueryVO;
import com.aizuda.snailjob.server.web.model.request.NotifyConfigRequestVO;
import com.aizuda.snailjob.server.web.model.response.NotifyConfigResponseVO;
+import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -25,10 +26,9 @@ import java.util.List;
*/
@RestController
@RequestMapping("/notify-config")
+@RequiredArgsConstructor
public class NotifyConfigController {
-
- @Autowired
- private NotifyConfigService notifyConfigService;
+ private final NotifyConfigService notifyConfigService;
@LoginRequired
@GetMapping("list")
diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/NotifyRecipientController.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/NotifyRecipientController.java
new file mode 100644
index 00000000..152cf4dc
--- /dev/null
+++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/controller/NotifyRecipientController.java
@@ -0,0 +1,42 @@
+package com.aizuda.snailjob.server.web.controller;
+
+import com.aizuda.snailjob.server.web.model.base.PageResult;
+import com.aizuda.snailjob.server.web.model.request.NotifyRecipientQueryVO;
+import com.aizuda.snailjob.server.web.model.request.NotifyRecipientRequestVO;
+import com.aizuda.snailjob.server.web.model.response.NotifyRecipientResponseVO;
+import com.aizuda.snailjob.server.web.service.NotifyRecipientService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ *
+ * 告警通知接收人 前端控制器
+ *
+ *
+ * @author xiaowoniu
+ * @since 2024-04-17
+ */
+@RestController
+@RequestMapping("/notify-recipient")
+@RequiredArgsConstructor
+public class NotifyRecipientController {
+ private final NotifyRecipientService notifyRecipientService;
+
+ @PostMapping
+ public Boolean saveNotifyRecipient(@RequestBody @Validated NotifyRecipientRequestVO requestVO) {
+ return notifyRecipientService.saveNotifyRecipient(requestVO);
+ }
+
+ @PutMapping
+ public Boolean updateNotifyRecipient(@RequestBody @Validated NotifyRecipientRequestVO requestVO) {
+ return notifyRecipientService.updateNotifyRecipient(requestVO);
+ }
+
+ @GetMapping("/page/list")
+ public PageResult> getNotifyRecipientList(NotifyRecipientQueryVO queryVO) {
+ return notifyRecipientService.getNotifyRecipientList(queryVO);
+ }
+}
diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/NotifyRecipientQueryVO.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/NotifyRecipientQueryVO.java
new file mode 100644
index 00000000..d86f7edb
--- /dev/null
+++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/NotifyRecipientQueryVO.java
@@ -0,0 +1,11 @@
+package com.aizuda.snailjob.server.web.model.request;
+
+import com.aizuda.snailjob.server.web.model.base.BaseQueryVO;
+
+/**
+ * @author opensnail
+ * @date 2024-04-17 21:26:22
+ * @since sj_1.0.0
+ */
+public class NotifyRecipientQueryVO extends BaseQueryVO {
+}
diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/NotifyRecipientRequestVO.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/NotifyRecipientRequestVO.java
new file mode 100644
index 00000000..fe62b7f6
--- /dev/null
+++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/request/NotifyRecipientRequestVO.java
@@ -0,0 +1,9 @@
+package com.aizuda.snailjob.server.web.model.request;
+
+/**
+ * @author opensnail
+ * @date 2024-04-17 22:03:33
+ * @since sj_1.0.0
+ */
+public class NotifyRecipientRequestVO {
+}
diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/NotifyRecipientResponseVO.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/NotifyRecipientResponseVO.java
new file mode 100644
index 00000000..a3b68a03
--- /dev/null
+++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/model/response/NotifyRecipientResponseVO.java
@@ -0,0 +1,52 @@
+package com.aizuda.snailjob.server.web.model.response;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author opensnail
+ * @date 2024-04-17 21:27:07
+ * @since sj_1.0.0
+ */
+@Data
+public class NotifyRecipientResponseVO {
+
+ private Long id;
+
+ /**
+ * 命名空间id
+ */
+ private String namespaceId;
+
+ /**
+ * 组名称
+ */
+ private String groupName;
+
+ /**
+ * 接收人名称
+ */
+ private String recipientName;
+
+ /**
+ * 通知类型 1、钉钉 2、邮件 3、企业微信 4 飞书
+ */
+ private Integer notifyType;
+
+ /**
+ * 配置属性
+ */
+ private String notifyAttribute;
+
+ /**
+ * 描述
+ */
+ private String description;
+
+ /**
+ * 创建时间
+ */
+ private LocalDateTime createDt;
+
+}
diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/NotifyRecipientService.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/NotifyRecipientService.java
new file mode 100644
index 00000000..ce285873
--- /dev/null
+++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/NotifyRecipientService.java
@@ -0,0 +1,23 @@
+package com.aizuda.snailjob.server.web.service;
+
+import com.aizuda.snailjob.server.web.model.base.PageResult;
+import com.aizuda.snailjob.server.web.model.request.NotifyRecipientQueryVO;
+import com.aizuda.snailjob.server.web.model.request.NotifyRecipientRequestVO;
+import com.aizuda.snailjob.server.web.model.response.NotifyRecipientResponseVO;
+
+import java.util.List;
+
+/**
+ * @author opensnail
+ * @date 2024-04-17 21:24:21
+ * @since sj_1.0.0
+ */
+public interface NotifyRecipientService {
+
+ PageResult> getNotifyRecipientList(NotifyRecipientQueryVO queryVO);
+
+ Boolean saveNotifyRecipient(NotifyRecipientRequestVO requestVO);
+
+ Boolean updateNotifyRecipient(NotifyRecipientRequestVO requestVO);
+
+}
diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/convert/NotifyRecipientResponseVOConverter.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/convert/NotifyRecipientResponseVOConverter.java
new file mode 100644
index 00000000..c867517d
--- /dev/null
+++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/convert/NotifyRecipientResponseVOConverter.java
@@ -0,0 +1,22 @@
+package com.aizuda.snailjob.server.web.service.convert;
+
+import com.aizuda.snailjob.server.web.model.response.NotifyRecipientResponseVO;
+import com.aizuda.snailjob.template.datasource.persistence.po.NotifyRecipient;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+import java.util.List;
+
+/**
+ * @author opensnail
+ * @date 2024-04-17 22:00:41
+ * @since sj_1.0.0
+ */
+@Mapper
+public interface NotifyRecipientResponseVOConverter {
+
+ NotifyRecipientResponseVOConverter INSTANCE = Mappers.getMapper(NotifyRecipientResponseVOConverter.class);
+
+ List toNotifyRecipientResponseVOs(List notifyRecipients);
+
+}
diff --git a/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/NotifyRecipientServiceImpl.java b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/NotifyRecipientServiceImpl.java
new file mode 100644
index 00000000..aa15f2fc
--- /dev/null
+++ b/snail-job-server/snail-job-server-web/src/main/java/com/aizuda/snailjob/server/web/service/impl/NotifyRecipientServiceImpl.java
@@ -0,0 +1,46 @@
+package com.aizuda.snailjob.server.web.service.impl;
+
+import com.aizuda.snailjob.server.web.model.base.PageResult;
+import com.aizuda.snailjob.server.web.model.request.NotifyRecipientQueryVO;
+import com.aizuda.snailjob.server.web.model.request.NotifyRecipientRequestVO;
+import com.aizuda.snailjob.server.web.model.response.NotifyRecipientResponseVO;
+import com.aizuda.snailjob.server.web.service.NotifyRecipientService;
+import com.aizuda.snailjob.server.web.service.convert.NotifyRecipientResponseVOConverter;
+import com.aizuda.snailjob.template.datasource.persistence.mapper.NotifyRecipientMapper;
+import com.aizuda.snailjob.template.datasource.persistence.po.NotifyRecipient;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @author opensnail
+ * @date 2024-04-17 21:24:51
+ * @since sj_1.0.0
+ */
+@Service
+@RequiredArgsConstructor
+public class NotifyRecipientServiceImpl implements NotifyRecipientService {
+ private final NotifyRecipientMapper notifyRecipientMapper;
+
+ @Override
+ public PageResult> getNotifyRecipientList(NotifyRecipientQueryVO queryVO) {
+ PageDTO pageDTO = new PageDTO<>(queryVO.getPage(), queryVO.getSize());
+
+ PageDTO notifyRecipientPageDTO = notifyRecipientMapper.selectPage(pageDTO, new LambdaQueryWrapper<>());
+
+ return new PageResult<>(pageDTO, NotifyRecipientResponseVOConverter.INSTANCE.toNotifyRecipientResponseVOs(notifyRecipientPageDTO.getRecords()));
+ }
+
+ @Override
+ public Boolean saveNotifyRecipient(NotifyRecipientRequestVO requestVO) {
+ return null;
+ }
+
+ @Override
+ public Boolean updateNotifyRecipient(NotifyRecipientRequestVO requestVO) {
+ return null;
+ }
+}