You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

199 lines
9.4 KiB

<?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.fastbee.iot.mapper.AlertMapper">
<resultMap type="com.fastbee.iot.domain.Alert" id="AlertResult">
<result property="alertId" column="alert_id" />
<result property="alertName" column="alert_name" />
<result property="alertLevel" column="alert_level" />
<result property="status" column="status" />
<result property="notify" column="notify" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="tenantId" column="tenant_id" />
<result property="tenantName" column="tenant_name" />
</resultMap>
<resultMap type="com.fastbee.iot.domain.Scene" id="AlertSceneResult">
<result property="sceneId" column="scene_id" />
<result property="sceneName" column="scene_name" />
<result property="userId" column="user_id" />
<result property="userName" column="user_name" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="cond" column="cond" />
<result property="silentPeriod" column="silent_period" />
<result property="executeMode" column="execute_mode" />
<result property="executeDelay" column="execute_delay" />
<result property="hasAlert" column="has_alert" />
<result property="enable" column="enable" />
<result property="applicationName" column="application_name" />
</resultMap>
<resultMap type="com.fastbee.iot.domain.AlertNotifyTemplate" id="AlertNotifyTemplateResult">
<result property="alertId" column="alert_id" />
<result property="notifyTemplateId" column="notify_template_id" />
</resultMap>
<sql id="selectAlertVo">
select alert_id, alert_name, alert_level, status, notify, create_by, create_time, update_by, update_time, remark, tenant_id, tenant_name from iot_alert
</sql>
<select id="selectScenesByAlertId" parameterType="Long" resultMap="AlertSceneResult">
select a.alert_id,a.scene_id,s.scene_name,s.cond, s.silent_period, s.execute_mode, s.execute_delay, s.has_alert,s.enable
from (select alert_id,scene_id from iot_alert_scene where alert_id = #{alertId}) a
left join iot_scene s on a.scene_id = s.scene_id
</select>
<select id="selectAlertList" parameterType="Alert" resultMap="AlertResult">
<include refid="selectAlertVo"/>
<where>
<if test="alertName != null and alertName != ''"> and alert_name like concat('%', #{alertName}, '%')</if>
<if test="alertLevel != null "> and alert_level = #{alertLevel}</if>
<if test="status != null "> and status = #{status}</if>
<if test="notify != null and notify != ''"> and notify = #{notify}</if>
<if test="tenantId != null "> and tenant_id = #{tenantId}</if>
</where>
order by create_time desc
</select>
<select id="selectAlertByAlertId" parameterType="Long" resultMap="AlertResult">
<include refid="selectAlertVo"/>
where alert_id = #{alertId}
</select>
<select id="selectAlertNotifyTemplateList" parameterType="Long" resultType="com.fastbee.iot.domain.AlertNotifyTemplate">
select alert_id, notify_template_id
from iot_alert_notify_template
where alert_id = #{alertId}
</select>
<select id="selectNotifyTemplateListByAlertId" resultType="com.fastbee.notify.domain.NotifyTemplate">
select n.id, n.service_code,n.msg_params,n.status, n.name, n.channel_id, n.channel_type, n.provider, n.create_by, n.create_time, n.update_by, n.update_time, n.del_flag, n.tenant_id, n.tenant_name, c.name channelName
from iot_alert_notify_template a left join notify_template n on a.notify_template_id = n.id
left join notify_channel c on n.channel_id = c.id
where a.alert_id = #{alertId}
</select>
<select id="selectAlertSceneListBySceneId" resultType="com.fastbee.iot.domain.AlertScene">
select alert_id, scene_id
from iot_alert_scene
where scene_id = #{sceneId}
</select>
<select id="listByAlertIds" resultType="com.fastbee.iot.model.AlertSceneSendVO">
select s.scene_id, s.alert_id, a.alert_name, a.alert_level
from iot_alert_scene s left join iot_alert a on s.alert_id = a.alert_id
where s.scene_id = #{sceneId}
and a.status = 1
</select>
<insert id="insertAlert" parameterType="com.fastbee.iot.domain.Alert" useGeneratedKeys="true" keyProperty="alertId">
insert into iot_alert
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="alertName != null and alertName != ''">alert_name,</if>
<if test="alertLevel != null">alert_level,</if>
<if test="status != null">status,</if>
<if test="notify != null">notify,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
<if test="tenantId != null">tenant_id,</if>
<if test="tenantName != null and tenantName != ''">tenant_name,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="alertName != null and alertName != ''">#{alertName},</if>
<if test="alertLevel != null">#{alertLevel},</if>
<if test="status != null">#{status},</if>
<if test="notify != null">#{notify},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
<if test="tenantId != null">#{tenantId},</if>
<if test="tenantName != null and tenantName != ''">#{tenantName},</if>
</trim>
</insert>
<update id="updateAlert" parameterType="Alert">
update iot_alert
<trim prefix="SET" suffixOverrides=",">
<if test="alertName != null and alertName != ''">alert_name = #{alertName},</if>
<if test="alertLevel != null">alert_level = #{alertLevel},</if>
<if test="status != null">status = #{status},</if>
<if test="notify != null">notify = #{notify},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
</trim>
where alert_id = #{alertId}
</update>
<update id="updateAlertStatus">
update iot_alert
set status = #{status}
where alert_id = #{alertId}
</update>
<delete id="deleteAlertByAlertId" parameterType="Long">
delete from iot_alert where alert_id = #{alertId}
</delete>
<delete id="deleteAlertByAlertIds" parameterType="String">
delete from iot_alert where alert_id in
<foreach item="alertId" collection="array" open="(" separator="," close=")">
#{alertId}
</foreach>
</delete>
<insert id="insertAlertSceneList" parameterType="java.util.List">
insert into iot_alert_scene (alert_id,scene_id)
VALUES
<foreach collection="list" item="alertScene" separator=",">
(#{alertScene.alertId},#{alertScene.sceneId})
</foreach>
</insert>
<delete id="deleteAlertSceneByAlertIds" parameterType="String">
delete from iot_alert_scene where alert_id in
<foreach item="alertId" collection="array" open="(" separator="," close=")">
#{alertId}
</foreach>
</delete>
<delete id="deleteAlertSceneBySceneIds" parameterType="String">
delete from iot_alert_scene where scene_id in
<foreach item="sceneId" collection="array" open="(" separator="," close=")">
#{sceneId}
</foreach>
</delete>
<insert id="insertAlertNotifyTemplateList">
insert into iot_alert_notify_template (alert_id, notify_template_id)
VALUES
<foreach collection="list" item="alertNotifyTemplate" separator=",">
(#{alertNotifyTemplate.alertId},#{alertNotifyTemplate.notifyTemplateId})
</foreach>
</insert>
<delete id="deleteAlertNotifyTemplateByAlertIds">
delete from iot_alert_notify_template where alert_id in
<foreach item="alertId" collection="array" open="(" separator="," close=")">
#{alertId}
</foreach>
</delete>
</mapper>