From 76d9a6b1bed292deaee3ec8702286f0fb9944379 Mon Sep 17 00:00:00 2001 From: "chen.ma" Date: Wed, 17 Nov 2021 23:40:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=9C=8D=E5=8A=A1=E7=AB=AF?= =?UTF-8?q?=E6=8A=A5=E8=AD=A6=E9=85=8D=E7=BD=AE=E6=A8=A1=E5=9D=97.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/mapper/AlarmInfoMapper.java | 15 ++++ .../cn/hippo4j/config/model/AlarmInfo.java | 75 +++++++++++++++++++ .../model/biz/alarm/AlarmListRespDTO.java | 29 +++++++ .../model/biz/alarm/AlarmQueryReqDTO.java | 22 ++++++ .../config/service/biz/AlarmService.java | 24 ++++++ .../service/biz/impl/AlarmServiceImpl.java | 48 ++++++++++++ .../console/controller/AlarmController.java | 36 +++++++++ 7 files changed, 249 insertions(+) create mode 100644 hippo4j-config/src/main/java/cn/hippo4j/config/mapper/AlarmInfoMapper.java create mode 100644 hippo4j-config/src/main/java/cn/hippo4j/config/model/AlarmInfo.java create mode 100644 hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/alarm/AlarmListRespDTO.java create mode 100644 hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/alarm/AlarmQueryReqDTO.java create mode 100644 hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/AlarmService.java create mode 100644 hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AlarmServiceImpl.java create mode 100644 hippo4j-console/src/main/java/cn/hippo4j/console/controller/AlarmController.java diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/mapper/AlarmInfoMapper.java b/hippo4j-config/src/main/java/cn/hippo4j/config/mapper/AlarmInfoMapper.java new file mode 100644 index 00000000..1427eb21 --- /dev/null +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/mapper/AlarmInfoMapper.java @@ -0,0 +1,15 @@ +package cn.hippo4j.config.mapper; + +import cn.hippo4j.config.model.AlarmInfo; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * Alarm info mapper. + * + * @author chen.ma + * @date 2021/11/17 22:04 + */ +@Mapper +public interface AlarmInfoMapper extends BaseMapper { +} diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/model/AlarmInfo.java b/hippo4j-config/src/main/java/cn/hippo4j/config/model/AlarmInfo.java new file mode 100644 index 00000000..9aa8809f --- /dev/null +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/model/AlarmInfo.java @@ -0,0 +1,75 @@ +package cn.hippo4j.config.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * 报警管理. + * + * @author chen.ma + * @date 2021/11/17 22:03 + */ +@Data +@TableName("alarm") +public class AlarmInfo { + + /** + * id + */ + private Long id; + + /** + * 租户id + */ + private String tenantId; + + /** + * 项目id + */ + private String itemId; + + /** + * 线程池id + */ + private String tpId; + + /** + * 通知平台 + */ + private String platform; + + /** + * 密钥 + */ + private String secretKey; + + /** + * 报警间隔 + */ + @TableField("`interval`") + private Integer interval; + + /** + * 接收者 + */ + private String receives; + + /** + * 创建时间 + */ + private Date gmtCreate; + + /** + * 修改时间 + */ + private Date gmtModified; + + /** + * 是否删除 + */ + private Integer delFlag; + +} diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/alarm/AlarmListRespDTO.java b/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/alarm/AlarmListRespDTO.java new file mode 100644 index 00000000..39beed04 --- /dev/null +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/alarm/AlarmListRespDTO.java @@ -0,0 +1,29 @@ +package cn.hippo4j.config.model.biz.alarm; + +import cn.hippo4j.config.model.AlarmInfo; +import lombok.AllArgsConstructor; +import lombok.Data; + +import java.util.List; + +/** + * Alarm list resp dto. + * + * @author chen.ma + * @date 2021/11/17 22:53 + */ +@Data +@AllArgsConstructor +public class AlarmListRespDTO { + + /** + * 线程池ID + */ + private String threadPoolId; + + /** + * 报警配置 + */ + private List alarmNotifyList; + +} diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/alarm/AlarmQueryReqDTO.java b/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/alarm/AlarmQueryReqDTO.java new file mode 100644 index 00000000..458326e2 --- /dev/null +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/model/biz/alarm/AlarmQueryReqDTO.java @@ -0,0 +1,22 @@ +package cn.hippo4j.config.model.biz.alarm; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.Data; + +import java.util.List; + +/** + * Alarm query req dto. + * + * @author chen.ma + * @date 2021/11/17 22:52 + */ +@Data +public class AlarmQueryReqDTO extends Page { + + /** + * groupKeys + */ + private List groupKeys; + +} diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/AlarmService.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/AlarmService.java new file mode 100644 index 00000000..d6df4c0c --- /dev/null +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/AlarmService.java @@ -0,0 +1,24 @@ +package cn.hippo4j.config.service.biz; + +import cn.hippo4j.config.model.biz.alarm.AlarmListRespDTO; +import cn.hippo4j.config.model.biz.alarm.AlarmQueryReqDTO; + +import java.util.List; + +/** + * 报警管理. + * + * @author chen.ma + * @date 2021/11/17 22:01 + */ +public interface AlarmService { + + /** + * 查询报警配置集合. + * + * @param reqDTO + * @return + */ + List listAlarmConfig(AlarmQueryReqDTO reqDTO); + +} diff --git a/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AlarmServiceImpl.java b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AlarmServiceImpl.java new file mode 100644 index 00000000..7ddddb9b --- /dev/null +++ b/hippo4j-config/src/main/java/cn/hippo4j/config/service/biz/impl/AlarmServiceImpl.java @@ -0,0 +1,48 @@ +package cn.hippo4j.config.service.biz.impl; + +import cn.hippo4j.common.toolkit.GroupKey; +import cn.hippo4j.config.mapper.AlarmInfoMapper; +import cn.hippo4j.config.model.AlarmInfo; +import cn.hippo4j.config.model.biz.alarm.AlarmListRespDTO; +import cn.hippo4j.config.model.biz.alarm.AlarmQueryReqDTO; +import cn.hippo4j.config.service.biz.AlarmService; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.google.common.collect.Lists; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 报警管理. + * + * @author chen.ma + * @date 2021/11/17 22:02 + */ +@Service +@AllArgsConstructor +public class AlarmServiceImpl implements AlarmService { + + private final AlarmInfoMapper alarmInfoMapper; + + @Override + public List listAlarmConfig(AlarmQueryReqDTO reqDTO) { + List alarmListRespList = Lists.newArrayList(); + reqDTO.getGroupKeys().forEach(each -> { + String[] parseKey = GroupKey.parseKey(each); + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(AlarmInfo.class) + .eq(AlarmInfo::getTenantId, parseKey[2]) + .eq(AlarmInfo::getItemId, parseKey[1]) + .eq(AlarmInfo::getTpId, parseKey[0]); + List alarmInfos = alarmInfoMapper.selectList(queryWrapper); + if (CollUtil.isNotEmpty(alarmInfos)) { + alarmListRespList.add(new AlarmListRespDTO(parseKey[0], alarmInfos)); + } + }); + + return alarmListRespList; + } + +} diff --git a/hippo4j-console/src/main/java/cn/hippo4j/console/controller/AlarmController.java b/hippo4j-console/src/main/java/cn/hippo4j/console/controller/AlarmController.java new file mode 100644 index 00000000..f3024971 --- /dev/null +++ b/hippo4j-console/src/main/java/cn/hippo4j/console/controller/AlarmController.java @@ -0,0 +1,36 @@ +package cn.hippo4j.console.controller; + +import cn.hippo4j.common.constant.Constants; +import cn.hippo4j.common.web.base.Result; +import cn.hippo4j.common.web.base.Results; +import cn.hippo4j.config.model.biz.alarm.AlarmListRespDTO; +import cn.hippo4j.config.model.biz.alarm.AlarmQueryReqDTO; +import cn.hippo4j.config.service.biz.AlarmService; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 报警管理. + * + * @author chen.ma + * @date 2021/11/17 22:00 + */ +@RestController +@AllArgsConstructor +@RequestMapping(Constants.BASE_PATH + "/alarm") +public class AlarmController { + + private final AlarmService alarmService; + + @PostMapping("/list/config") + public Result> listAlarmConfig(@RequestBody AlarmQueryReqDTO reqDTO) { + List resultData = alarmService.listAlarmConfig(reqDTO); + return Results.success(resultData); + } + +}