jinpengyong
2021-08-30 b63db6141a9e29b469144be742c02d8c9d26af66
screen-job/src/main/resources/mapper/HistoryHourlyMapper.xml
@@ -2,13 +2,14 @@
<!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">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.moral.api.entity.HistoryHourly">
        <result column="mac" property="mac"/>
        <result column="time" property="time"/>
        <result column="value" property="value"/>
        <result column="version" property="version"/>
    </resultMap>
    <update id="createTable" parameterType="String">
        CREATE TABLE IF NOT EXISTS `history_hourly_${timeUnits}` (
            `mac` VARCHAR (20) DEFAULT NULL COMMENT '设备mac',
            `time` datetime DEFAULT NULL COMMENT '数据时间',
            `value` json DEFAULT NULL COMMENT '数据',
            KEY `idx_mac_time` (`mac`,`time`)
            ) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT '小时数据表'
    </update>
    <insert id="insertHistoryHourly">
        INSERT INTO history_hourly VALUES
@@ -16,4 +17,18 @@
            (#{item.mac}, #{item.time}, #{item.value}, #{item.version})
        </foreach>
    </insert>
    <select id="selectCountByTime" resultType="java.lang.Integer">
        SELECT COUNT(1) FROM history_hourly_${timeUnits} WHERE `time` = #{time}
        <if test="mac != null">
            AND mac = #{mac}
        </if>
    </select>
    <select id="selectDailyData" resultType="java.util.Map">
        SELECT mac, `value`
        FROM history_hourly_${timeUnits}
        WHERE `time` <![CDATA[>=]]> #{start}
        AND `time` <![CDATA[<]]> #{end}
    </select>
</mapper>