From 2973f298e49fd8dff95065ef88d2997fe4eed338 Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Fri, 16 Oct 2020 11:18:19 +0800 Subject: [PATCH] 建立五分钟数据表以及读取一分钟表数据计算平均值到五分钟表的接口 --- src/main/resources/mapper/RealWeatherMapper.xml | 142 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 140 insertions(+), 2 deletions(-) diff --git a/src/main/resources/mapper/RealWeatherMapper.xml b/src/main/resources/mapper/RealWeatherMapper.xml index ad5777a..90e1c55 100644 --- a/src/main/resources/mapper/RealWeatherMapper.xml +++ b/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, @@ -24,4 +28,138 @@ 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> \ No newline at end of file -- Gitblit v1.8.0