This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
enderbyendera-realtime-prot…/src/main/resources/mappers/DynamicRuleMapper.xml
Hao Miao 31277b7246 1、解决指令按条件查询总数bug
2、动态、静态规则新增批量查询功能
2024-01-23 23:26:15 +08:00

241 lines
12 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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">
<mapper namespace="com.realtime.protection.server.rule.dynamicrule.DynamicRuleMapper">
<!-- useGeneratedKeys="true": 这个属性指定了是否要获取数据库生成的主键。如果设置为trueMyBatis会使用JDBC的getGeneratedKeys方法来获取由数据库自动生成的主键。-->
<!-- keyProperty="id": 这个属性指定了要将生成的主键赋值给哪个属性。在这个例子中生成的主键将被赋值给名为id的属性。-->
<insert id="newDynamicRule" useGeneratedKeys="true" keyProperty="dynamicRuleId">
insert into t_dynamic_rule
(dynamic_rule_name,
create_time, modify_time, dynamic_rule_create_username,
dynamic_rule_create_depart, template_id, dynamic_rule_protect_level,
dynamic_rule_priority, dynamic_rule_range,
dynamic_rule_frequency, dynamic_rule_create_user_id)
values (#{object.dynamicRuleName},
NOW(), #{object.dynamicRuleModifyTime},
#{object.dynamicRuleCreateUsername}, #{object.dynamicRuleCreateDepart},
#{object.templateId}, #{object.dynamicRuleProtectLevel},
#{object.dynamicRulePriority}, #{object.dynamicRuleRange},
#{object.dynamicRuleFrequency},
#{object.dynamicRuleCreateUserId})
</insert>
<insert id="newDynamicRulProtectObjectConcat">
insert into t_protect_object_dynamic_rule_conn(dynamic_rule_id, protect_object_id)
values (#{dynamicRuleId}, #{protectObjectId})
</insert>
<insert id="newDynamicRules">
insert into t_dynamic_rule
(dynamic_rule_name,
create_time, modify_time, dynamic_rule_create_username,
dynamic_rule_create_depart, template_id, dynamic_rule_protect_level,
dynamic_rule_priority, dynamic_rule_range,
dynamic_rule_frequency, dynamic_rule_create_user_id
)
values
<foreach collection="dynamicRuleObjects" item="object" separator=",">
(#{object.dynamicRuleName},
NOW(),#{object.dynamicRuleModifyTime},
#{object.dynamicRuleCreateUsername},#{object.dynamicRuleCreateDepart},
#{object.templateId}, #{object.dynamicRuleProtectLevel},
#{object.dynamicRulePriority}, #{object.dynamicRuleRange},
#{object.dynamicRuleFrequency},
#{object.dynamicRuleCreateUserId})
</foreach>
</insert>
<insert id="newDynamicRulProtectObjectsConcat">
insert into
t_protect_object_dynamic_rule_conn(dynamic_rule_id, protect_object_id)
values
<foreach collection="protectObjectIds" item="protectObjectId" separator=",">
(#{dynamicRuleId}, #{protectObjectId})
</foreach>
</insert>
<!-- join删除-->
<!-- # delete t_dynamic_rule, t_protect_object_dynamic_rule_conn-->
<!-- # from t_dynamic_rule-->
<!-- # inner join t_protect_object_dynamic_rule_conn-->
<!-- # on t_dynamic_rule.dynamic_rule_id = t_protect_object_dynamic_rule_conn.dynamic_rule_id-->
<!-- # where t_dynamic_rule.dynamic_rule_id = #{dynamicRuleId}-->
<delete id="deleteDynamicRuleObject">
delete
from t_dynamic_rule
where dynamic_rule_id = #{dynamicRuleId}
</delete>
<!-- 用于update时删去之前的关联-->
<delete id="deleteDynamicRuleProtectObjectConcat">
delete
from t_protect_object_dynamic_rule_conn
where dynamic_rule_id = #{dynamicRuleId}
</delete>
<delete id="deleteDynamicRules">
delete from t_dynamic_rule
where dynamic_rule_id in
<foreach collection="dynamicRuleIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<update id="updateDynamicRuleObject">
update t_dynamic_rule
set
<if test="object.dynamicRuleName != null">dynamic_rule_name = #{object.dynamicRuleName},</if>
<if test="object.dynamicRuleModifyTime != null">modify_time = #{object.dynamicRuleModifyTime},</if>
<if test="object.templateId != null">template_id = #{object.templateId},</if>
<if test="object.dynamicRuleProtectLevel != null">dynamic_rule_protect_level =
#{object.dynamicRuleProtectLevel},
</if>
<if test="object.dynamicRulePriority != null">dynamic_rule_priority = #{object.dynamicRulePriority},</if>
<if test="object.dynamicRuleRange != null">dynamic_rule_range = #{object.dynamicRuleRange},</if>
<if test="object.dynamicRuleFrequency != null">dynamic_rule_frequency = #{object.dynamicRuleFrequency},</if>
modify_time = NOW()
where
dynamic_rule_id = #{dynamicRuleId}
</update>
<resultMap id="dynamicRuleMap"
type="com.realtime.protection.configuration.entity.rule.dynamicrule.DynamicRuleObject">
<id column="dynamic_rule_id" property="dynamicRuleId"/>
<result column="dynamic_rule_name" property="dynamicRuleName"/>
<result column="create_time" property="dynamicRuleCreateTime"/>
<result column="modify_time" property="dynamicRuleModifyTime"/>
<result column="dynamic_rule_create_username" property="dynamicRuleCreateUsername"/>
<result column="dynamic_rule_create_depart" property="dynamicRuleCreateDepart"/>
<result column="template_id" property="templateId"/>
<result column="dynamic_rule_protec_level" property="dynamicRuleProtectLevel"/>
<result column="dynamic_rule_priority" property="dynamicRulePriority"/>
<result column="dynamic_rule_range" property="dynamicRuleRange"/>
<result column="dynamic_rule_frequency" property="dynamicRuleFrequency"/>
<result column="dynamic_rule_create_user_id" property="dynamicRuleCreateUserId"/>
</resultMap>
<resultMap id="dynamicRulePageQueryMap" type="com.realtime.protection.configuration.entity.rule.dynamicrule.DynamicRuleObject">
<id column="dynamic_rule_id" property="dynamicRuleId"/>
<result column="dynamic_rule_name" property="dynamicRuleName"/>
<result column="create_time" property="dynamicRuleCreateTime"/>
<result column="dynamic_rule_create_username" property="dynamicRuleCreateUsername"/>
<result column="dynamic_rule_create_depart" property="dynamicRuleCreateDepart"/>
<result column="template_id" property="templateId"/>
<result column="dynamic_rule_protec_level" property="dynamicRuleProtectLevel"/>
<result column="dynamic_rule_priority" property="dynamicRulePriority"/>
<result column="dynamic_rule_range" property="dynamicRuleRange"/>
<result column="dynamic_rule_frequency" property="dynamicRuleFrequency"/>
<!-- <result column="protect_object_id" property="protectObjectIds"/>-->
<result column="strategy_template_name" property="dynamicRuleEventType"/>
<result column="strategy_template_source_system" property="dynamicRuleSourceSystem"/>
</resultMap>
<select id="queryDynamicRuleById" resultMap="dynamicRuleMap">
select *
from t_dynamic_rule dynamicRule
where dynamicRule.dynamic_rule_id = #{dynamicRuleId}
</select>
<resultMap id="protectObjectMap" type="com.realtime.protection.configuration.entity.defense.object.ProtectObject">
<id column="protect_object_id" property="protectObjectId"/>
<result column="protect_object_name" property="protectObjectName"/>
<result column="protect_object_system_name" property="protectObjectSystemName"/>
<result column="protect_object_ip" property="protectObjectIPAddress"/>
<result column="protect_object_port" property="protectObjectPort"/>
<result column="protect_object_url" property="protectObjectURL"/>
<result column="protect_object_protocol" property="protectObjectProtocol"/>
<result column="protect_object_audit_status" property="protectObjectAuditStatus"/>
</resultMap>
<select id="queryProtectObjectByRuleId"
resultMap="protectObjectMap">
select t_protect_object.*
from t_protect_object
inner join t_protect_object_dynamic_rule_conn
on t_protect_object.protect_object_id = t_protect_object_dynamic_rule_conn.protect_object_id
where t_protect_object_dynamic_rule_conn.dynamic_rule_id = #{dynamicRuleId}
</select>
<select id="queryDynamicRuleObject"
resultMap="dynamicRulePageQueryMap">
select *
from t_dynamic_rule
# left join t_protect_object_dynamic_rule_conn
# on t_dynamic_rule.dynamic_rule_id = t_protect_object_dynamic_rule_conn.dynamic_rule_id
left join t_strategy_template
on t_dynamic_rule.template_id = t_strategy_template.strategy_template_id
<where>
<if test="dynamicRuleName != null">
t_dynamic_rule.dynamic_rule_name like concat('%', #{dynamicRuleName}, '%')
</if>
<if test="dynamicRuleId != null">
and t_dynamic_rule.dynamic_rule_id = #{dynamicRuleId}
</if>
<if test="sourceSystem != null">
and t_strategy_template.strategy_template_source_system = #{sourceSystem}
</if>
<if test="creator != null">
and t_dynamic_rule.dynamic_rule_create_username = #{creator}
</if>
</where>
LIMIT ${(page - 1) * pageSize}, #{pageSize}
</select>
<resultMap id="templateMap" type="com.realtime.protection.configuration.entity.defense.template.Template">
<id column="strategy_template_id" property="templateId"/>
<result column="strategy_template_name" property="templateName"/>
<result column="strategy_template_source_system" property="sourceSystem"/>
</resultMap>
<select id="queryTemplateByRuleId" resultMap="templateMap">
select *
from t_strategy_template
inner join t_dynamic_rule
on t_strategy_template.strategy_template_id = t_dynamic_rule.template_id
where t_dynamic_rule.dynamic_rule_id = #{dynamicRuleId}
</select>
<select id="queryProtectObjectById" resultType="java.lang.Boolean">
select count(*)
from t_protect_object
where protect_object_id = #{protectObjectId}
</select>
<select id="queryDynamicRuleTotalNum" resultType="java.lang.Integer">
SELECT COUNT(*)
FROM t_dynamic_rule
<where>
<if test="dynamicRuleName != null">
t_dynamic_rule.dynamic_rule_name like concat('%', #{dynamicRuleName}, '%')
</if>
<if test="dynamicRuleId != null">
and t_dynamic_rule.dynamic_rule_id = #{dynamicRuleId}
</if>
<if test="sourceSystem != null">
and t_strategy_template.strategy_template_source_system = #{sourceSystem}
</if>
<if test="creator != null">
and t_dynamic_rule.dynamic_rule_create_username = #{creator}
</if>
</where>
</select>
<select id="queryDynamicRuleByIds"
resultMap="dynamicRulePageQueryMap">
select *
from t_dynamic_rule
left join t_strategy_template
on t_dynamic_rule.template_id = t_strategy_template.strategy_template_id
where dynamic_rule_id in
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
</mapper>