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); + } + +}