From 5e9129373399e9cc3bdecf9b8365e1c6b6b0ecdd Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Wed, 21 Oct 2020 13:28:19 +0800 Subject: [PATCH] 修改时间bug --- src/main/resources/mapper/RealWeatherMapper.xml | 150 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 145 insertions(+), 5 deletions(-) diff --git a/src/main/resources/mapper/RealWeatherMapper.xml b/src/main/resources/mapper/RealWeatherMapper.xml index 70b0ce7..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 @@ -13,13 +13,153 @@ </foreach> </insert> - <select id="getTemp" resultType="java.util.Map"> + <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->'$.temp' 'temp', + json->'$.cloud' 'cloud' from real_weather where city_code=#{cityCode} and time >= #{startTime} AND time <![CDATA[<]]> #{endTime} - and DATE_FORMAT(time, #{typeFormat}) like '%${time}' + 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