src/main/resources/mapper/RealWeatherMapper.xml
@@ -1,8 +1,8 @@
<?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.mapper.RealWeatherMapper">
    <resultMap id="BaseResultMap" type="com.moral.entity.RealWeather" >
        <id column="city_code" property="cityCode" jdbcType="INTEGER" />
    <resultMap id="BaseResultMap" type="com.moral.entity.RealWeather">
        <id column="city_code" property="cityCode" jdbcType="INTEGER"/>
    </resultMap>
    <insert id="insertRealWeather">
        insert into
@@ -12,6 +12,10 @@
            (#{item.cityCode},#{item.time},#{item.json})
        </foreach>
    </insert>
    <delete id="deleteRealWeather">
        delete from real_weather where time=#{time}
    </delete>
    <select id="getTempAndCloud" resultType="java.util.Map">
        select DATE_FORMAT(time, #{typeFormat}) time,
@@ -71,4 +75,91 @@
        and city_code=130900
        ) limit 0,1;
    </select>
    <select id="getWeatherByHour" resultType="java.util.Map">
        select DATE_FORMAT(time, '%Y-%m-%d %H:%i:%s') time,
        value
        from history_weather_${timeUnits}
        where city_code=#{cityCode}
        and (
            DATE_FORMAT(time, '%Y%H')=#{yearAndHour}
            or  DATE_FORMAT(time, '%Y%H')=#{yearAndHour1}
        )
    </select>
    <select id="getSampleFromHistoryWeather" resultType="java.lang.String">
        select DATE_FORMAT(time, #{typeFormat}) as time
        from history_weather_${timeUnits}
        <where>
            city_code=#{cityCode}
            <if test="condition == 0">
                and cast(value->'$.condition' as UNSIGNED integer) > #{score}
            </if>
            <if test="condition == 1">
                and cast(value->'$.condition' as UNSIGNED integer) <![CDATA[<=]]> #{score}
            </if>
            <if test="startTemp != null">
                and cast(value->'$.temp' as decimal(10, 1)) >= #{startTemp}
            </if>
            <if test="endTemp != null">
                and cast(value->'$.temp' as decimal(10, 1)) <![CDATA[<=]]> #{endTemp}
            </if>
            <if test="startPressure != null">
                and cast(value->'$.pressure' as UNSIGNED integer) >= #{startPressure}
            </if>
            <if test="endPressure != null">
                and cast(value->'$.pressure' as UNSIGNED integer) <![CDATA[<=]]> #{endPressure}
            </if>
            and time >= #{start}
            and time <![CDATA[<]]> #{end}
            and DATE_FORMAT(time, '%H') in
            <foreach collection="hours" open="(" separator="," close=")" item="hour">
                #{hour}
            </foreach>
        </where>
    </select>
    <select id="getSampleFromRealWeather" resultType="java.lang.String">
        select DATE_FORMAT(time, #{typeFormat}) as time
        from real_weather
        <where>
            city_code=#{cityCode}
            <if test="condition == 0">
                and cast(json->'$.condition' as UNSIGNED integer) > #{score}
            </if>
            <if test="condition == 1">
                and cast(json->'$.condition' as UNSIGNED integer) <![CDATA[<=]]> #{score}
            </if>
            <if test="startTemp != null">
                and cast(json->'$.temp' as decimal(10, 1)) >= #{startTemp}
            </if>
            <if test="endTemp != null">
                and cast(json->'$.temp' as decimal(10, 1)) <![CDATA[<=]]> #{endTemp}
            </if>
            <if test="startPressure != null">
                and cast(json->'$.pressure' as UNSIGNED integer) >= #{startPressure}
            </if>
            <if test="endPressure != null">
                and cast(json->'$.pressure' as UNSIGNED integer) <![CDATA[<=]]> #{endPressure}
            </if>
            and time >= #{start}
            and time <![CDATA[<]]> #{end}
            and DATE_FORMAT(time, '%H') in
            <foreach collection="hours" open="(" separator="," close=")" item="hour">
                #{hour}
            </foreach>
        </where>
    </select>
</mapper>