jinpengyong
2020-10-09 c60311f48e7ec07c56a4df31536f795ba62751ce
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
@@ -86,4 +86,80 @@
            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>