From ed3870b7841c630f98fd35faadf72a3992585663 Mon Sep 17 00:00:00 2001 From: lizijie <lzjiiie@163.com> Date: Thu, 31 Dec 2020 17:19:31 +0800 Subject: [PATCH] 程序离线报警 --- src/main/resources/mapper/WeatherMapper.xml | 83 ++++++++++++++++------------------------- 1 files changed, 33 insertions(+), 50 deletions(-) diff --git a/src/main/resources/mapper/WeatherMapper.xml b/src/main/resources/mapper/WeatherMapper.xml index 06ce0a4..aec50d0 100644 --- a/src/main/resources/mapper/WeatherMapper.xml +++ b/src/main/resources/mapper/WeatherMapper.xml @@ -1,7 +1,6 @@ <?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"> - <cache/> <select id="getCityWeatherConfig" resultType="java.util.Map"> select city_code AS cityCode, @@ -116,33 +115,22 @@ ) </select> - <select id="getSampleFromHistoryWeather" resultType="java.lang.String" useCache="true"> - select DATE_FORMAT(time, #{typeFormat}) as time + <select id="getSampleFromHistoryWeather" resultType="java.util.Map"> + select DATE_FORMAT(time, #{typeFormat}) as `time`, + cast(value->'$.temp' as SIGNED) as 'temp', + cast(value->'$.pressure' as SIGNED) as 'pressure', + value->'$.windDir' as 'windDir', + cast(value->'$.windScale' as SIGNED) as 'windScale' from history_weather_${timeUnits} <where> city_code=#{cityCode} + <if test="condition == 0"> - and cast(value->'$.condition' as UNSIGNED integer) > #{score} + and cast(value->'$.condition' as SIGNED) > #{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} + and cast(value->'$.condition' as SIGNED) <![CDATA[<=]]> #{score} </if> <if test="start != null"> @@ -153,48 +141,39 @@ and time <![CDATA[<]]> #{end} </if> + <if test="startTemp != null"> + and cast(value->'$.temp' as SIGNED) >= #{startTemp} + </if> + + <if test="endTemp != null"> + and cast(value->'$.temp' as SIGNED) <![CDATA[<=]]> #{endTemp} + </if> + <if test="hours != null"> and DATE_FORMAT(time, '%H') in <foreach collection="hours" open="(" separator="," close=")" item="hour"> #{hour} </foreach> </if> - </where> </select> - <select id="getSampleFromRealWeather" resultType="java.lang.String" useCache="true"> - select DATE_FORMAT(time, #{typeFormat}) as time + <select id="getSampleFromRealWeather" resultType="java.util.Map"> + select DATE_FORMAT(time, #{typeFormat}) as `time`, + cast(json->'$.temp' as SIGNED) as 'temp', + cast(json->'$.pressure' as SIGNED) as 'pressure', + json->'$.windDir' as 'windDir', + cast(json->'$.windScale' as SIGNED) as 'windScale' from real_weather <where> city_code=#{cityCode} - <if test="windDir != null"> - and json->'$.windDir' = #{windDir} - </if> - <if test="condition == 0"> - and cast(json->'$.condition' as UNSIGNED integer) > #{score} + and cast(json->'$.condition' as SIGNED) > #{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} + and cast(json->'$.condition' as SIGNED) <![CDATA[<=]]> #{score} </if> <if test="start != null"> @@ -205,15 +184,19 @@ and time <![CDATA[<]]> #{end} </if> + <if test="startTemp != null"> + and cast(json->'$.temp' as SIGNED) >= #{startTemp} + </if> + + <if test="endTemp != null"> + and cast(json->'$.temp' as SIGNED) <![CDATA[<=]]> #{endTemp} + </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> -- Gitblit v1.8.0