TdEngineDMLMapper.xml 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="cn.iocoder.yudao.module.iot.dal.tdengine.TdEngineDMLMapper">
  6. <!-- 插入数据 -->
  7. <insert id="insertData">
  8. INSERT INTO ${dataBaseName}.${tableName}
  9. <foreach item="item" collection="columns" separator=","
  10. open="(" close=")">
  11. ${item.fieldName}
  12. </foreach>
  13. VALUES
  14. <foreach item="item" collection="columns" separator=","
  15. open="(" close=")">
  16. #{item.fieldValue}
  17. </foreach>
  18. </insert>
  19. <!-- 根据时间戳查询数据 -->
  20. <select id="selectByTimestamp" parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectDO"
  21. resultType="Map">
  22. SELECT * FROM ${dataBaseName}.${tableName}
  23. WHERE ${fieldName} BETWEEN #{startTime} AND #{endTime}
  24. </select>
  25. <!-- 获取时间范围内的数据条数 -->
  26. <select id="selectCountByTimestamp" parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectDO"
  27. resultType="java.util.Map">
  28. SELECT COUNT(0) AS count
  29. FROM ${dataBaseName}.${tableName}
  30. WHERE ${fieldName} BETWEEN #{startTime} AND #{endTime}
  31. </select>
  32. <!-- 获取最新数据 -->
  33. <select id="selectOneLastData" resultType="java.util.Map">
  34. SELECT LAST(time), *
  35. FROM ${tableName}
  36. WHERE device_id = #{deviceId}
  37. </select>
  38. <!-- 根据标签获取最新数据 -->
  39. <select id="selectLastDataListByTags" parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.TagsSelectDO"
  40. resultType="java.util.Map">
  41. SELECT LAST(*)
  42. FROM ${dataBaseName}.${stableName}
  43. GROUP BY ${tagsName}
  44. </select>
  45. <!-- 获取历史数据 -->
  46. <select id="selectHistoryDataList" resultType="java.util.Map"
  47. parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectVisualDO">
  48. SELECT ${fieldName} AS data, time
  49. FROM ${dataBaseName}.${tableName}
  50. WHERE time BETWEEN #{startTime} AND #{endTime}
  51. AND ${fieldName} IS NOT NULL
  52. ORDER BY time DESC
  53. LIMIT #{params.rows} OFFSET #{params.page}
  54. </select>
  55. <!-- 获取实时数据 -->
  56. <select id="selectRealtimeDataList" resultType="java.util.Map"
  57. parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectVisualDO">
  58. SELECT ${fieldName}, time
  59. FROM ${dataBaseName}.${tableName}
  60. </select>
  61. <!-- 获取聚合数据 -->
  62. <select id="selectAggregateDataList" resultType="java.util.Map"
  63. parameterType="cn.iocoder.yudao.module.iot.dal.dataobject.tdengine.SelectVisualDO">
  64. SELECT ${aggregate}(${fieldName})
  65. FROM ${dataBaseName}.${tableName}
  66. WHERE ts BETWEEN #{startTime} AND #{endTime} INTERVAL (${interval})
  67. LIMIT #{num}
  68. </select>
  69. <!-- 获取历史数据条数 -->
  70. <select id="selectHistoryCount" resultType="java.lang.Long">
  71. SELECT COUNT(time)
  72. FROM ${dataBaseName}.${tableName}
  73. WHERE time BETWEEN #{startTime} AND #{endTime}
  74. AND ${fieldName} IS NOT NULL
  75. </select>
  76. </mapper>