| | |
| | | <?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="monitor_point_id" property="monitorPointId" jdbcType="INTEGER" /> |
| | | <resultMap id="BaseResultMap" type="com.moral.entity.RealWeather"> |
| | | <id column="city_code" property="cityCode" jdbcType="INTEGER"/> |
| | | </resultMap> |
| | | <insert id="insertRealWeather"> |
| | | insert into |
| | | real_weather |
| | | values |
| | | <foreach collection="list" item="item" separator=","> |
| | | (#{item.monitorPointId},#{item.time},#{item.json}) |
| | | (#{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, |
| | | json->'$.temp' 'temp', |
| | | json->'$.cloud' 'cloud' |
| | | from real_weather |
| | | where city_code=#{cityCode} |
| | | and time >= #{startTime} |
| | | AND time <![CDATA[<]]> #{endTime} |
| | | and DATE_FORMAT(time,'%H:%i:%s')=#{time} |
| | | and cast(json->'$.condition' as UNSIGNED INTEGER)>=#{condition} |
| | | </select> |
| | | |
| | | <select id="getDayData" resultType="java.util.Map"> |
| | | select |
| | | round(avg(json->'$.temp')) 'tempAvg', |
| | | round(avg(json->'$.vis')) 'vis', |
| | | round(avg(json->'$.cloud')) 'cloud', |
| | | round(avg(json->'$.windSpeed')) 'windSpeed', |
| | | round(sum(json->'$.precip'),1) 'precip' |
| | | from real_weather |
| | | where city_code=#{cityCode} |
| | | and time >= #{start} |
| | | AND time <![CDATA[<]]> #{end} |
| | | </select> |
| | | |
| | | <select id="getTimeMaxTemp" resultType="java.util.Map"> |
| | | select |
| | | DATE_FORMAT(time, #{typeFormat}) time, |
| | | from real_weather |
| | | where city_code=#{cityCode} |
| | | and time >= #{start} |
| | | AND time <![CDATA[<]]> #{end} |
| | | and json->'$.temp'= |
| | | ( |
| | | SELECT REPLACE(max(json->'$.temp'),"\"","") |
| | | FROM real_weather |
| | | WHERE time>=#{start} |
| | | and time <![CDATA[<]]> #{end} |
| | | and city_code=130900 |
| | | ) limit 0,1; |
| | | </select> |
| | | |
| | | <select id="getTimeMinTemp" resultType="java.util.Map"> |
| | | select |
| | | DATE_FORMAT(time, #{typeFormat}) time, |
| | | from real_weather |
| | | where city_code=#{cityCode} |
| | | and time >= #{start} |
| | | AND time <![CDATA[<]]> #{end} |
| | | and json->'$.temp'= |
| | | ( |
| | | SELECT REPLACE(max(json->'$.temp'),"\"","") |
| | | FROM real_weather |
| | | WHERE time>=#{start} |
| | | and time <![CDATA[<]]> #{end} |
| | | 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> |