86 lines
3.2 KiB
XML
86 lines
3.2 KiB
XML
<?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.TdEngineDMLMapper">
|
|
|
|
<!-- 插入数据 -->
|
|
<insert id="insertData">
|
|
INSERT INTO ${dataBaseName}.${tableName}
|
|
<foreach item="item" collection="columns" separator=","
|
|
open="(" close=")">
|
|
${item.fieldName}
|
|
</foreach>
|
|
VALUES
|
|
<foreach item="item" collection="columns" separator=","
|
|
open="(" close=")">
|
|
#{item.fieldValue}
|
|
</foreach>
|
|
</insert>
|
|
|
|
<!-- 根据时间戳查询数据 -->
|
|
<select id="selectByTimestamp" parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectDO"
|
|
resultType="Map">
|
|
SELECT * FROM ${dataBaseName}.${tableName}
|
|
WHERE ${fieldName} BETWEEN #{startTime} AND #{endTime}
|
|
</select>
|
|
|
|
<!-- 获取时间范围内的数据条数 -->
|
|
<select id="selectCountByTimestamp" parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectDO"
|
|
resultType="java.util.Map">
|
|
SELECT COUNT(0) AS count
|
|
FROM ${dataBaseName}.${tableName}
|
|
WHERE ${fieldName} BETWEEN #{startTime} AND #{endTime}
|
|
</select>
|
|
|
|
<!-- 获取最新数据 -->
|
|
<select id="selectOneLastData" resultType="java.util.Map">
|
|
SELECT LAST(time), *
|
|
FROM ${tableName}
|
|
WHERE device_id = #{deviceId}
|
|
</select>
|
|
|
|
<!-- 根据标签获取最新数据 -->
|
|
<select id="selectLastDataListByTags" parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.TagsSelectDO"
|
|
resultType="Map">
|
|
SELECT LAST(*)
|
|
FROM ${dataBaseName}.${stableName}
|
|
GROUP BY ${tagsName}
|
|
</select>
|
|
|
|
<!-- 获取历史数据 -->
|
|
<select id="selectHistoryDataList" resultType="java.util.Map"
|
|
parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectVisualDO">
|
|
SELECT ${fieldName} AS data, time
|
|
FROM ${dataBaseName}.${tableName}
|
|
WHERE time BETWEEN #{startTime} AND #{endTime}
|
|
AND ${fieldName} IS NOT NULL
|
|
ORDER BY time DESC
|
|
LIMIT #{params.rows} OFFSET #{params.page}
|
|
</select>
|
|
|
|
<!-- 获取实时数据 -->
|
|
<select id="selectRealtimeDataList" resultType="java.util.Map"
|
|
parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectVisualDO">
|
|
SELECT ${fieldName}, time
|
|
FROM ${dataBaseName}.${tableName}
|
|
</select>
|
|
|
|
<!-- 获取聚合数据 -->
|
|
<select id="selectAggregateDataList" resultType="java.util.Map"
|
|
parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectVisualDO">
|
|
SELECT ${aggregate}(${fieldName})
|
|
FROM ${dataBaseName}.${tableName}
|
|
WHERE ts BETWEEN #{startTime} AND #{endTime} INTERVAL (${interval})
|
|
LIMIT #{num}
|
|
</select>
|
|
|
|
<!-- 获取历史数据条数 -->
|
|
<select id="selectHistoryCount" resultType="java.lang.Long">
|
|
SELECT COUNT(time)
|
|
FROM ${dataBaseName}.${tableName}
|
|
WHERE time BETWEEN #{startTime} AND #{endTime}
|
|
AND ${fieldName} IS NOT NULL
|
|
</select>
|
|
|
|
</mapper> |