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.
79 lines
2.9 KiB
79 lines
2.9 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="cn.iocoder.yudao.module.iot.dal.tdengine.IotDevicePropertyMapper">
|
|
|
|
<select id="getProductPropertySTableFieldList" resultType="cn.iocoder.yudao.module.iot.framework.tdengine.core.TDengineTableField">
|
|
DESCRIBE product_property_${productId}
|
|
</select>
|
|
|
|
<update id="createProductPropertySTable">
|
|
CREATE STABLE product_property_${productId} (
|
|
ts TIMESTAMP,
|
|
report_time TIMESTAMP,
|
|
<foreach item="field" collection="fields" separator=",">
|
|
${field.field} ${field.type}
|
|
<if test="field.length != null and field.length > 0">
|
|
(${field.length})
|
|
</if>
|
|
</foreach>
|
|
)
|
|
TAGS (
|
|
device_id BIGINT
|
|
)
|
|
</update>
|
|
|
|
<update id="alterProductPropertySTableAddField">
|
|
ALTER STABLE product_property_${productId}
|
|
ADD COLUMN ${field.field} ${field.type}
|
|
<if test="field.length != null and field.length > 0">
|
|
(${field.length})
|
|
</if>
|
|
</update>
|
|
|
|
<update id="alterProductPropertySTableModifyField">
|
|
ALTER STABLE product_property_${productId}
|
|
MODIFY COLUMN ${field.field} ${field.type}
|
|
<if test="field.length != null and field.length > 0">
|
|
(${field.length})
|
|
</if>
|
|
</update>
|
|
|
|
<update id="alterProductPropertySTableDropField">
|
|
ALTER STABLE product_property_${productId}
|
|
DROP COLUMN ${field.field}
|
|
</update>
|
|
|
|
<insert id="insert">
|
|
INSERT INTO device_property_${device.id}
|
|
USING product_property_${device.productId}
|
|
TAGS ('${device.id}')
|
|
(ts, report_time,
|
|
<foreach item="key" collection="properties.keys" separator=",">
|
|
${@cn.hutool.core.util.StrUtil@toUnderlineCase(key)}
|
|
</foreach>
|
|
)
|
|
VALUES
|
|
(NOW, #{reportTime},
|
|
<foreach item="value" collection="properties.values" separator=",">
|
|
#{value}
|
|
</foreach>
|
|
)
|
|
</insert>
|
|
|
|
<select id="describeSuperTable" resultType="java.util.Map">
|
|
DESCRIBE product_property_${productId}
|
|
</select>
|
|
|
|
<select id="selectListByHistory"
|
|
resultType="cn.iocoder.yudao.module.iot.controller.admin.device.vo.property.IotDevicePropertyRespVO">
|
|
SELECT ${@cn.hutool.core.util.StrUtil@toUnderlineCase(reqVO.identifier)} AS `value`, ts AS update_time
|
|
FROM device_property_${reqVO.deviceId}
|
|
WHERE ${@cn.hutool.core.util.StrUtil@toUnderlineCase(reqVO.identifier)} IS NOT NULL
|
|
AND ts BETWEEN ${@cn.hutool.core.date.LocalDateTimeUtil@toEpochMilli(reqVO.times[0])}
|
|
AND ${@cn.hutool.core.date.LocalDateTimeUtil@toEpochMilli(reqVO.times[1])}
|
|
ORDER BY ts DESC
|
|
</select>
|
|
|
|
</mapper> |