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

241 lines
12 KiB
XML
Raw Normal View History

<?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">
2024-01-13 10:23:48 +08:00
<!-- useGeneratedKeys="true": 这个属性指定了是否要获取数据库生成的主键。如果设置为trueMyBatis会使用JDBC的getGeneratedKeys方法来获取由数据库自动生成的主键。-->
<!-- keyProperty="id": 这个属性指定了要将生成的主键赋值给哪个属性。在这个例子中生成的主键将被赋值给名为id的属性。-->
<insert id="newDynamicRule" useGeneratedKeys="true" keyProperty="dynamicRuleId">
insert into t_dynamic_rule
2024-01-13 10:23:48 +08:00
(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},
2024-01-13 10:23:48 +08:00
#{object.dynamicRuleCreateUsername}, #{object.dynamicRuleCreateDepart},
#{object.templateId}, #{object.dynamicRuleProtectLevel},
#{object.dynamicRulePriority}, #{object.dynamicRuleRange},
#{object.dynamicRuleFrequency},
#{object.dynamicRuleCreateUserId})
</insert>
<insert id="newDynamicRulProtectObjectConcat">
2024-01-13 10:23:48 +08:00
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
2024-01-13 10:23:48 +08:00
(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删除-->
2024-01-13 10:23:48 +08:00
<!-- # 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">
2024-01-13 10:23:48 +08:00
delete
from t_dynamic_rule
where dynamic_rule_id = #{dynamicRuleId}
</delete>
2024-01-13 10:23:48 +08:00
<!-- 用于update时删去之前的关联-->
<delete id="deleteDynamicRuleProtectObjectConcat">
2024-01-13 10:23:48 +08:00
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
2024-01-13 10:23:48 +08:00
<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
2024-01-13 10:23:48 +08:00
dynamic_rule_id = #{dynamicRuleId}
</update>
2024-01-13 10:23:48 +08:00
<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 *
2024-01-13 10:23:48 +08:00
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.*
2024-01-13 10:23:48 +08:00
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
2024-01-13 10:23:48 +08:00
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>