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.
 
 
 
 
 
 

147 lines
6.7 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.SceneDeviceMapper">
<resultMap type="SceneDevice" id="SceneDeviceResult">
<result property="sceneDeviceId" column="scene_device_id" />
<result property="serialNumber" column="serial_number" />
<result property="productId" column="product_id" />
<result property="productName" column="product_name" />
<result property="scriptId" column="script_id" />
<result property="sceneId" column="scene_id" />
<result property="source" column="source" />
<result property="type" column="type" />
</resultMap>
<resultMap type="com.fastbee.iot.domain.Scene" id="SceneResult">
<result property="sceneId" column="scene_id" />
<result property="chainName" column="chain_name" />
<result property="elData" column="el_data" />
</resultMap>
<sql id="selectSceneDeviceVo">
select scene_device_id, serial_number, product_id, product_name, script_id, scene_id, source,type from iot_scene_device
</sql>
<select id="selectSceneDeviceList" parameterType="SceneDevice" resultMap="SceneDeviceResult">
<include refid="selectSceneDeviceVo"/>
<where>
<if test="serialNumber != null and serialNumber != ''"> and serial_number = #{serialNumber}</if>
<if test="productId != null "> and product_id = #{productId}</if>
<if test="productName != null "> and product_name = #{productName}</if>
<if test="scriptId != null "> and script_id = #{scriptId}</if>
<if test="sceneId != null "> and scene_id = #{sceneId}</if>
<if test="source != null "> and source = #{source}</if>
</where>
</select>
<select id="selectTriggerDeviceRelateScenes" parameterType="SceneDevice" resultMap="SceneResult">
select s.scene_id,s.chain_name
from (select distinct scene_id from iot_scene_device where type = 2 and (serial_number = #{serialNumber} OR product_id = #{productId})) d
left join iot_scene s on s.scene_id=d.scene_id
where s.enable = 1
</select>
<select id="selectSceneDeviceBySceneDeviceId" parameterType="Long" resultMap="SceneDeviceResult">
<include refid="selectSceneDeviceVo"/>
where scene_device_id = #{sceneDeviceId}
</select>
<select id="listSceneProductBind" resultType="com.fastbee.iot.model.SceneDeviceBindVO">
select d.scene_id, s.scene_name, d.product_id
from iot_scene_device d
left join iot_scene s on d.scene_id = s.scene_id
where d.product_id in
<foreach item="productId" collection="array" open="(" separator="," close=")">
#{productId}
</foreach>
</select>
<select id="listSceneDeviceBind" resultType="com.fastbee.iot.model.SceneDeviceBindVO">
select d.scene_id, s.scene_name, d.serial_number, s.user_id
from iot_scene_device d
left join iot_scene s on d.scene_id = s.scene_id
where d.serial_number = #{serialNumber}
</select>
<select id="listSceneIdByDeviceIdAndUserId" resultType="Long">
select distinct s.scene_id
from iot_scene_device sd
join iot_scene s on sd.scene_id = s.scene_id
where sd.serial_number = #{serialNumber}
and s.user_id in
<foreach collection="userIdList" item="userId" open="(" separator="," close=")">
#{userId}
</foreach>
</select>
<insert id="insertSceneDevice" parameterType="SceneDevice" useGeneratedKeys="true" keyProperty="sceneDeviceId" >
insert into iot_scene_device
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="serialNumber != null">serial_number,</if>
<if test="productId != null">product_id,</if>
<if test="productName != null">product_name,</if>
<if test="scriptId != null">script_id,</if>
<if test="sceneId != null">scene_id,</if>
<if test="source != null">source,</if>
<if test="type != null">type,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="serialNumber != null">#{serialNumber},</if>
<if test="productId != null">#{productId},</if>
<if test="productName != null">#{productName},</if>
<if test="scriptId != null">#{scriptId},</if>
<if test="sceneId != null">#{sceneId},</if>
<if test="source != null">#{source},</if>
<if test="type != null">#{type},</if>
</trim>
</insert>
<update id="updateSceneDevice" parameterType="SceneDevice">
update iot_scene_device
<trim prefix="SET" suffixOverrides=",">
<if test="serialNumber != null">serial_number = #{serialNumber},</if>
<if test="productId != null">product_id = #{productId},</if>
<if test="productName != null">product_name = #{productName},</if>
<if test="scriptId != null">script_id = #{scriptId},</if>
<if test="sceneId != null">scene_id = #{sceneId},</if>
<if test="source != null">source = #{source},</if>
<if test="type != null">type = #{type},</if>
</trim>
where scene_device_id = #{sceneDeviceId}
</update>
<delete id="deleteSceneDeviceBySceneDeviceId" parameterType="Long">
delete from iot_scene_device where scene_device_id = #{sceneDeviceId}
</delete>
<delete id="deleteSceneDeviceBySceneDeviceIds" parameterType="String">
delete from iot_scene_device where scene_device_id in
<foreach item="sceneDeviceId" collection="array" open="(" separator="," close=")">
#{sceneDeviceId}
</foreach>
</delete>
<insert id="insertSceneDeviceList" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="sceneDeviceId">
insert into iot_scene_device (serial_number,product_id,product_name, script_id,scene_id,source,type)
VALUES
<foreach collection ="list" item="sceneDevice" separator =",">
(#{sceneDevice.serialNumber},
#{sceneDevice.productId},
#{sceneDevice.productName},
#{sceneDevice.scriptId},
#{sceneDevice.sceneId},
#{sceneDevice.source},
#{sceneDevice.type})
</foreach >
</insert>
<delete id="deleteSceneDeviceBySceneIds" parameterType="String">
delete from iot_scene_device where scene_id in
<foreach item="sceneId" collection="array" open="(" separator="," close=")">
#{sceneId}
</foreach>
</delete>
</mapper>