DELIMITER $$
DROP PROCEDURE IF EXISTS proce_update_unrecoveryIncidentNum$$
CREATE PROCEDURE proce_update_unrecoveryIncidentNum(IN assetUuid CHAR(50))
BEGIN
-- 删除事件,更新未恢复事件数
SET @count=0;
-- 更新未恢复事件数
SELECT
COUNT INTO @count -- 赋值
FROM
incident_count c
LEFT JOIN threshold_rule_group g ON c.groupUuid = g.uuid
LEFT JOIN threshold_info i ON g.thresoldInfoUuid = i.uuid
WHERE 1=1
AND i.isDeleted = '0'
AND c.isDelete = '0'
AND c.assetUuid = assetUuid
AND c.isRecoveryIncident = '0'
AND c.type != '7';
UPDATE monitor_itcomp SET unrecoveryIncidentNum=@count WHERE uuid=assetUuid;
END $$
-- 触发器-新增(我星标的事件)
DELIMITER $$
DROP TRIGGER IF EXISTS t_script__fasten_item_insert $$
CREATE TRIGGER t_script__fasten_item_insert
AFTER INSERT ON automate_script
FOR EACH ROW
BEGIN
SET @uuid = (SELECT REPLACE(UUID(), '-', ''));
SET @template_uuid = '' ;
SET @template_name = '' ;
set @lib_name = (SELECT lib_name FROM automate_script_lib WHERE uuid = new.script_lib_uuid);
IF (@lib_name = 'AIX系统加固') THEN
SELECT uuid FROM automate_system_fasten_template WHERE name = 'aix' INTO @template_uuid;
set @template_name='aix';
ELSEIF (@lib_name = 'linux系统加固') THEN
SELECT uuid FROM automate_system_fasten_template WHERE name = 'linux' INTO @template_uuid;
set @template_name='linux';
ELSEIF (@lib_name = 'windows系统加固') THEN
SELECT uuid FROM automate_system_fasten_template WHERE name = 'windows' INTO @template_uuid;
set @template_name='windows';
END IF;
IF (@lib_name != '其他') THEN
REPLACE INTO `automate_system_fasten_item` (`uuid`, `name`, `description`, `is_open`, `script_lib_uuid`, `script_uuid`, `script_path`, `template_uuid`, `template_name`, `item_type_uuid`, `item_type_name`, `create_user`, `create_time`, `update_time`, `is_delete`, `is_builtin`) VALUES
(@uuid, new.script_name, new.description, '1', new.script_lib_uuid, new.uuid, new.path, @template_uuid, @template_name, '5f39f8c032af4a368cacbcca7b2936d4', '访问控制', 'cu2704bbea9847d1b745e9e5d33d8732', 1540264832, 1540265273, '0', '1');
END IF;
END $$
-- 触发器--保存事件,更新未恢复事件数
DELIMITER $$
DROP TRIGGER IF EXISTS t_incident_count_insert $$
CREATE TRIGGER t_incident_count_insert
AFTER INSERT ON incident_count
FOR EACH ROW
BEGIN
-- 保存事件,更新未恢复事件数
CALL proce_update_unrecoveryIncidentNum(new.assetUuid);
END $$
-- 触发器-删除事件,更新未恢复事件数
DELIMITER $$
DROP TRIGGER IF EXISTS t_incident_count_delete $$
CREATE TRIGGER t_incident_count_delete
AFTER DELETE ON incident_count
FOR EACH ROW
BEGIN
-- 删除事件,更新未恢复事件数
CALL proce_update_unrecoveryIncidentNum(old.assetUuid);
END $$
-- 触发器(我的事件)
DELIMITER $$
DROP TRIGGER IF EXISTS t_event_forward $$
CREATE TRIGGER t_event_forward
AFTER INSERT ON offense_event_forward
FOR EACH ROW
BEGIN
-- 我的事件
IF new.reciverType = 1 THEN
SET @count = 0 ;
-- 查出转发给当前用户的事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.reciverUuid AND statType = 21 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.reciverUuid,21,@count);
END IF;
-- 我所在组的事件
IF new.reciverType = 0 THEN
SET @count = 0 ;
-- 查出转发给当前用户所在组的事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.reciverUuid AND statType = 24 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.reciverUuid,24,@count);
END IF;
END $$
-- 触发器(我的事件)
DELIMITER $$
DROP TRIGGER IF EXISTS t_event_forward $$
CREATE TRIGGER t_event_forward
AFTER INSERT ON offense_event_forward
FOR EACH ROW
BEGIN
-- 我的事件
IF new.reciverType = 1 THEN
SET @count = 0 ;
-- 查出转发给当前用户的事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.reciverUuid AND statType = 21 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.reciverUuid,21,@count);
END IF;
-- 我所在组的事件
IF new.reciverType = 0 THEN
SET @count = 0 ;
-- 查出转发给当前用户所在组的事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.reciverUuid AND statType = 24 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.reciverUuid,24,@count);
END IF;
END $$
-- 触发器(所有事件)
DELIMITER $$
DROP TRIGGER IF EXISTS t_event_all $$
CREATE TRIGGER t_event_all
AFTER INSERT ON offense_event
FOR EACH ROW
BEGIN
SET @count = 0 ;
SELECT COUNT FROM offense_count_stat WHERE userId = 'ALL_OFFENSE_EVENT_COUNT' AND statType = 81 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES ('ALL_OFFENSE_EVENT_COUNT',81,@count);
END $$
-- 触发器-新增(我星标的事件)
DELIMITER $$
DROP TRIGGER IF EXISTS t_event_concern_insert $$
CREATE TRIGGER t_event_concern_insert
AFTER INSERT ON offense_event_concern
FOR EACH ROW
BEGIN
SET @count = 0 ;
-- 查出当前用户星标事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.userId AND statType = 22 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.userId,22,@count);
END $$
-- 触发器-删除(我星标的事件)
DELIMITER $$
DROP TRIGGER IF EXISTS t_event_concern_delete $$
CREATE TRIGGER t_event_concern_delete
AFTER DELETE ON offense_event_concern
FOR EACH ROW
BEGIN
SET @count = 0 ;
-- 查出当前用户星标事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.userId AND statType = 22 INTO @count;
IF @count > 0 THEN
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.userId,22,@count);
END IF;
END $$
-- 触发器-新增(我忽略的事件)
DELIMITER $$
DROP TRIGGER IF EXISTS t_event_ignore_insert $$
CREATE TRIGGER t_event_ignore_insert
AFTER INSERT ON offense_event_ignore
FOR EACH ROW
BEGIN
-- 来源——我的事件
IF new.source = 21 THEN
SET @count = 0 ;
-- 查出当前用户忽略的事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.userId AND statType = 41 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.userId,41,@count);
END IF;
-- 来源——我所在组的事件
IF new.source = 24 THEN
SET @count = 0 ;
-- 查出当前用户忽略的事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.userId AND statType = 42 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.userId,42,@count);
END IF;
-- 来源——我下属的事件
IF new.source = 25 THEN
SET @count = 0 ;
-- 查出当前用户忽略的事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.userId AND statType = 43 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.userId,43,@count);
END IF;
-- 来源——我下级组的事件
IF new.source = 26 THEN
SET @count = 0 ;
-- 查出当前用户忽略的事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.userId AND statType = 44 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.userId,44,@count);
END IF;
SET @count = 0 ;
-- 查出当前用户忽略的事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.userId AND statType = 23 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.userId,23,@count);
END $$
-- 触发器-删除(我忽略的事件)
DELIMITER $$
DROP TRIGGER IF EXISTS t_event_ignore_delete $$
CREATE TRIGGER t_event_ignore_delete
AFTER DELETE ON offense_event_ignore
FOR EACH ROW
BEGIN
-- 来源——我的事件
IF old.source = 21 THEN
SET @count = 0 ;
-- 查出当前用户忽略的事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.userId AND statType = 41 INTO @count;
IF @count > 0 THEN
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.userId,41,@count);
END IF;
END IF;
-- 来源——我所在组的事件
IF old.source = 24 THEN
SET @count = 0 ;
-- 查出当前用户忽略的事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.userId AND statType = 42 INTO @count;
IF @count > 0 THEN
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.userId,42,@count);
END IF;
END IF;
-- 来源——我下属的事件
IF old.source = 25 THEN
SET @count = 0 ;
-- 查出当前用户忽略的事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.userId AND statType = 43 INTO @count;
IF @count > 0 THEN
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.userId,43,@count);
END IF;
END IF;
-- 来源——我下级组的事件
IF old.source = 26 THEN
SET @count = 0 ;
-- 查出当前用户忽略的事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.userId AND statType = 44 INTO @count;
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.userId,44,@count);
END IF;
SET @count = 0 ;
-- 查出当前用户忽略的事件的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.userId AND statType = 23 INTO @count;
IF @count > 0 THEN
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.userId,23,@count);
END IF;
END $$
-- 触发器-新增(我的工单)
DELIMITER $$
DROP TRIGGER IF EXISTS t_order_assign_insert $$
CREATE TRIGGER t_order_assign_insert
AFTER INSERT ON offense_order_assign
FOR EACH ROW
BEGIN
-- 分派给我的工单
IF new.reciveType = 1 THEN
SET @count = 0 ;
-- 查出分派给当前用户的工单的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.reciverUuid AND statType = 1 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.reciverUuid,1,@count);
END IF;
-- 我所在组的工单
IF new.reciveType = 0 THEN
SET @count = 0 ;
-- 查出分派给当前用户所在组的工单的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.reciverUuid AND statType = 4 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.reciverUuid,4,@count);
END IF;
END $$
-- 触发器-删除(我的工单)
DELIMITER $$
DROP TRIGGER IF EXISTS t_order_assign_delete $$
CREATE TRIGGER t_order_assign_delete
AFTER DELETE ON offense_order_assign
FOR EACH ROW
BEGIN
-- 分派给我的工单
IF old.reciveType = 1 THEN
SET @count = 0 ;
-- 查出分派给当前用户的工单的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.reciverUuid AND statType = 1 INTO @count;
IF @count > 0 THEN
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.reciverUuid,1,@count);
END IF;
END IF;
-- 我所在组的工单
IF old.reciveType = 0 THEN
SET @count = 0 ;
-- 查出分派给当前用户所在组的工单的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.reciverUuid AND statType = 4 INTO @count;
IF @count > 0 THEN
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.reciverUuid,4,@count);
END IF;
END IF;
END $$
-- 触发器-新增(抄送給我的工单)
DELIMITER $$
DROP TRIGGER IF EXISTS t_order_copy_insert $$
CREATE TRIGGER t_order_copy_insert
AFTER INSERT ON offense_order_copy
FOR EACH ROW
BEGIN
SET @count = 0 ;
-- 查出抄送给当前用户所在组的工单的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.reciverUuid AND statType = 5 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.reciverUuid,5,@count);
END $$
-- 触发器-删除(抄送給我的工单)
DELIMITER $$
DROP TRIGGER IF EXISTS t_order_copy_delete $$
CREATE TRIGGER t_order_copy_delete
AFTER DELETE ON offense_order_copy
FOR EACH ROW
BEGIN
SET @count = 0 ;
-- 查出抄送给当前用户所在组的工单的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.reciverUuid AND statType = 5 INTO @count;
IF @count > 0 THEN
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.reciverUuid,5,@count);
END IF;
END $$
-- 触发器-新增(我创建的工单)
DELIMITER $$
DROP TRIGGER IF EXISTS t_order_insert $$
CREATE TRIGGER t_order_insert
AFTER INSERT ON offense_order
FOR EACH ROW
BEGIN
SET @count = 0 ;
-- 查出当前用户创建的工单的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.creatorUuid AND statType = 2 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.creatorUuid,2,@count);
END $$
-- 触发器-删除(我创建的工单)
DELIMITER $$
DROP TRIGGER IF EXISTS t_order_delete $$
CREATE TRIGGER t_order_delete
AFTER DELETE ON offense_order
FOR EACH ROW
BEGIN
SET @count = 0 ;
-- 查出当前用户创建的工单的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.creatorUuid AND statType = 2 INTO @count;
IF @count > 0 THEN
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.creatorUuid,2,@count);
END IF;
END $$
-- 触发器-新增(我星标的工单)
DELIMITER $$
DROP TRIGGER IF EXISTS t_order_concern_insert $$
CREATE TRIGGER t_order_concern_insert
AFTER INSERT ON offense_order_concern
FOR EACH ROW
BEGIN
SET @count = 0 ;
-- 查出当前用户星标的工单的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.userUuid AND statType = 3 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.userUuid,3,@count);
END $$
-- 触发器-删除(我星标的工单)
DELIMITER $$
DROP TRIGGER IF EXISTS t_order_concern_delete $$
CREATE TRIGGER t_order_concern_delete
AFTER DELETE ON offense_order_concern
FOR EACH ROW
BEGIN
SET @count = 0 ;
-- 查出当前用户星标的工单的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.userUuid AND statType = 3 INTO @count;
IF @count > 0 THEN
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.userUuid,3,@count);
END IF;
END $$
-- 触发器-新增(消息历史)
DELIMITER $$
DROP TRIGGER IF EXISTS t_msg_his_insert $$
CREATE TRIGGER t_msg_his_insert
AFTER INSERT ON offense_msg_his
FOR EACH ROW
BEGIN
-- 客户端
IF new.notifyType = 0 THEN
SET @count = 0 ;
-- 查出当前用户客户端消息的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.reciverUuid AND statType = 64 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.reciverUuid,64,@count);
END IF;
-- 短信
IF new.notifyType = 1 THEN
SET @count = 0 ;
-- 查出当前用户短信消息的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.reciverUuid AND statType = 63 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.reciverUuid,63,@count);
END IF;
-- 微信
IF new.notifyType = 2 THEN
SET @count = 0 ;
-- 查出当前用户短信消息的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.reciverUuid AND statType = 61 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.reciverUuid,61,@count);
END IF;
-- 邮件
IF new.notifyType = 3 THEN
SET @count = 0 ;
-- 查出当前用户短信消息的数量
SELECT COUNT FROM offense_count_stat WHERE userId = new.reciverUuid AND statType = 62 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (new.reciverUuid,62,@count);
END IF;
END $$
-- 触发器-删除(消息历史)
DELIMITER $$
DROP TRIGGER IF EXISTS t_msg_his_delete $$
CREATE TRIGGER t_msg_his_delete
AFTER DELETE ON offense_msg_his
FOR EACH ROW
BEGIN
-- 客户端
IF old.notifyType = 0 THEN
SET @count = 0 ;
-- 查出当前用户客户端消息的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.reciverUuid AND statType = 64 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.reciverUuid,64,@count);
END IF;
-- 短信
IF old.notifyType = 1 THEN
SET @count = 0 ;
-- 查出当前用户短信消息的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.reciverUuid AND statType = 63 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.reciverUuid,63,@count);
END IF;
-- 微信
IF old.notifyType = 2 THEN
SET @count = 0 ;
-- 查出当前用户短信消息的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.reciverUuid AND statType = 61 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.reciverUuid,61,@count);
END IF;
-- 邮件
IF old.notifyType = 3 THEN
SET @count = 0 ;
-- 查出当前用户短信消息的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.reciverUuid AND statType = 62 INTO @count;
SET @count = @count + 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.reciverUuid,62,@count);
END IF;
END $$
-- 触发器-更新(消息历史)
DELIMITER $$
DROP TRIGGER IF EXISTS t_msg_his_update $$
CREATE TRIGGER t_msg_his_update
AFTER UPDATE ON offense_msg_his
FOR EACH ROW
BEGIN
-- 客户端
IF old.notifyType = 0 THEN
SET @count = 0 ;
-- 查出当前用户客户端消息的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.reciverUuid AND statType = 64 INTO @count;
IF @count > 0 THEN
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.reciverUuid,64,@count);
END IF;
END IF;
-- 短信
IF old.notifyType = 1 THEN
SET @count = 0 ;
-- 查出当前用户短信消息的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.reciverUuid AND statType = 63 INTO @count;
IF @count > 0 THEN
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.reciverUuid,63,@count);
END IF;
END IF;
-- 微信
IF old.notifyType = 2 THEN
SET @count = 0 ;
-- 查出当前用户短信消息的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.reciverUuid AND statType = 61 INTO @count;
IF @count > 0 THEN
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.reciverUuid,61,@count);
END IF;
END IF;
-- 邮件
IF old.notifyType = 3 THEN
SET @count = 0 ;
-- 查出当前用户短信消息的数量
SELECT COUNT FROM offense_count_stat WHERE userId = old.reciverUuid AND statType = 62 INTO @count;
IF @count > 0 THEN
SET @count = @count - 1 ;
REPLACE INTO offense_count_stat(userId,statType,COUNT) VALUES (old.reciverUuid,62,@count);
END IF;
END IF;
END $$