<?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.moral.api.mapper.HistoryHourlyMapper"> 
 | 
  
 | 
    <select id="selectHourlyData" resultType="java.lang.String"> 
 | 
        SELECT `value` 
 | 
        FROM history_hourly_${timeUnits} 
 | 
        WHERE mac = #{mac} 
 | 
          AND `time` = #{time} 
 | 
    </select> 
 | 
  
 | 
  
 | 
    <select id="selectHourlyListData" parameterType="java.util.List" resultType="java.util.Map"> 
 | 
        SELECT `value`,`time` 
 | 
        FROM history_hourly_${timeUnits} 
 | 
        WHERE mac = #{mac} 
 | 
          AND `time` BETWEEN  #{startTime} and #{endTime} 
 | 
    </select> 
 | 
  
 | 
  
 | 
    <select id="selectDataByMacsAndTime" parameterType="java.util.List" resultType="java.util.Map"> 
 | 
        select mac, `time`, `value` from history_hourly_${timeUnits} 
 | 
        where mac in 
 | 
        <foreach collection="list" item="item" index="index" open="(" separator="," close=")"> 
 | 
            #{item} 
 | 
        </foreach> 
 | 
        and `time` = #{time} 
 | 
    </select> 
 | 
  
 | 
    <select id="queryLastHourlyMac" resultType="java.lang.String"> 
 | 
        SELECT `value` 
 | 
        FROM history_hourly_${timeUnits} 
 | 
        WHERE mac = #{mac} 
 | 
          AND `time` = #{time} 
 | 
    </select> 
 | 
  
 | 
  
 | 
    <select id="getArea" resultType="com.moral.api.pojo.dto.Wind.WindData"> 
 | 
        SELECT 
 | 
        d.longitude AS longitude, 
 | 
        d.latitude AS latitude, 
 | 
        CASE WHEN 
 | 
        h.value->'$.a01007' = 0 THEN 0.1 ELSE h.value->'$.a01007' END AS windSpeed, 
 | 
        h.value->'$.a01008' AS windDir 
 | 
        FROM history_hourly_${timeUnits} h , 
 | 
        `device` AS d 
 | 
        WHERE d.is_delete = '0' 
 | 
        and d.mac = h.mac 
 | 
        AND d.monitor_point_id IN 
 | 
        <foreach item="monitorPointId" collection="monitorPointIds" index="index" open="(" separator="," close=")"> 
 | 
            #{monitorPointId} 
 | 
        </foreach> 
 | 
        AND h.time = #{time} 
 | 
    </select> 
 | 
  
 | 
    <select id="getTVOCByMac" resultType="java.lang.String"> 
 | 
        select `value` - > '$.${sensor}' 
 | 
        from history_hourly_${yearAndMonth} 
 | 
        where mac = #{mac} 
 | 
          and time =#{time} 
 | 
    </select> 
 | 
  
 | 
  
 | 
    <select id="getPressureByMac" resultType="java.lang.String"> 
 | 
        select `value` - > '$.a01006' 
 | 
        from history_hourly_${yearAndMonth} 
 | 
        where mac = #{mac} 
 | 
          and time =#{time} 
 | 
    </select> 
 | 
  
 | 
  
 | 
    <select id="getDataByMac" resultType="java.util.Map"> 
 | 
        select `value` 
 | 
        from history_hourly_${yearAndMonth} 
 | 
        where mac = #{mac} 
 | 
          and time =#{time} 
 | 
    </select> 
 | 
  
 | 
    <insert id="insertHistoryHourly"> 
 | 
        INSERT INTO history_hourly_${timeUnits} 
 | 
        VALUES (#{mac}, #{time}, #{value}, #{version}) 
 | 
    </insert> 
 | 
  
 | 
  
 | 
    <insert id="updateHistoryHourly"> 
 | 
        UPDATE history_hourly_${timeUnits} SET `value` = #{value} 
 | 
        where mac =  #{mac} and time = #{time} and version = #{version} 
 | 
    </insert> 
 | 
</mapper> 
 |