kaiyu
2020-11-24 3152a4e4dadcd6ebfb8e882aa356d063416d49cc
src/main/resources/mapper/WeatherMapper.xml
@@ -1,6 +1,7 @@
<?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.WeatherMapper">
    <select id="getCityWeatherConfig" resultType="java.util.Map">
        select city_code AS cityCode,
        city_id AS cityId
@@ -119,6 +120,15 @@
        from history_weather_${timeUnits}
        <where>
            city_code=#{cityCode}
            <if test="windDir != null">
                and value->'$.windDir' = #{windDir}
            </if>
            <if test="windScale != null">
                and value->'$.windScale' = #{windScale}
            </if>
            <if test="condition == 0">
                and cast(value->'$.condition' as UNSIGNED integer) > #{score}
            </if>
@@ -143,12 +153,24 @@
                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>
            <if test="start != null">
                and time >= #{start}
            </if>
            <if test="end != null">
                and time <![CDATA[<]]> #{end}
            </if>
            <if test="hours != null">
                and DATE_FORMAT(time, '%H') in
                <foreach collection="hours" open="(" separator="," close=")" item="hour">
                    #{hour}
                </foreach>
            </if>
            <if test="month != null">
                and DATE_FORMAT(time, '%m') = #{month}
            </if>
        </where>
    </select>
@@ -157,6 +179,15 @@
        from real_weather
        <where>
            city_code=#{cityCode}
            <if test="windDir != null">
                and json->'$.windDir' = #{windDir}
            </if>
            <if test="windScale != null">
                and json->'$.windScale' = #{windScale}
            </if>
            <if test="condition == 0">
                and cast(json->'$.condition' as UNSIGNED integer) > #{score}
            </if>
@@ -181,12 +212,24 @@
                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>
            <if test="start != null">
                and time >= #{start}
            </if>
            <if test="end != null">
                and time <![CDATA[<]]> #{end}
            </if>
            <if test="hours != null">
                and DATE_FORMAT(time, '%H') in
                <foreach collection="hours" open="(" separator="," close=")" item="hour">
                    #{hour}
                </foreach>
            </if>
            <if test="month != null">
                and DATE_FORMAT(time, '%m') = #{month}
            </if>
        </where>
    </select>
</mapper>