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.
 
 
 
 
 
 

251 lines
11 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.SceneModelDataMapper">
<resultMap type="SceneModelData" id="SceneModelDataResult">
<result property="id" column="id" />
<result property="sceneModelId" column="scene_model_id" />
<result property="sceneModelDeviceId" column="scene_model_device_id" />
<result property="variableType" column="variable_type" />
<result property="datasourceId" column="datasource_id" />
<result property="enable" column="enable" />
<result property="sourceName" column="source_name"/>
<result property="identifier" column="identifier"/>
<result property="sceneModelDeviceId" column="scene_model_device_id"/>
<result property="sceneModelDeviceName" column="scene_model_device_name"/>
<result property="type" column="type"/>
</resultMap>
<sql id="selectSceneModelDataVo">
select id, scene_model_id, scene_model_device_id, variable_type, datasource_id, enable, source_name, identifier, type from scene_model_data
</sql>
<select id="selectSceneModelDataList" parameterType="SceneModelData" resultMap="SceneModelDataResult">
<include refid="selectSceneModelDataVo"/>
where scene_model_id = #{sceneModelId}
and del_flag = 0
<if test="variableType != null"> and variable_type = #{variableType}</if>
<if test="sceneModelDeviceId != null "> and scene_model_device_id = #{sceneModelDeviceId}</if>
<if test="sourceName != null and sourceName != ''"> and source_name like concat('%', #{sourceName}, '%')</if>
<if test="enable != null "> and enable = #{enable}</if>
</select>
<select id="selectSceneModelDataDTOList" resultType="com.fastbee.iot.model.scenemodel.SceneModelDataDTO">
select sd.id, sd.scene_model_id, sd.scene_model_device_id, sd.variable_type, sd.datasource_id, sd.enable, sd.source_name, sd.identifier, sd.type,
s.id as scene_model_device_id, s.name as scene_model_device_name, d.serial_number, d.product_id, d.is_shadow, d.status, d.device_id
from scene_model_device s
left join iot_device d on s.cus_device_id = d.device_id
left join scene_model_data sd on s.id = sd.scene_model_device_id
where s.scene_model_id = #{sceneModelId}
and sd.scene_model_id = #{sceneModelId}
and sd.del_flag = 0
and s.del_flag = 0
<if test="variableType != null"> and sd.variable_type = #{variableType}</if>
<if test="sceneModelDeviceId != null "> and sd.scene_model_device_id = #{sceneModelDeviceId}</if>
<if test="sourceName != null and sourceName != ''"> and sd.source_name like concat('%', #{sourceName}, '%')</if>
<if test="enable != null "> and sd.enable = #{enable}</if>
</select>
<select id="selectSceneModelDataById" parameterType="Long" resultMap="SceneModelDataResult">
<include refid="selectSceneModelDataVo"/>
where id = #{id}
and del_flag = 0
</select>
<select id="listBySourceIdAndType" resultType="com.fastbee.iot.domain.SceneModelData">
select distinct(scene_model_id), scene_model_device_id
from scene_model_data
where datasource_id = #{datasourceId}
and variable_type = 1
and del_flag = 0
</select>
<select id="countNoEnableBySceneModelDeviceId" resultType="java.lang.Integer">
select count(id)
from scene_model_data
where del_flag = 0
and scene_model_device_id = #{sceneModelDeviceId}
and enable = 0
</select>
<select id="selectNoDeviceBySourceIdAndVariableType" resultType="com.fastbee.iot.domain.SceneModelData">
<include refid="selectSceneModelDataVo"/>
where datasource_id = #{datasourceId}
and variable_type = #{variableType}
and del_flag = 0
</select>
<select id="selectSceneModelDeviceByDataIdList"
resultType="com.fastbee.iot.model.scenemodel.SceneModelDeviceVO">
select s.id as scene_model_data_id, s.scene_model_device_id, sd.name as scene_model_device_name
from scene_model_data s join scene_model_device sd on s.scene_model_device_id = sd.id
where s.id in
<foreach collection="idList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
and sd.del_flag = 0
</select>
<select id="selectDeviceThingsModelById"
resultType="com.fastbee.iot.model.scenemodel.SceneDeviceThingsModelVO">
select s.identifier, d.serial_number, d.product_id
from scene_model_data s left join scene_model_device sd on s.scene_model_device_id = sd.id
left join iot_device d on sd.cus_device_id = d.device_id
where s.id = #{id}
</select>
<select id="selectInputTagDefaultValueById" resultType="java.lang.String">
select st.default_value
from scene_model_data s left join scene_model_tag st on s.datasource_id = st.id
where s.id = #{id}
</select>
<select id="checkIsApplyAliasFormule" resultType="java.lang.Integer">
select count(st.id)
from scene_model_data smd join scene_tag_points st on smd.id = st.scene_model_data_id
where smd.del_flag = 0
and st.del_flag = 0
and smd.datasource_id = #{datasourceId}
<if test="variableType != null">
and smd.variable_type = #{variableType}
</if>
</select>
<select id="selectSceneModelDataListByIds" resultType="com.fastbee.iot.domain.SceneModelData">
<include refid="selectSceneModelDataVo"/>
where id in
<foreach item="id" collection="ids" open="(" separator="," close=")">
#{id}
</foreach>
and del_flag = 0
</select>
<select id="selectSceneDeviceThingsModelList" resultType="com.fastbee.iot.domain.SceneModelData">
select distinct scene_model_id, scene_model_device_id
from scene_model_data
where variable_type = 1
and datasource_id = #{datasourceId}
and del_flag = 0
</select>
<insert id="insertSceneModelData" parameterType="SceneModelData">
insert into scene_model_data
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">id,</if>
<if test="sceneModelId != null">scene_model_id,</if>
<if test="sceneModelDeviceId != null">scene_model_device_id,</if>
<if test="variableType != null">variable_type,</if>
<if test="datasourceId != null">datasource_id,</if>
<if test="enable != null">enable,</if>
<if test="sourceName != null and sourceName != ''">source_name,</if>
<if test="identifier != null and identifier != ''">identifier,</if>
<if test="type != null">type,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">#{id},</if>
<if test="sceneModelId != null">#{sceneModelId},</if>
<if test="sceneModelDeviceId != null">#{sceneModelDeviceId},</if>
<if test="variableType != null">#{variableType},</if>
<if test="datasourceId != null">#{datasourceId},</if>
<if test="enable != null">#{enable},</if>
<if test="sourceName != null and sourceName != ''">#{sourceName},</if>
<if test="identifier != null and identifier != ''">#{identifier},</if>
<if test="type != null">#{type},</if>
</trim>
</insert>
<insert id="insertBatchSceneModelData">
insert into scene_model_data
(scene_model_id, scene_model_device_id, variable_type, datasource_id, source_name, identifier, type)
values
<foreach collection="sceneModelDataList" item="sceneModelData" separator=",">
(#{sceneModelData.sceneModelId},
#{sceneModelData.sceneModelDeviceId},
#{sceneModelData.variableType},
#{sceneModelData.datasourceId},
#{sceneModelData.sourceName},
#{sceneModelData.identifier},
#{sceneModelData.type})
</foreach>
</insert>
<update id="updateSceneModelData" parameterType="SceneModelData">
update scene_model_data
<trim prefix="SET" suffixOverrides=",">
<if test="sceneModelId != null">scene_model_id = #{sceneModelId},</if>
<if test="sceneModelDeviceId != null">scene_model_device_id = #{sceneModelDeviceId},</if>
<if test="variableType != null">variable_type = #{variableType},</if>
<if test="datasourceId != null">datasource_id = #{datasourceId},</if>
<if test="enable != null">enable = #{enable},</if>
<if test="sourceName != null and sourceName != ''"> source_name = #{sourceName},</if>
<if test="identifier != null and identifier != ''"> identifier = #{identifier},</if>
<if test="type != null">type = #{type},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSceneModelDataById" parameterType="Long">
delete from scene_model_data where id = #{id}
</delete>
<delete id="deleteSceneModelDataByIds" parameterType="String">
delete from scene_model_data where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<delete id="deleteThingsModelByDatasourceId">
update scene_model_data
set del_flag = 1
where datasource_id in
<foreach item="datasourceId" collection="array" open="(" separator="," close=")">
#{datasourceId}
</foreach>
and variable_type = 1
</delete>
<update id="deleteBySourceIds">
update scene_model_data
set del_flag = 1
where datasource_id in
<foreach item="datasourceId" collection="array" open="(" separator="," close=")">
#{datasourceId}
</foreach>
</update>
<update id="deleteBySceneModelIds">
update scene_model_data
set del_flag = 1
where scene_model_id in
<foreach item="sceneModelId" collection="array" open="(" separator="," close=")">
#{sceneModelId}
</foreach>
</update>
<update id="editAllEnable">
update scene_model_data
set enable = #{enable}
where scene_model_id = #{sceneModelId}
and variable_type = #{variableType}
<if test="sceneModelDeviceId != null "> and scene_model_device_id = #{sceneModelDeviceId}</if>
</update>
<update id="deleteBySceneModelDeviceIds">
update scene_model_data
set del_flag = 1
where scene_model_device_id in
<foreach item="sceneModelDeviceId" collection="array" open="(" separator="," close=")">
#{sceneModelDeviceId}
</foreach>
</update>
<update id="updateSceneModelDataByDatasourceId">
update scene_model_data
set source_name = #{sourceName}
where scene_model_id = #{sceneModelId}
and variable_type = #{variableType}
and datasource_id = #{datasourceId}
</update>
</mapper>