Browse Source

系统告警相关

wukai 1 year ago
parent
commit
b96b6f7910

+ 34 - 0
doc-admin/src/main/java/com/doc/web/controller/system/SysAlarmController.java

@@ -1,5 +1,7 @@
 package com.doc.web.controller.system;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.doc.common.annotation.Log;
 import com.doc.common.core.controller.BaseController;
 import com.doc.common.core.domain.AjaxResult;
@@ -7,7 +9,10 @@ import com.doc.common.core.page.TableDataInfo;
 import com.doc.common.enums.BusinessType;
 import com.doc.common.utils.poi.ExcelUtil;
 import com.doc.system.domain.SysAlarm;
+import com.doc.system.domain.SysConfig;
 import com.doc.system.service.ISysAlarmService;
+import com.doc.system.service.ISysConfigService;
+import com.doc.web.vo.AlarmVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -29,6 +34,8 @@ import java.util.List;
 public class SysAlarmController extends BaseController {
     @Resource
     private ISysAlarmService sysAlarmService;
+    @Resource
+    private ISysConfigService configService;
 
     /**
      * 查询系统告警列表
@@ -77,6 +84,33 @@ public class SysAlarmController extends BaseController {
     }
 
     /**
+     * 新增系统告警
+     */
+    @ApiOperation("系统告警配置")
+    @Log(title = "系统告警", businessType = BusinessType.UPDATE)
+    @PostMapping("/conf")
+    public AjaxResult config(@RequestBody AlarmVO vo) {
+        SysConfig config = configService.selectConfig("alarm.config");
+        config.setConfigValue(JSON.toJSONString(vo));
+        return toAjax(configService.updateConfig(config));
+    }
+
+    /**
+     * 新增系统告警
+     */
+    @ApiOperation("系统告警配置查询")
+    @GetMapping("/conf")
+    public AjaxResult getConfig() {
+        SysConfig config = configService.selectConfig("alarm.config");
+        AlarmVO vo = new AlarmVO();
+        try {
+            vo = JSONObject.parseObject(config.getConfigValue(), AlarmVO.class);
+        } catch (Exception ignored) {
+        }
+        return AjaxResult.success(vo);
+    }
+
+    /**
      * 修改系统告警
      */
     @ApiOperation("修改系统告警")

+ 24 - 0
doc-admin/src/main/java/com/doc/web/vo/AlarmVO.java

@@ -0,0 +1,24 @@
+package com.doc.web.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 用户树
+ *
+ * @author wukai
+ * @date 2023/8/30 17:00
+ */
+@Data
+@ApiModel(value = "AlarmVO", description = "告警配置")
+public class AlarmVO {
+    @ApiModelProperty("电话")
+    private String phone;
+    @ApiModelProperty("次数")
+    private Integer times;
+    @ApiModelProperty("容量")
+    private Integer used;
+
+
+}

+ 1 - 0
doc-framework/src/main/java/com/doc/framework/interceptor/WhiteListInterceptor.java

@@ -48,6 +48,7 @@ public class WhiteListInterceptor implements HandlerInterceptor {
             alarm.setAlarmType(AlarmType.ILLEGAL.ordinal());
             alarm.setAlarmContent("发现IP地址:(" + IpUtils.getIpAddr() + ")非法访问!");
             alarm.setAlarmTime(new Date());
+            alarm.setRemark(IpUtils.getIpAddr());
             alarmService.insertSysAlarm(alarm);
             returnJson(response);
             return false;

+ 15 - 10
doc-system/src/main/java/com/doc/system/service/ISysAlarmService.java

@@ -1,19 +1,19 @@
 package com.doc.system.service;
 
-import java.util.List;
 import com.doc.system.domain.SysAlarm;
 
+import java.util.List;
+
 /**
  * 系统告警Service接口
- * 
+ *
  * @author wukai
  * @date 2023-11-24
  */
-public interface ISysAlarmService 
-{
+public interface ISysAlarmService {
     /**
      * 查询系统告警
-     * 
+     *
      * @param alarmId 系统告警主键
      * @return 系统告警
      */
@@ -21,7 +21,7 @@ public interface ISysAlarmService
 
     /**
      * 查询系统告警列表
-     * 
+     *
      * @param sysAlarm 系统告警
      * @return 系统告警集合
      */
@@ -29,7 +29,7 @@ public interface ISysAlarmService
 
     /**
      * 新增系统告警
-     * 
+     *
      * @param sysAlarm 系统告警
      * @return 结果
      */
@@ -37,7 +37,7 @@ public interface ISysAlarmService
 
     /**
      * 修改系统告警
-     * 
+     *
      * @param sysAlarm 系统告警
      * @return 结果
      */
@@ -45,7 +45,7 @@ public interface ISysAlarmService
 
     /**
      * 批量删除系统告警
-     * 
+     *
      * @param alarmIds 需要删除的系统告警主键集合
      * @return 结果
      */
@@ -53,9 +53,14 @@ public interface ISysAlarmService
 
     /**
      * 删除系统告警信息
-     * 
+     *
      * @param alarmId 系统告警主键
      * @return 结果
      */
     public int deleteSysAlarmByAlarmId(Long alarmId);
+
+    /**
+     * 硬件监控
+     */
+    void monitor();
 }

+ 18 - 11
doc-system/src/main/java/com/doc/system/service/ISysConfigService.java

@@ -6,22 +6,29 @@ import java.util.List;
 
 /**
  * 参数配置 服务层
- * 
+ *
  * @author ruoyi
  */
-public interface ISysConfigService
-{
+public interface ISysConfigService {
     /**
      * 查询参数配置信息
-     * 
+     *
      * @param configId 参数配置ID
      * @return 参数配置信息
      */
     public SysConfig selectConfigById(Long configId);
 
     /**
+     * 查询参数配置信息
+     *
+     * @param configKey 参数键
+     * @return 参数配置信息
+     */
+    public SysConfig selectConfig(String configKey);
+
+    /**
      * 根据键名查询参数配置信息
-     * 
+     *
      * @param configKey 参数键名
      * @return 参数键值
      */
@@ -29,14 +36,14 @@ public interface ISysConfigService
 
     /**
      * 获取验证码开关
-     * 
+     *
      * @return true开启,false关闭
      */
     public boolean selectCaptchaEnabled();
 
     /**
      * 查询参数配置列表
-     * 
+     *
      * @param config 参数配置信息
      * @return 参数配置集合
      */
@@ -44,7 +51,7 @@ public interface ISysConfigService
 
     /**
      * 新增参数配置
-     * 
+     *
      * @param config 参数配置信息
      * @return 结果
      */
@@ -52,7 +59,7 @@ public interface ISysConfigService
 
     /**
      * 修改参数配置
-     * 
+     *
      * @param config 参数配置信息
      * @return 结果
      */
@@ -60,7 +67,7 @@ public interface ISysConfigService
 
     /**
      * 批量删除参数信息
-     * 
+     *
      * @param configIds 需要删除的参数ID
      */
     public void deleteConfigByIds(Long[] configIds);
@@ -82,7 +89,7 @@ public interface ISysConfigService
 
     /**
      * 校验参数键名是否唯一
-     * 
+     *
      * @param config 参数信息
      * @return 结果
      */

+ 12 - 0
doc-system/src/main/java/com/doc/system/service/impl/SysConfigServiceImpl.java

@@ -52,6 +52,18 @@ public class SysConfigServiceImpl implements ISysConfigService {
         config.setConfigId(configId);
         return configMapper.selectConfig(config);
     }
+    /**
+     * 查询参数配置信息
+     *
+     * @param configKey 参数键
+     * @return 参数配置信息
+     */
+    @Override
+    public SysConfig selectConfig(String configKey) {
+        SysConfig config = new SysConfig();
+        config.setConfigKey(configKey);
+        return configMapper.selectConfig(config);
+    }
 
     /**
      * 根据键名查询参数配置信息

+ 29 - 20
doc-system/src/main/resources/mapper/system/SysAlarmMapper.xml

@@ -1,36 +1,40 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.doc.system.mapper.SysAlarmMapper">
-    
+
     <resultMap type="SysAlarm" id="SysAlarmResult">
-        <result property="alarmId"    column="ALARM_ID"    />
-        <result property="alarmContent"    column="ALARM_CONTENT"    />
-        <result property="alarmLevel"    column="ALARM_LEVEL"    />
-        <result property="alarmType"    column="ALARM_TYPE"    />
-        <result property="alarmTime"    column="ALARM_TIME"    />
+        <result property="alarmId" column="ALARM_ID"/>
+        <result property="alarmContent" column="ALARM_CONTENT"/>
+        <result property="alarmLevel" column="ALARM_LEVEL"/>
+        <result property="alarmType" column="ALARM_TYPE"/>
+        <result property="alarmTime" column="ALARM_TIME"/>
+        <result property="remark" column="REMARK"/>
     </resultMap>
 
     <sql id="selectSysAlarmVo">
-        select ALARM_ID, ALARM_CONTENT, ALARM_LEVEL, ALARM_TYPE, ALARM_TIME from sys_alarm
+        select ALARM_ID, ALARM_CONTENT, ALARM_LEVEL, ALARM_TYPE, ALARM_TIME, REMARK
+        from sys_alarm
     </sql>
 
     <select id="selectSysAlarmList" parameterType="SysAlarm" resultMap="SysAlarmResult">
         <include refid="selectSysAlarmVo"/>
-        <where>  
-            <if test="alarmContent != null  and alarmContent != ''"> and ALARM_CONTENT like concat('%', #{alarmContent}, '%')</if>
-            <if test="alarmLevel != null "> and ALARM_LEVEL = #{alarmLevel}</if>
-            <if test="alarmType != null "> and ALARM_TYPE = #{alarmType}</if>
-            <if test="alarmTime != null "> and ALARM_TIME = #{alarmTime}</if>
+        <where>
+            <if test="alarmContent != null  and alarmContent != ''">and ALARM_CONTENT like concat('%', #{alarmContent},
+                '%')
+            </if>
+            <if test="alarmLevel != null ">and ALARM_LEVEL = #{alarmLevel}</if>
+            <if test="alarmType != null ">and ALARM_TYPE = #{alarmType}</if>
+            <if test="alarmTime != null ">and ALARM_TIME = #{alarmTime}</if>
         </where>
     </select>
-    
+
     <select id="selectSysAlarmByAlarmId" parameterType="Long" resultMap="SysAlarmResult">
         <include refid="selectSysAlarmVo"/>
         where ALARM_ID = #{alarmId}
     </select>
-        
+
     <insert id="insertSysAlarm" parameterType="SysAlarm" useGeneratedKeys="true" keyProperty="alarmId">
         insert into sys_alarm
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -38,13 +42,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="alarmLevel != null">ALARM_LEVEL,</if>
             <if test="alarmType != null">ALARM_TYPE,</if>
             <if test="alarmTime != null">ALARM_TIME,</if>
-         </trim>
+            <if test="remark != null">REMARK,</if>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="alarmContent != null">#{alarmContent},</if>
             <if test="alarmLevel != null">#{alarmLevel},</if>
             <if test="alarmType != null">#{alarmType},</if>
             <if test="alarmTime != null">#{alarmTime},</if>
-         </trim>
+            <if test="remark != null">#{remark},</if>
+        </trim>
     </insert>
 
     <update id="updateSysAlarm" parameterType="SysAlarm">
@@ -54,16 +60,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="alarmLevel != null">ALARM_LEVEL = #{alarmLevel},</if>
             <if test="alarmType != null">ALARM_TYPE = #{alarmType},</if>
             <if test="alarmTime != null">ALARM_TIME = #{alarmTime},</if>
+            <if test="remark != null">REMARK = #{remark},</if>
         </trim>
         where ALARM_ID = #{alarmId}
     </update>
 
     <delete id="deleteSysAlarmByAlarmId" parameterType="Long">
-        delete from sys_alarm where ALARM_ID = #{alarmId}
+        delete
+        from sys_alarm
+        where ALARM_ID = #{alarmId}
     </delete>
 
     <delete id="deleteSysAlarmByAlarmIds" parameterType="String">
-        delete from sys_alarm where ALARM_ID in 
+        delete from sys_alarm where ALARM_ID in
         <foreach item="alarmId" collection="array" open="(" separator="," close=")">
             #{alarmId}
         </foreach>